diff --git a/.gitignore b/.gitignore
index 5c3f2a4..7e94e0d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
bin/
-.gradle/
\ No newline at end of file
+.gradle/
+build/
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index b589d56..fcb19bf 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 18ad7e3..8bddb52 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/lwjgl-rundir/bcprov-jdk15on-1.47.jar b/lwjgl-rundir/bcprov-jdk15on-1.47.jar
deleted file mode 100644
index 0b80922..0000000
Binary files a/lwjgl-rundir/bcprov-jdk15on-1.47.jar and /dev/null differ
diff --git a/lwjgl-rundir/eaglercraft.jar b/lwjgl-rundir/eaglercraft.jar
index 57cea20..800120e 100644
Binary files a/lwjgl-rundir/eaglercraft.jar and b/lwjgl-rundir/eaglercraft.jar differ
diff --git a/src/main/java/net/minecraft/src/CryptManager.java b/src/main/java/net/minecraft/src/CryptManager.java
deleted file mode 100644
index fc1f8bf..0000000
--- a/src/main/java/net/minecraft/src/CryptManager.java
+++ /dev/null
@@ -1,228 +0,0 @@
-package net.minecraft.src;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-import java.security.InvalidKeyException;
-import java.security.Key;
-import java.security.KeyFactory;
-import java.security.KeyPair;
-import java.security.KeyPairGenerator;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.security.PrivateKey;
-import java.security.PublicKey;
-import java.security.SecureRandom;
-import java.security.Security;
-import java.security.spec.InvalidKeySpecException;
-import java.security.spec.X509EncodedKeySpec;
-import javax.crypto.BadPaddingException;
-import javax.crypto.Cipher;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
-import javax.crypto.SecretKey;
-import javax.crypto.spec.SecretKeySpec;
-import org.bouncycastle.crypto.BufferedBlockCipher;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.KeyGenerationParameters;
-import org.bouncycastle.crypto.engines.AESFastEngine;
-import org.bouncycastle.crypto.io.CipherInputStream;
-import org.bouncycastle.crypto.io.CipherOutputStream;
-import org.bouncycastle.crypto.modes.CFBBlockCipher;
-import org.bouncycastle.crypto.params.KeyParameter;
-import org.bouncycastle.crypto.params.ParametersWithIV;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-public class CryptManager
-{
- /**
- * Generate a new shared secret AES key from a secure random source
- */
- public static SecretKey createNewSharedKey()
- {
- CipherKeyGenerator var0 = new CipherKeyGenerator();
- var0.init(new KeyGenerationParameters(new SecureRandom(), 128));
- return new SecretKeySpec(var0.generateKey(), "AES");
- }
-
- public static KeyPair createNewKeyPair()
- {
- try
- {
- KeyPairGenerator var0 = KeyPairGenerator.getInstance("RSA");
- var0.initialize(1024);
- return var0.generateKeyPair();
- }
- catch (NoSuchAlgorithmException var1)
- {
- var1.printStackTrace();
- System.err.println("Key pair generation failed!");
- return null;
- }
- }
-
- /**
- * Compute a serverId hash for use by sendSessionRequest()
- */
- public static byte[] getServerIdHash(String par0Str, PublicKey par1PublicKey, SecretKey par2SecretKey)
- {
- try
- {
- return digestOperation("SHA-1", new byte[][] {par0Str.getBytes("ISO_8859_1"), par2SecretKey.getEncoded(), par1PublicKey.getEncoded()});
- }
- catch (UnsupportedEncodingException var4)
- {
- var4.printStackTrace();
- return null;
- }
- }
-
- /**
- * Compute a message digest on arbitrary byte[] data
- */
- private static byte[] digestOperation(String par0Str, byte[] ... par1ArrayOfByte)
- {
- try
- {
- MessageDigest var2 = MessageDigest.getInstance(par0Str);
- byte[][] var3 = par1ArrayOfByte;
- int var4 = par1ArrayOfByte.length;
-
- for (int var5 = 0; var5 < var4; ++var5)
- {
- byte[] var6 = var3[var5];
- var2.update(var6);
- }
-
- return var2.digest();
- }
- catch (NoSuchAlgorithmException var7)
- {
- var7.printStackTrace();
- return null;
- }
- }
-
- /**
- * Create a new PublicKey from encoded X.509 data
- */
- public static PublicKey decodePublicKey(byte[] par0ArrayOfByte)
- {
- try
- {
- X509EncodedKeySpec var1 = new X509EncodedKeySpec(par0ArrayOfByte);
- KeyFactory var2 = KeyFactory.getInstance("RSA");
- return var2.generatePublic(var1);
- }
- catch (NoSuchAlgorithmException var3)
- {
- var3.printStackTrace();
- }
- catch (InvalidKeySpecException var4)
- {
- var4.printStackTrace();
- }
-
- System.err.println("Public key reconstitute failed!");
- return null;
- }
-
- /**
- * Decrypt shared secret AES key using RSA private key
- */
- public static SecretKey decryptSharedKey(PrivateKey par0PrivateKey, byte[] par1ArrayOfByte)
- {
- return new SecretKeySpec(decryptData(par0PrivateKey, par1ArrayOfByte), "AES");
- }
-
- /**
- * Encrypt byte[] data with RSA public key
- */
- public static byte[] encryptData(Key par0Key, byte[] par1ArrayOfByte)
- {
- return cipherOperation(1, par0Key, par1ArrayOfByte);
- }
-
- /**
- * Decrypt byte[] data with RSA private key
- */
- public static byte[] decryptData(Key par0Key, byte[] par1ArrayOfByte)
- {
- return cipherOperation(2, par0Key, par1ArrayOfByte);
- }
-
- /**
- * Encrypt or decrypt byte[] data using the specified key
- */
- private static byte[] cipherOperation(int par0, Key par1Key, byte[] par2ArrayOfByte)
- {
- try
- {
- return createTheCipherInstance(par0, par1Key.getAlgorithm(), par1Key).doFinal(par2ArrayOfByte);
- }
- catch (IllegalBlockSizeException var4)
- {
- var4.printStackTrace();
- }
- catch (BadPaddingException var5)
- {
- var5.printStackTrace();
- }
-
- System.err.println("Cipher data failed!");
- return null;
- }
-
- /**
- * Creates the Cipher Instance.
- */
- private static Cipher createTheCipherInstance(int par0, String par1Str, Key par2Key)
- {
- try
- {
- Cipher var3 = Cipher.getInstance(par1Str);
- var3.init(par0, par2Key);
- return var3;
- }
- catch (InvalidKeyException var4)
- {
- var4.printStackTrace();
- }
- catch (NoSuchAlgorithmException var5)
- {
- var5.printStackTrace();
- }
- catch (NoSuchPaddingException var6)
- {
- var6.printStackTrace();
- }
-
- System.err.println("Cipher creation failed!");
- return null;
- }
-
- /**
- * Create a new BufferedBlockCipher instance
- */
- private static BufferedBlockCipher createBufferedBlockCipher(boolean par0, Key par1Key)
- {
- BufferedBlockCipher var2 = new BufferedBlockCipher(new CFBBlockCipher(new AESFastEngine(), 8));
- var2.init(par0, new ParametersWithIV(new KeyParameter(par1Key.getEncoded()), par1Key.getEncoded(), 0, 16));
- return var2;
- }
-
- public static OutputStream encryptOuputStream(SecretKey par0SecretKey, OutputStream par1OutputStream)
- {
- return new CipherOutputStream(par1OutputStream, createBufferedBlockCipher(true, par0SecretKey));
- }
-
- public static InputStream decryptInputStream(SecretKey par0SecretKey, InputStream par1InputStream)
- {
- return new CipherInputStream(par1InputStream, createBufferedBlockCipher(false, par0SecretKey));
- }
-
- static
- {
- Security.addProvider(new BouncyCastleProvider());
- }
-}
diff --git a/src/main/java/net/minecraft/src/DedicatedServer.java b/src/main/java/net/minecraft/src/DedicatedServer.java
index 6bc729d..dd49d84 100644
--- a/src/main/java/net/minecraft/src/DedicatedServer.java
+++ b/src/main/java/net/minecraft/src/DedicatedServer.java
@@ -91,7 +91,6 @@ public class DedicatedServer extends MinecraftServer implements IServer
}
this.getLogAgent().logInfo("Generating keypair");
- this.setKeyPair(CryptManager.createNewKeyPair());
this.getLogAgent().logInfo("Starting Minecraft server on " + (this.getServerHostname().length() == 0 ? "*" : this.getServerHostname()) + ":" + this.getServerPort());
try
diff --git a/src/main/java/net/minecraft/src/GuiScreen.java b/src/main/java/net/minecraft/src/GuiScreen.java
index 6bdaa03..35fa9ea 100644
--- a/src/main/java/net/minecraft/src/GuiScreen.java
+++ b/src/main/java/net/minecraft/src/GuiScreen.java
@@ -1,18 +1,16 @@
package net.minecraft.src;
-import java.awt.Toolkit;
-import java.awt.datatransfer.ClipboardOwner;
-import java.awt.datatransfer.DataFlavor;
-import java.awt.datatransfer.StringSelection;
-import java.awt.datatransfer.Transferable;
import java.util.ArrayList;
import java.util.List;
-import net.lax1dude.eaglercraft.adapter.Tessellator;
import net.lax1dude.eaglercraft.EaglerAdapter;
+import net.lax1dude.eaglercraft.TextureLocation;
+import net.lax1dude.eaglercraft.adapter.Tessellator;
+import net.minecraft.src.Minecraft;
+
+public class GuiScreen extends Gui {
+ public static final boolean isMacOs = Minecraft.getOs() == EnumOS.MACOS;
-public class GuiScreen extends Gui
-{
/** Reference to the Minecraft object. */
protected Minecraft mc;
@@ -24,92 +22,70 @@ public class GuiScreen extends Gui
/** A list of all the buttons in this container. */
protected List buttonList = new ArrayList();
- public boolean allowUserInput;
+ public boolean allowUserInput = false;
/** The FontRenderer used by GuiScreen */
protected FontRenderer fontRenderer;
+ public GuiParticle guiParticles;
/** The button that was just pressed. */
- private GuiButton selectedButton;
- private int eventButton;
- private long lastMouseEvent;
- private int field_92018_d;
+ private GuiButton selectedButton = null;
+ private int eventButton = 0;
+ private long field_85043_c = 0L;
+ private int field_92018_d = 0;
/**
* Draws the screen and all the components in it.
*/
- public void drawScreen(int par1, int par2, float par3)
- {
- for (int var4 = 0; var4 < this.buttonList.size(); ++var4)
- {
- GuiButton var5 = (GuiButton)this.buttonList.get(var4);
+ public void drawScreen(int par1, int par2, float par3) {
+ for (int var4 = 0; var4 < this.buttonList.size(); ++var4) {
+ GuiButton var5 = (GuiButton) this.buttonList.get(var4);
var5.drawButton(this.mc, par1, par2);
}
}
/**
- * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e).
+ * Fired when a key is typed. This is the equivalent of
+ * KeyListener.keyTyped(KeyEvent e).
*/
- protected void keyTyped(char par1, int par2)
- {
- if (par2 == 1)
- {
- this.mc.displayGuiScreen((GuiScreen)null);
- this.mc.setIngameFocus();
- }
+ protected void keyTyped(char par1, int par2) {
+ //if (par2 == 1) {
+ // this.mc.displayGuiScreen((GuiScreen) null);
+ // this.mc.setIngameFocus();
+ //}
}
/**
* Returns a string stored in the system clipboard.
*/
- public static String getClipboardString()
- {
- try
- {
- Transferable var0 = Toolkit.getDefaultToolkit().getSystemClipboard().getContents((Object)null);
-
- if (var0 != null && var0.isDataFlavorSupported(DataFlavor.stringFlavor))
- {
- return (String)var0.getTransferData(DataFlavor.stringFlavor);
- }
+ public static String getClipboardString() {
+ try {
+ String s = EaglerAdapter.getClipboard();
+ return s == null ? "" : s;
+ }catch(Throwable t) {
+ return "";
}
- catch (Exception var1)
- {
- ;
- }
-
- return "";
}
/**
* store a string in the system clipboard
*/
- public static void setClipboardString(String par0Str)
- {
- try
- {
- StringSelection var1 = new StringSelection(par0Str);
- Toolkit.getDefaultToolkit().getSystemClipboard().setContents(var1, (ClipboardOwner)null);
- }
- catch (Exception var2)
- {
- ;
+ public static void setClipboardString(String par0Str) {
+ try {
+ EaglerAdapter.setClipboard(par0Str);
+ }catch(Throwable t) {
}
}
/**
* Called when the mouse is clicked.
*/
- protected void mouseClicked(int par1, int par2, int par3)
- {
- if (par3 == 0)
- {
- for (int var4 = 0; var4 < this.buttonList.size(); ++var4)
- {
- GuiButton var5 = (GuiButton)this.buttonList.get(var4);
+ protected void mouseClicked(int par1, int par2, int par3) {
+ if (par3 == 0) {
+ for (int var4 = 0; var4 < this.buttonList.size(); ++var4) {
+ GuiButton var5 = (GuiButton) this.buttonList.get(var4);
- if (var5.mousePressed(this.mc, par1, par2))
- {
+ if (var5.mousePressed(this.mc, par1, par2)) {
this.selectedButton = var5;
this.mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
this.actionPerformed(var5);
@@ -119,35 +95,33 @@ public class GuiScreen extends Gui
}
/**
- * Called when the mouse is moved or a mouse button is released. Signature: (mouseX, mouseY, which) which==-1 is
- * mouseMove, which==0 or which==1 is mouseUp
+ * Called when the mouse is moved or a mouse button is released. Signature:
+ * (mouseX, mouseY, which) which==-1 is mouseMove, which==0 or which==1 is
+ * mouseUp
*/
- protected void mouseMovedOrUp(int par1, int par2, int par3)
- {
- if (this.selectedButton != null && par3 == 0)
- {
+ protected void mouseMovedOrUp(int par1, int par2, int par3) {
+ if (this.selectedButton != null && par3 == 0) {
this.selectedButton.mouseReleased(par1, par2);
this.selectedButton = null;
}
}
- /**
- * Called when a mouse button is pressed and the mouse is moved around. Parameters are : mouseX, mouseY,
- * lastButtonClicked & timeSinceMouseClick.
- */
- protected void mouseClickMove(int par1, int par2, int par3, long par4) {}
+ protected void func_85041_a(int par1, int par2, int par3, long par4) {
+ }
/**
- * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e).
+ * Fired when a control is clicked. This is the equivalent of
+ * ActionListener.actionPerformed(ActionEvent e).
*/
- protected void actionPerformed(GuiButton par1GuiButton) {}
+ protected void actionPerformed(GuiButton par1GuiButton) {
+ }
/**
- * Causes the screen to lay out its subcomponents again. This is the equivalent of the Java call
- * Container.validate()
+ * Causes the screen to lay out its subcomponents again. This is the equivalent
+ * of the Java call Container.validate()
*/
- public void setWorldAndResolution(Minecraft par1Minecraft, int par2, int par3)
- {
+ public void setWorldAndResolution(Minecraft par1Minecraft, int par2, int par3) {
+ this.guiParticles = new GuiParticle(par1Minecraft);
this.mc = par1Minecraft;
this.fontRenderer = par1Minecraft.fontRenderer;
this.width = par2;
@@ -159,20 +133,18 @@ public class GuiScreen extends Gui
/**
* Adds the buttons (and other controls) to the screen in question.
*/
- public void initGui() {}
+ public void initGui() {
+ }
/**
* Delegates mouse and keyboard input.
*/
- public void handleInput()
- {
- while (EaglerAdapter.mouseNext())
- {
+ public void handleInput() {
+ while (EaglerAdapter.mouseNext()) {
this.handleMouseInput();
}
- while (EaglerAdapter.keysNext())
- {
+ while (EaglerAdapter.keysNext()) {
this.handleKeyboardInput();
}
}
@@ -180,56 +152,48 @@ public class GuiScreen extends Gui
/**
* Handles mouse input.
*/
- public void handleMouseInput()
- {
+ public void handleMouseInput() {
int var1 = EaglerAdapter.mouseGetEventX() * this.width / this.mc.displayWidth;
int var2 = this.height - EaglerAdapter.mouseGetEventY() * this.height / this.mc.displayHeight - 1;
- int var3 = EaglerAdapter.mouseGetEventButton();
- if (EaglerAdapter.mouseGetEventButtonState())
- {
- if (this.mc.gameSettings.touchscreen && this.field_92018_d++ > 0)
- {
+ if (EaglerAdapter.mouseGetEventButtonState()) {
+ if (this.mc.gameSettings.touchscreen && this.field_92018_d++ > 0) {
return;
}
- this.eventButton = var3;
- this.lastMouseEvent = Minecraft.getSystemTime();
+ this.eventButton = EaglerAdapter.mouseGetEventButton();
+ this.field_85043_c = Minecraft.getSystemTime();
this.mouseClicked(var1, var2, this.eventButton);
- }
- else if (var3 != -1)
- {
- if (this.mc.gameSettings.touchscreen && --this.field_92018_d > 0)
- {
+ } else if (EaglerAdapter.mouseGetEventButton() != -1) {
+ if (this.mc.gameSettings.touchscreen && --this.field_92018_d > 0) {
return;
}
this.eventButton = -1;
- this.mouseMovedOrUp(var1, var2, var3);
- }
- else if (this.eventButton != -1 && this.lastMouseEvent > 0L)
- {
- long var4 = Minecraft.getSystemTime() - this.lastMouseEvent;
- this.mouseClickMove(var1, var2, this.eventButton, var4);
+ this.mouseMovedOrUp(var1, var2, EaglerAdapter.mouseGetEventButton());
+ } else if (this.eventButton != -1 && this.field_85043_c > 0L) {
+ long var3 = Minecraft.getSystemTime() - this.field_85043_c;
+ this.func_85041_a(var1, var2, this.eventButton, var3);
}
}
/**
* Handles keyboard input.
*/
- public void handleKeyboardInput()
- {
- if (EaglerAdapter.getEventKeyState())
- {
+ public void handleKeyboardInput() {
+ if (EaglerAdapter.getEventKeyState()) {
int var1 = EaglerAdapter.getEventKey();
char var2 = EaglerAdapter.getEventChar();
- if (var1 == 87)
- {
+ if (var1 == 87) {
this.mc.toggleFullscreen();
return;
}
+ //if (isMacOs && var1 == 28 && var2 == 0) {
+ // var1 = 29;
+ //}
+
this.keyTyped(var2, var1);
}
}
@@ -237,68 +201,72 @@ public class GuiScreen extends Gui
/**
* Called from the main game loop to update the screen.
*/
- public void updateScreen() {}
+ public void updateScreen() {
+ }
/**
* Called when the screen is unloaded. Used to disable keyboard repeat events
*/
- public void onGuiClosed() {}
+ public void onGuiClosed() {
+ }
/**
- * Draws either a gradient over the background screen (when it exists) or a flat gradient over background.png
+ * Draws either a gradient over the background screen (when it exists) or a flat
+ * gradient over background.png
*/
- public void drawDefaultBackground()
- {
+ public void drawDefaultBackground() {
this.drawWorldBackground(0);
}
- public void drawWorldBackground(int par1)
- {
- if (this.mc.theWorld != null)
- {
+ public void drawWorldBackground(int par1) {
+ if (this.mc.theWorld != null) {
this.drawGradientRect(0, 0, this.width, this.height, -1072689136, -804253680);
- }
- else
- {
+ } else {
this.drawBackground(par1);
}
}
+ private static final TextureLocation tex_background = new TextureLocation("/gui/background.png");
+
/**
* Draws the background (i is always 0 as of 1.2.2)
*/
- public void drawBackground(int par1)
- {
+ public void drawBackground(int par1) {
EaglerAdapter.glDisable(EaglerAdapter.GL_LIGHTING);
EaglerAdapter.glDisable(EaglerAdapter.GL_FOG);
Tessellator var2 = Tessellator.instance;
- optionsBackground.bindTexture();
+ tex_background.bindTexture();
EaglerAdapter.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
float var3 = 32.0F;
var2.startDrawingQuads();
var2.setColorOpaque_I(4210752);
- var2.addVertexWithUV(0.0D, (double)this.height, 0.0D, 0.0D, (double)((float)this.height / var3 + (float)par1));
- var2.addVertexWithUV((double)this.width, (double)this.height, 0.0D, (double)((float)this.width / var3), (double)((float)this.height / var3 + (float)par1));
- var2.addVertexWithUV((double)this.width, 0.0D, 0.0D, (double)((float)this.width / var3), (double)par1);
- var2.addVertexWithUV(0.0D, 0.0D, 0.0D, 0.0D, (double)par1);
+ var2.addVertexWithUV(0.0D, (double) this.height, 0.0D, 0.0D, (double) ((float) this.height / var3 + (float) par1));
+ var2.addVertexWithUV((double) this.width, (double) this.height, 0.0D, (double) ((float) this.width / var3), (double) ((float) this.height / var3 + (float) par1));
+ var2.addVertexWithUV((double) this.width, 0.0D, 0.0D, (double) ((float) this.width / var3), (double) par1);
+ var2.addVertexWithUV(0.0D, 0.0D, 0.0D, 0.0D, (double) par1);
var2.draw();
}
/**
- * Returns true if this GUI should pause the game when it is displayed in single-player
+ * Returns true if this GUI should pause the game when it is displayed in
+ * single-player
*/
- public boolean doesGuiPauseGame()
- {
+ public boolean doesGuiPauseGame() {
return true;
}
- public void confirmClicked(boolean par1, int par2) {}
+ public void confirmClicked(boolean par1, int par2) {
+ }
public static boolean isCtrlKeyDown() {
- return EaglerAdapter.isKeyDown(29) || EaglerAdapter.isKeyDown(157) || EaglerAdapter.isKeyDown(219) || EaglerAdapter.isKeyDown(220);
+ return EaglerAdapter.isKeyDown(29) || EaglerAdapter.isKeyDown(157) || (isMacOs && (EaglerAdapter.isKeyDown(28) || EaglerAdapter.isKeyDown(219) || EaglerAdapter.isKeyDown(220)));
}
public static boolean isShiftKeyDown() {
return EaglerAdapter.isKeyDown(42) || EaglerAdapter.isKeyDown(54);
}
+
+ public boolean blockHotKeys() {
+ return false;
+ }
}
diff --git a/src/main/java/net/minecraft/src/IntegratedServer.java b/src/main/java/net/minecraft/src/IntegratedServer.java
index bbb9160..cdfbd67 100644
--- a/src/main/java/net/minecraft/src/IntegratedServer.java
+++ b/src/main/java/net/minecraft/src/IntegratedServer.java
@@ -92,7 +92,7 @@ public class IntegratedServer extends MinecraftServer
this.setAllowPvp(true);
this.setAllowFlight(true);
this.serverLogAgent.logInfo("Generating keypair");
- this.setKeyPair(CryptManager.createNewKeyPair());
+ //this.setKeyPair(CryptManager.createNewKeyPair());
this.loadAllWorlds(this.getFolderName(), this.getWorldName(), this.theWorldSettings.getSeed(), this.theWorldSettings.getTerrainType(), this.theWorldSettings.func_82749_j());
this.setMOTD(this.getServerOwner() + " - " + this.worldServers[0].getWorldInfo().getWorldName());
return true;
diff --git a/src/main/java/net/minecraft/src/Minecraft.java b/src/main/java/net/minecraft/src/Minecraft.java
index c3910ec..411da42 100644
--- a/src/main/java/net/minecraft/src/Minecraft.java
+++ b/src/main/java/net/minecraft/src/Minecraft.java
@@ -554,6 +554,13 @@ public class Minecraft
this.displayHeight = var2.getHeight();
}
+ public static EnumOS getOs() {
+ String var0 = EaglerAdapter.getUserAgent().toLowerCase();
+ return var0.contains("win") ? EnumOS.WINDOWS
+ : (var0.contains("mac") ? EnumOS.MACOS
+ : (var0.contains("solaris") ? EnumOS.SOLARIS : (var0.contains("sunos") ? EnumOS.SOLARIS : (var0.contains("linux") ? EnumOS.LINUX : (var0.contains("unix") ? EnumOS.LINUX : EnumOS.UNKNOWN)))));
+ }
+
/**
* Displays a new screen.
*/
diff --git a/src/main/java/net/minecraft/src/NetLoginHandler.java b/src/main/java/net/minecraft/src/NetLoginHandler.java
index 7d8fd25..71e813e 100644
--- a/src/main/java/net/minecraft/src/NetLoginHandler.java
+++ b/src/main/java/net/minecraft/src/NetLoginHandler.java
@@ -122,12 +122,6 @@ public class NetLoginHandler extends NetHandler
public void handleSharedKey(Packet252SharedKey par1Packet252SharedKey)
{
PrivateKey var2 = this.mcServer.getKeyPair().getPrivate();
- this.sharedKey = par1Packet252SharedKey.getSharedKey(var2);
-
- if (!Arrays.equals(this.verifyToken, par1Packet252SharedKey.getVerifyToken(var2)))
- {
- this.raiseErrorAndDisconnect("Invalid client reply");
- }
this.myTCPConnection.addToSendQueue(new Packet252SharedKey());
}
@@ -143,15 +137,7 @@ public class NetLoginHandler extends NetHandler
}
this.field_92079_k = true;
-
- if (this.mcServer.isServerInOnlineMode())
- {
- (new ThreadLoginVerifier(this)).start();
- }
- else
- {
- this.field_72544_i = true;
- }
+ this.field_72544_i = true;
}
}
diff --git a/src/main/java/net/minecraft/src/Packet252SharedKey.java b/src/main/java/net/minecraft/src/Packet252SharedKey.java
index 60979ec..9f4fc74 100644
--- a/src/main/java/net/minecraft/src/Packet252SharedKey.java
+++ b/src/main/java/net/minecraft/src/Packet252SharedKey.java
@@ -21,9 +21,6 @@ public class Packet252SharedKey extends Packet
public Packet252SharedKey(SecretKey par1SecretKey, PublicKey par2PublicKey, byte[] par3ArrayOfByte)
{
- this.sharedKey = par1SecretKey;
- this.sharedSecret = CryptManager.encryptData(par2PublicKey, par1SecretKey.getEncoded());
- this.verifyToken = CryptManager.encryptData(par2PublicKey, par3ArrayOfByte);
}
/**
@@ -57,30 +54,7 @@ public class Packet252SharedKey extends Packet
*/
public int getPacketSize()
{
- return 2 + this.sharedSecret.length + 2 + this.verifyToken.length;
+ return 2 + 162 + 2 + 4;
}
- /**
- * Return secretKey, decrypting it from the sharedSecret byte array if needed
- */
- public SecretKey getSharedKey(PrivateKey par1PrivateKey)
- {
- return par1PrivateKey == null ? this.sharedKey : (this.sharedKey = CryptManager.decryptSharedKey(par1PrivateKey, this.sharedSecret));
- }
-
- /**
- * Return the secret AES sharedKey (used by client only)
- */
- public SecretKey getSharedKey()
- {
- return this.getSharedKey((PrivateKey)null);
- }
-
- /**
- * Return verifyToken
- */
- public byte[] getVerifyToken(PrivateKey par1PrivateKey)
- {
- return par1PrivateKey == null ? this.verifyToken : CryptManager.decryptData(par1PrivateKey, this.verifyToken);
- }
}
diff --git a/src/main/java/net/minecraft/src/Packet253ServerAuthData.java b/src/main/java/net/minecraft/src/Packet253ServerAuthData.java
index 48020c3..d4319ad 100644
--- a/src/main/java/net/minecraft/src/Packet253ServerAuthData.java
+++ b/src/main/java/net/minecraft/src/Packet253ServerAuthData.java
@@ -26,7 +26,7 @@ public class Packet253ServerAuthData extends Packet
public void readPacketData(DataInput par1DataInput) throws IOException
{
this.serverId = readString(par1DataInput, 20);
- this.publicKey = CryptManager.decodePublicKey(readBytesFromStream(par1DataInput));
+ readBytesFromStream(par1DataInput);
this.verifyToken = readBytesFromStream(par1DataInput);
}
diff --git a/src/main/java/net/minecraft/src/StatFileWriter.java b/src/main/java/net/minecraft/src/StatFileWriter.java
index 8af7a5e..64d3bb5 100644
--- a/src/main/java/net/minecraft/src/StatFileWriter.java
+++ b/src/main/java/net/minecraft/src/StatFileWriter.java
@@ -1,10 +1,5 @@
package net.minecraft.src;
-import argo.jdom.JdomParser;
-import argo.jdom.JsonNode;
-import argo.jdom.JsonRootNode;
-import argo.jdom.JsonStringNode;
-import argo.saj.InvalidSyntaxException;
import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
@@ -121,56 +116,7 @@ public class StatFileWriter
public static Map func_77453_b(String par0Str)
{
- HashMap var1 = new HashMap();
-
- try
- {
- String var2 = "local";
- StringBuilder var3 = new StringBuilder();
- JsonRootNode var4 = (new JdomParser()).parse(par0Str);
- List var5 = var4.getArrayNode(new Object[] {"stats-change"});
- Iterator var6 = var5.iterator();
-
- while (var6.hasNext())
- {
- JsonNode var7 = (JsonNode)var6.next();
- Map var8 = var7.getFields();
- Entry var9 = (Entry)var8.entrySet().iterator().next();
- int var10 = Integer.parseInt(((JsonStringNode)var9.getKey()).getText());
- int var11 = Integer.parseInt(((JsonNode)var9.getValue()).getText());
- boolean var12 = true;
- StatBase var13 = StatList.getOneShotStat(var10);
-
- if (var13 == null)
- {
- var12 = false;
- var13 = (new StatPlaceholder(var10)).registerStat();
- }
-
- var3.append(StatList.getOneShotStat(var10).statGuid).append(",");
- var3.append(var11).append(",");
-
- if (var12)
- {
- var1.put(var13, Integer.valueOf(var11));
- }
- }
-
- MD5String var15 = new MD5String(var2);
- String var16 = var15.getMD5String(var3.toString());
-
- if (!var16.equals(var4.getStringValue(new Object[] {"checksum"})))
- {
- System.out.println("CHECKSUM MISMATCH");
- return null;
- }
- }
- catch (InvalidSyntaxException var14)
- {
- var14.printStackTrace();
- }
-
- return var1;
+ return new HashMap();
}
public static String func_77441_a(String par0Str, String par1Str, Map par2Map)
diff --git a/src/main/java/net/minecraft/src/TcpConnection.java b/src/main/java/net/minecraft/src/TcpConnection.java
index 00ec0de..d0eda72 100644
--- a/src/main/java/net/minecraft/src/TcpConnection.java
+++ b/src/main/java/net/minecraft/src/TcpConnection.java
@@ -195,7 +195,7 @@ public class TcpConnection implements INetworkManager
{
if (!this.theNetHandler.isServerHandler())
{
- this.sharedKeyForEncryption = ((Packet252SharedKey)var2).getSharedKey();
+ //this.sharedKeyForEncryption = ((Packet252SharedKey)var2).getSharedKey();
}
this.encryptOuputStream();
@@ -320,7 +320,7 @@ public class TcpConnection implements INetworkManager
{
if (this.theNetHandler.isServerHandler())
{
- this.sharedKeyForEncryption = ((Packet252SharedKey)var2).getSharedKey(this.field_74463_A);
+ //this.sharedKeyForEncryption = ((Packet252SharedKey)var2).getSharedKey(this.field_74463_A);
}
this.decryptInputStream();
@@ -487,7 +487,7 @@ public class TcpConnection implements INetworkManager
{
this.isInputBeingDecrypted = true;
InputStream var1 = this.networkSocket.getInputStream();
- this.socketInputStream = new DataInputStream(CryptManager.decryptInputStream(this.sharedKeyForEncryption, var1));
+ //this.socketInputStream = new DataInputStream(CryptManager.decryptInputStream(this.sharedKeyForEncryption, var1));
}
/**
@@ -497,8 +497,8 @@ public class TcpConnection implements INetworkManager
{
this.socketOutputStream.flush();
this.isOutputEncrypted = true;
- BufferedOutputStream var1 = new BufferedOutputStream(CryptManager.encryptOuputStream(this.sharedKeyForEncryption, this.networkSocket.getOutputStream()), 5120);
- this.socketOutputStream = new DataOutputStream(var1);
+ //BufferedOutputStream var1 = new BufferedOutputStream(CryptManager.encryptOuputStream(this.sharedKeyForEncryption, this.networkSocket.getOutputStream()), 5120);
+ //this.socketOutputStream = new DataOutputStream(var1);
}
/**
diff --git a/src/main/java/net/minecraft/src/ThreadLoginVerifier.java b/src/main/java/net/minecraft/src/ThreadLoginVerifier.java
deleted file mode 100644
index 570462d..0000000
--- a/src/main/java/net/minecraft/src/ThreadLoginVerifier.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package net.minecraft.src;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.math.BigInteger;
-import java.net.URL;
-import java.net.URLEncoder;
-
-class ThreadLoginVerifier extends Thread
-{
- /** The login handler that spawned this thread. */
- final NetLoginHandler loginHandler;
-
- ThreadLoginVerifier(NetLoginHandler par1NetLoginHandler)
- {
- this.loginHandler = par1NetLoginHandler;
- }
-
- public void run()
- {
- try
- {
- String var1 = (new BigInteger(CryptManager.getServerIdHash(NetLoginHandler.getServerId(this.loginHandler), NetLoginHandler.getLoginMinecraftServer(this.loginHandler).getKeyPair().getPublic(), NetLoginHandler.getSharedKey(this.loginHandler)))).toString(16);
- URL var2 = new URL("http://session.minecraft.net/game/checkserver.jsp?user=" + URLEncoder.encode(NetLoginHandler.getClientUsername(this.loginHandler), "UTF-8") + "&serverId=" + URLEncoder.encode(var1, "UTF-8"));
- BufferedReader var3 = new BufferedReader(new InputStreamReader(var2.openConnection(NetLoginHandler.getLoginMinecraftServer(this.loginHandler).getServerProxy()).getInputStream()));
- String var4 = var3.readLine();
- var3.close();
-
- if (!"YES".equals(var4))
- {
- this.loginHandler.raiseErrorAndDisconnect("Failed to verify username!");
- return;
- }
-
- NetLoginHandler.func_72531_a(this.loginHandler, true);
- }
- catch (Exception var5)
- {
- this.loginHandler.raiseErrorAndDisconnect("Failed to verify username! [internal error " + var5 + "]");
- var5.printStackTrace();
- }
- }
-}