diff --git a/.gradle/8.0/executionHistory/executionHistory.bin b/.gradle/8.0/executionHistory/executionHistory.bin index a80d0a1..f8bd951 100644 Binary files a/.gradle/8.0/executionHistory/executionHistory.bin and b/.gradle/8.0/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.0/executionHistory/executionHistory.lock b/.gradle/8.0/executionHistory/executionHistory.lock index 1bb5602..c7f9f2c 100644 Binary files a/.gradle/8.0/executionHistory/executionHistory.lock and b/.gradle/8.0/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.0/fileHashes/fileHashes.bin b/.gradle/8.0/fileHashes/fileHashes.bin index f3dd585..1e81aec 100644 Binary files a/.gradle/8.0/fileHashes/fileHashes.bin and b/.gradle/8.0/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.0/fileHashes/fileHashes.lock b/.gradle/8.0/fileHashes/fileHashes.lock index da87bee..78ceff6 100644 Binary files a/.gradle/8.0/fileHashes/fileHashes.lock and b/.gradle/8.0/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.0/fileHashes/resourceHashesCache.bin b/.gradle/8.0/fileHashes/resourceHashesCache.bin index dfe00d9..b4b824e 100644 Binary files a/.gradle/8.0/fileHashes/resourceHashesCache.bin and b/.gradle/8.0/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 4f02df0..de392b3 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/build/classes/java/main/net/lax1dude/eaglercraft/GuiScreenSingleplayerException.class b/build/classes/java/main/net/lax1dude/eaglercraft/GuiScreenSingleplayerException.class new file mode 100644 index 0000000..661d87d Binary files /dev/null and b/build/classes/java/main/net/lax1dude/eaglercraft/GuiScreenSingleplayerException.class differ diff --git a/build/classes/java/main/net/lax1dude/eaglercraft/TextureLocation.class b/build/classes/java/main/net/lax1dude/eaglercraft/TextureLocation.class new file mode 100644 index 0000000..435c024 Binary files /dev/null and b/build/classes/java/main/net/lax1dude/eaglercraft/TextureLocation.class differ diff --git a/build/classes/java/main/net/lax1dude/eaglercraft/sp/ipc/IPCPacket15ThrowException.class b/build/classes/java/main/net/lax1dude/eaglercraft/sp/ipc/IPCPacket15ThrowException.class new file mode 100644 index 0000000..ca1b892 Binary files /dev/null and b/build/classes/java/main/net/lax1dude/eaglercraft/sp/ipc/IPCPacket15ThrowException.class differ diff --git a/build/classes/java/main/net/lax1dude/eaglercraft/sp/ipc/IPCPacketBase.class b/build/classes/java/main/net/lax1dude/eaglercraft/sp/ipc/IPCPacketBase.class new file mode 100644 index 0000000..67798b9 Binary files /dev/null and b/build/classes/java/main/net/lax1dude/eaglercraft/sp/ipc/IPCPacketBase.class differ diff --git a/build/classes/java/main/net/minecraft/src/Gui.class b/build/classes/java/main/net/minecraft/src/Gui.class new file mode 100644 index 0000000..32e4f9a Binary files /dev/null and b/build/classes/java/main/net/minecraft/src/Gui.class differ diff --git a/build/classes/java/main/net/minecraft/src/GuiButton.class b/build/classes/java/main/net/minecraft/src/GuiButton.class new file mode 100644 index 0000000..6f39778 Binary files /dev/null and b/build/classes/java/main/net/minecraft/src/GuiButton.class differ diff --git a/build/classes/java/main/net/minecraft/src/GuiScreen.class b/build/classes/java/main/net/minecraft/src/GuiScreen.class new file mode 100644 index 0000000..fce9556 Binary files /dev/null and b/build/classes/java/main/net/minecraft/src/GuiScreen.class differ diff --git a/src/main/java/net/minecraft/src/AbstractResourcePack.java b/src/main/java/net/minecraft/src/AbstractResourcePack.java index 1fa2597..005182e 100644 --- a/src/main/java/net/minecraft/src/AbstractResourcePack.java +++ b/src/main/java/net/minecraft/src/AbstractResourcePack.java @@ -9,6 +9,8 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import javax.imageio.ImageIO; + +import net.lax1dude.eaglercraft.TextureLocation; import org.apache.commons.io.IOUtils; public abstract class AbstractResourcePack implements ResourcePack @@ -23,7 +25,7 @@ public abstract class AbstractResourcePack implements ResourcePack private static String locationToName(TextureLocation par0TextureLocation) { - return String.format("%s/%s/%s", new Object[] {"assets", par0TextureLocation.getResourceDomain(), par0TextureLocation.getResourcePath()}); + return String.format("%s/%s/%s", new Object[] {"assets", par0TextureLocation, par0TextureLocation}); } protected static String getRelativeName(File par0File, File par1File) diff --git a/src/main/java/net/minecraft/src/EntityBreakingFX.java b/src/main/java/net/minecraft/src/EntityBreakingFX.java index 221e756..db47dc3 100644 --- a/src/main/java/net/minecraft/src/EntityBreakingFX.java +++ b/src/main/java/net/minecraft/src/EntityBreakingFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityBreakingFX extends EntityFX { public EntityBreakingFX(World par1World, double par2, double par4, double par6, Item par8Item) diff --git a/src/main/java/net/minecraft/src/EntityCloudFX.java b/src/main/java/net/minecraft/src/EntityCloudFX.java index a7737d1..a54ebc1 100644 --- a/src/main/java/net/minecraft/src/EntityCloudFX.java +++ b/src/main/java/net/minecraft/src/EntityCloudFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityCloudFX extends EntityFX { float field_70569_a; diff --git a/src/main/java/net/minecraft/src/EntityCrit2FX.java b/src/main/java/net/minecraft/src/EntityCrit2FX.java index 65b5e5b..a1ec486 100644 --- a/src/main/java/net/minecraft/src/EntityCrit2FX.java +++ b/src/main/java/net/minecraft/src/EntityCrit2FX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityCrit2FX extends EntityFX { /** Entity that had been hit and done the Critical hit on. */ diff --git a/src/main/java/net/minecraft/src/EntityCritFX.java b/src/main/java/net/minecraft/src/EntityCritFX.java index fca28e5..ba74886 100644 --- a/src/main/java/net/minecraft/src/EntityCritFX.java +++ b/src/main/java/net/minecraft/src/EntityCritFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityCritFX extends EntityFX { float initialParticleScale; diff --git a/src/main/java/net/minecraft/src/EntityDiggingFX.java b/src/main/java/net/minecraft/src/EntityDiggingFX.java index 16b31ad..8ea75e7 100644 --- a/src/main/java/net/minecraft/src/EntityDiggingFX.java +++ b/src/main/java/net/minecraft/src/EntityDiggingFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityDiggingFX extends EntityFX { private Block blockInstance; diff --git a/src/main/java/net/minecraft/src/EntityFireworkOverlayFX.java b/src/main/java/net/minecraft/src/EntityFireworkOverlayFX.java index 431397c..9659ffc 100644 --- a/src/main/java/net/minecraft/src/EntityFireworkOverlayFX.java +++ b/src/main/java/net/minecraft/src/EntityFireworkOverlayFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityFireworkOverlayFX extends EntityFX { protected EntityFireworkOverlayFX(World par1World, double par2, double par4, double par6) diff --git a/src/main/java/net/minecraft/src/EntityFireworkSparkFX.java b/src/main/java/net/minecraft/src/EntityFireworkSparkFX.java index 086ec1f..c970326 100644 --- a/src/main/java/net/minecraft/src/EntityFireworkSparkFX.java +++ b/src/main/java/net/minecraft/src/EntityFireworkSparkFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityFireworkSparkFX extends EntityFX { private int baseTextureIndex = 160; diff --git a/src/main/java/net/minecraft/src/EntityFireworkStarterFX.java b/src/main/java/net/minecraft/src/EntityFireworkStarterFX.java index eec8b07..775768c 100644 --- a/src/main/java/net/minecraft/src/EntityFireworkStarterFX.java +++ b/src/main/java/net/minecraft/src/EntityFireworkStarterFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityFireworkStarterFX extends EntityFX { private int fireworkAge; diff --git a/src/main/java/net/minecraft/src/EntityFlameFX.java b/src/main/java/net/minecraft/src/EntityFlameFX.java index eaa6313..260d2c6 100644 --- a/src/main/java/net/minecraft/src/EntityFlameFX.java +++ b/src/main/java/net/minecraft/src/EntityFlameFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityFlameFX extends EntityFX { /** the scale of the flame FX */ diff --git a/src/main/java/net/minecraft/src/EntityHeartFX.java b/src/main/java/net/minecraft/src/EntityHeartFX.java index 19bfb12..dbf0435 100644 --- a/src/main/java/net/minecraft/src/EntityHeartFX.java +++ b/src/main/java/net/minecraft/src/EntityHeartFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityHeartFX extends EntityFX { float particleScaleOverTime; diff --git a/src/main/java/net/minecraft/src/EntityHugeExplodeFX.java b/src/main/java/net/minecraft/src/EntityHugeExplodeFX.java index 34dd5c7..d140d44 100644 --- a/src/main/java/net/minecraft/src/EntityHugeExplodeFX.java +++ b/src/main/java/net/minecraft/src/EntityHugeExplodeFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityHugeExplodeFX extends EntityFX { private int timeSinceStart; diff --git a/src/main/java/net/minecraft/src/EntityLavaFX.java b/src/main/java/net/minecraft/src/EntityLavaFX.java index ac01866..8b5fa28 100644 --- a/src/main/java/net/minecraft/src/EntityLavaFX.java +++ b/src/main/java/net/minecraft/src/EntityLavaFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityLavaFX extends EntityFX { private float lavaParticleScale; diff --git a/src/main/java/net/minecraft/src/EntityNoteFX.java b/src/main/java/net/minecraft/src/EntityNoteFX.java index 9c90634..f5866bd 100644 --- a/src/main/java/net/minecraft/src/EntityNoteFX.java +++ b/src/main/java/net/minecraft/src/EntityNoteFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityNoteFX extends EntityFX { float noteParticleScale; diff --git a/src/main/java/net/minecraft/src/EntityPickupFX.java b/src/main/java/net/minecraft/src/EntityPickupFX.java index f13c5b4..b4d3bde 100644 --- a/src/main/java/net/minecraft/src/EntityPickupFX.java +++ b/src/main/java/net/minecraft/src/EntityPickupFX.java @@ -1,5 +1,6 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; import org.lwjgl.opengl.GL11; public class EntityPickupFX extends EntityFX diff --git a/src/main/java/net/minecraft/src/EntityPortalFX.java b/src/main/java/net/minecraft/src/EntityPortalFX.java index 5eb0faf..b4ea4a9 100644 --- a/src/main/java/net/minecraft/src/EntityPortalFX.java +++ b/src/main/java/net/minecraft/src/EntityPortalFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityPortalFX extends EntityFX { private float portalParticleScale; diff --git a/src/main/java/net/minecraft/src/EntityReddustFX.java b/src/main/java/net/minecraft/src/EntityReddustFX.java index 5b470e3..172fe40 100644 --- a/src/main/java/net/minecraft/src/EntityReddustFX.java +++ b/src/main/java/net/minecraft/src/EntityReddustFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntityReddustFX extends EntityFX { float reddustParticleScale; diff --git a/src/main/java/net/minecraft/src/EntitySmokeFX.java b/src/main/java/net/minecraft/src/EntitySmokeFX.java index ff0921a..a935a9c 100644 --- a/src/main/java/net/minecraft/src/EntitySmokeFX.java +++ b/src/main/java/net/minecraft/src/EntitySmokeFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntitySmokeFX extends EntityFX { float smokeParticleScale; diff --git a/src/main/java/net/minecraft/src/EntitySnowShovelFX.java b/src/main/java/net/minecraft/src/EntitySnowShovelFX.java index 0882478..d966bfb 100644 --- a/src/main/java/net/minecraft/src/EntitySnowShovelFX.java +++ b/src/main/java/net/minecraft/src/EntitySnowShovelFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntitySnowShovelFX extends EntityFX { float snowDigParticleScale; diff --git a/src/main/java/net/minecraft/src/EntitySpellParticleFX.java b/src/main/java/net/minecraft/src/EntitySpellParticleFX.java index f6cb3f8..d7ba8e6 100644 --- a/src/main/java/net/minecraft/src/EntitySpellParticleFX.java +++ b/src/main/java/net/minecraft/src/EntitySpellParticleFX.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.adapter.Tessellator; + public class EntitySpellParticleFX extends EntityFX { /** Base spell texture index */ diff --git a/src/main/java/net/minecraft/src/Gui.java b/src/main/java/net/minecraft/src/Gui.java index e425409..4d3535c 100644 --- a/src/main/java/net/minecraft/src/Gui.java +++ b/src/main/java/net/minecraft/src/Gui.java @@ -1,6 +1,7 @@ package net.minecraft.src; import net.lax1dude.eaglercraft.TextureLocation; +import net.lax1dude.eaglercraft.adapter.Tessellator; import org.lwjgl.opengl.GL11; public class Gui diff --git a/src/main/java/net/minecraft/src/GuiButton.java b/src/main/java/net/minecraft/src/GuiButton.java index b06e7d9..4bcb982 100644 --- a/src/main/java/net/minecraft/src/GuiButton.java +++ b/src/main/java/net/minecraft/src/GuiButton.java @@ -1,5 +1,6 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class GuiButton extends Gui @@ -78,7 +79,7 @@ public class GuiButton extends Gui if (this.drawButton) { FontRenderer var4 = par1Minecraft.fontRenderer; - par1Minecraft.getTextureManager().bindTexture(buttonTextures); + buttonTextures.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.field_82253_i = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; int var5 = this.getHoverState(this.field_82253_i); diff --git a/src/main/java/net/minecraft/src/GuiMultiplayer.java b/src/main/java/net/minecraft/src/GuiMultiplayer.java index 47f8629..08c2d23 100644 --- a/src/main/java/net/minecraft/src/GuiMultiplayer.java +++ b/src/main/java/net/minecraft/src/GuiMultiplayer.java @@ -7,6 +7,8 @@ import java.net.InetSocketAddress; import java.net.Socket; import java.util.Collections; import java.util.List; + +import net.lax1dude.eaglercraft.EaglerAdapter; import org.lwjgl.input.Keyboard; public class GuiMultiplayer extends GuiScreen @@ -61,11 +63,43 @@ public class GuiMultiplayer extends GuiScreen private boolean field_74024_A; private List listofLanServers = Collections.emptyList(); + private static long lastCooldown = 0l; + private static long lastRefresh = 0l; + private static int cooldownTimer = 0; + private static boolean isLockedOut = false; + public GuiMultiplayer(GuiScreen par1GuiScreen) { this.parentScreen = par1GuiScreen; } + public static void tickRefreshCooldown() { + if(cooldownTimer > 0) { + long t = EaglerAdapter.steadyTimeMillis(); + if(t - lastCooldown > 5000l) { + --cooldownTimer; + lastCooldown = t; + } + } + } + + private static boolean testIfCanRefresh() { + long t = EaglerAdapter.steadyTimeMillis(); + if(t - lastRefresh > 1000l) { + lastRefresh = t; + if(cooldownTimer < 8) { + ++cooldownTimer; + }else { + isLockedOut = true; + } + if(cooldownTimer < 5) { + isLockedOut = false; + return true; + } + } + return false; + } + /** * Adds the buttons (and other controls) to the screen in question. */ @@ -151,57 +185,45 @@ public class GuiMultiplayer extends GuiScreen /** * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e). */ - protected void actionPerformed(GuiButton par1GuiButton) - { - if (par1GuiButton.enabled) - { - if (par1GuiButton.id == 2) - { + protected void actionPerformed(GuiButton par1GuiButton) { + if (par1GuiButton.enabled) { + if (par1GuiButton.id == 2) { String var2 = this.internetServerList.getServerData(this.selectedServer).serverName; - if (var2 != null) - { + if (var2 != null) { this.deleteClicked = true; - String var3 = I18n.getString("selectServer.deleteQuestion"); - String var4 = "\'" + var2 + "\' " + I18n.getString("selectServer.deleteWarning"); - String var5 = I18n.getString("selectServer.deleteButton"); - String var6 = I18n.getString("gui.cancel"); - GuiYesNo var7 = new GuiYesNo(this, var3, var4, var5, var6, this.selectedServer); - this.mc.displayGuiScreen(var7); + StringTranslate var3 = StringTranslate.getInstance(); + String var4 = var3.translateKey("selectServer.deleteQuestion"); + String var5 = "\'" + var2 + "\' " + var3.translateKey("selectServer.deleteWarning"); + String var6 = var3.translateKey("selectServer.deleteButton"); + String var7 = var3.translateKey("gui.cancel"); + GuiYesNo var8 = new GuiYesNo(this, var4, var5, var6, var7, this.selectedServer); + this.mc.displayGuiScreen(var8); } - } - else if (par1GuiButton.id == 1) - { + } else if (par1GuiButton.id == 1) { this.joinServer(this.selectedServer); - } - else if (par1GuiButton.id == 4) - { + } else if (par1GuiButton.id == 4) { this.directClicked = true; - this.mc.displayGuiScreen(new GuiScreenServerList(this, this.theServerData = new ServerData(I18n.getString("selectServer.defaultName"), ""))); - } - else if (par1GuiButton.id == 3) - { + //this.mc.displayGuiScreen(new GuiScreenConnectOption(this)); // FIX THIS + System.out.println("fuck"); + } else if (par1GuiButton.id == 3) { this.addClicked = true; - this.mc.displayGuiScreen(new GuiScreenAddServer(this, this.theServerData = new ServerData(I18n.getString("selectServer.defaultName"), ""))); - } - else if (par1GuiButton.id == 7) - { + this.mc.displayGuiScreen(new GuiScreenAddServer(this, this.theServerData = new ServerData(StatCollector.translateToLocal("selectServer.defaultName"), "", false))); + } else if (par1GuiButton.id == 7) { this.editClicked = true; - ServerData var8 = this.internetServerList.getServerData(this.selectedServer); - this.theServerData = new ServerData(var8.serverName, var8.serverIP); - this.theServerData.setHideAddress(var8.isHidingAddress()); + ServerData var9 = this.internetServerList.getServerData(this.selectedServer); + this.theServerData = new ServerData(var9.serverName, var9.serverIP, false); + this.theServerData.setHideAddress(var9.isHidingAddress()); this.mc.displayGuiScreen(new GuiScreenAddServer(this, this.theServerData)); - } - else if (par1GuiButton.id == 0) - { + } else if (par1GuiButton.id == 0) { this.mc.displayGuiScreen(this.parentScreen); - } - else if (par1GuiButton.id == 8) - { - this.mc.displayGuiScreen(new GuiMultiplayer(this.parentScreen)); - } - else - { + } else if (par1GuiButton.id == 8) { + if(testIfCanRefresh()) { + lastRefresh = 0; + --cooldownTimer; + this.mc.displayGuiScreen(new GuiMultiplayer(this.parentScreen)); + } + } else { this.serverSlotContainer.actionPerformed(par1GuiButton); } } @@ -336,21 +358,16 @@ public class GuiMultiplayer extends GuiScreen /** * Join server by slot index */ - private void joinServer(int par1) - { - if (par1 < this.internetServerList.countServers()) - { + private void joinServer(int par1) { + if (par1 < internetServerList.countServers()) { this.connectToServer(this.internetServerList.getServerData(par1)); - } - else - { - par1 -= this.internetServerList.countServers(); + } else { + par1 -= internetServerList.countServers(); - if (par1 < this.listofLanServers.size()) - { - LanServer var2 = (LanServer)this.listofLanServers.get(par1); - this.connectToServer(new ServerData(var2.getServerMotd(), var2.getServerIpPort())); - } + /*if (par1 < lanServerList.countServers()) { // FIX THIS (later maybe) + LanServer var2 = lanServerList.getServer(par1); + //connectToLAN("Connecting to '" + var2.getLanServerMotd() + "'...", var2.getLanServerCode(), var2.getLanServerRelay()); + }*/ } } diff --git a/src/main/java/net/minecraft/src/GuiScreen.java b/src/main/java/net/minecraft/src/GuiScreen.java index efb6533..6e4cb25 100644 --- a/src/main/java/net/minecraft/src/GuiScreen.java +++ b/src/main/java/net/minecraft/src/GuiScreen.java @@ -7,6 +7,8 @@ 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 org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; @@ -186,11 +188,6 @@ public class GuiScreen extends Gui int var2 = this.height - Mouse.getEventY() * this.height / this.mc.displayHeight - 1; int var3 = Mouse.getEventButton(); - if (Minecraft.isRunningOnMac && var3 == 0 && (Keyboard.isKeyDown(29) || Keyboard.isKeyDown(157))) - { - var3 = 1; - } - if (Mouse.getEventButtonState()) { if (this.mc.gameSettings.touchscreen && this.field_92018_d++ > 0) @@ -277,7 +274,7 @@ public class GuiScreen extends Gui GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_FOG); Tessellator var2 = Tessellator.instance; - this.mc.getTextureManager().bindTexture(optionsBackground); + optionsBackground.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); float var3 = 32.0F; var2.startDrawingQuads(); @@ -301,7 +298,7 @@ public class GuiScreen extends Gui public static boolean isCtrlKeyDown() { - return Minecraft.isRunningOnMac ? Keyboard.isKeyDown(219) || Keyboard.isKeyDown(220) : Keyboard.isKeyDown(29) || Keyboard.isKeyDown(157); + return Keyboard.isKeyDown(29) || Keyboard.isKeyDown(157); } public static boolean isShiftKeyDown() diff --git a/src/main/java/net/minecraft/src/GuiScreenBackup.java b/src/main/java/net/minecraft/src/GuiScreenBackup.java deleted file mode 100644 index 76c8a84..0000000 --- a/src/main/java/net/minecraft/src/GuiScreenBackup.java +++ /dev/null @@ -1,166 +0,0 @@ -package net.minecraft.src; - -import java.util.Collections; -import java.util.List; -import org.lwjgl.input.Keyboard; - -public class GuiScreenBackup extends GuiScreen -{ - private final GuiScreenConfigureWorld field_110380_a; - private final long field_110377_b; - private List field_110378_c = Collections.emptyList(); - private GuiScreenBackupSelectionList field_110375_d; - private int field_110376_e = -1; - private GuiButton field_110379_p; - - public GuiScreenBackup(GuiScreenConfigureWorld par1GuiScreenConfigureWorld, long par2) - { - this.field_110380_a = par1GuiScreenConfigureWorld; - this.field_110377_b = par2; - } - - /** - * Adds the buttons (and other controls) to the screen in question. - */ - public void initGui() - { - Keyboard.enableRepeatEvents(true); - this.buttonList.clear(); - this.field_110375_d = new GuiScreenBackupSelectionList(this); - (new GuiScreenBackupDownloadThread(this)).start(); - this.func_110369_g(); - } - - private void func_110369_g() - { - this.buttonList.add(new GuiButton(0, this.width / 2 + 6, this.height - 52, 153, 20, I18n.getString("gui.back"))); - this.buttonList.add(this.field_110379_p = new GuiButton(1, this.width / 2 - 154, this.height - 52, 153, 20, I18n.getString("mco.backup.button.restore"))); - } - - /** - * Called from the main game loop to update the screen. - */ - public void updateScreen() - { - super.updateScreen(); - } - - /** - * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e). - */ - protected void actionPerformed(GuiButton par1GuiButton) - { - if (par1GuiButton.enabled) - { - if (par1GuiButton.id == 1) - { - String var2 = I18n.getString("mco.configure.world.restore.question.line1"); - String var3 = I18n.getString("mco.configure.world.restore.question.line2"); - this.mc.displayGuiScreen(new GuiScreenConfirmation(this, "Warning!", var2, var3, 1)); - } - else if (par1GuiButton.id == 0) - { - this.mc.displayGuiScreen(this.field_110380_a); - } - else - { - this.field_110375_d.actionPerformed(par1GuiButton); - } - } - } - - public void confirmClicked(boolean par1, int par2) - { - if (par1 && par2 == 1) - { - this.func_110374_h(); - } - else - { - this.mc.displayGuiScreen(this); - } - } - - private void func_110374_h() - { - if (this.field_110376_e >= 0 && this.field_110376_e < this.field_110378_c.size()) - { - Backup var1 = (Backup)this.field_110378_c.get(this.field_110376_e); - GuiScreenBackupRestoreTask var2 = new GuiScreenBackupRestoreTask(this, var1, (GuiScreenBackupDownloadThread)null); - GuiScreenLongRunningTask var3 = new GuiScreenLongRunningTask(this.mc, this.field_110380_a, var2); - var3.func_98117_g(); - this.mc.displayGuiScreen(var3); - } - } - - /** - * Draws the screen and all the components in it. - */ - public void drawScreen(int par1, int par2, float par3) - { - this.drawDefaultBackground(); - this.field_110375_d.drawScreen(par1, par2, par3); - this.drawCenteredString(this.fontRenderer, I18n.getString("mco.backup.title"), this.width / 2, 20, 16777215); - super.drawScreen(par1, par2, par3); - } - - static Minecraft func_110366_a(GuiScreenBackup par0GuiScreenBackup) - { - return par0GuiScreenBackup.mc; - } - - static List func_110373_a(GuiScreenBackup par0GuiScreenBackup, List par1List) - { - return par0GuiScreenBackup.field_110378_c = par1List; - } - - static long func_110367_b(GuiScreenBackup par0GuiScreenBackup) - { - return par0GuiScreenBackup.field_110377_b; - } - - static Minecraft func_130030_c(GuiScreenBackup par0GuiScreenBackup) - { - return par0GuiScreenBackup.mc; - } - - static GuiScreenConfigureWorld func_130031_d(GuiScreenBackup par0GuiScreenBackup) - { - return par0GuiScreenBackup.field_110380_a; - } - - static Minecraft func_130035_e(GuiScreenBackup par0GuiScreenBackup) - { - return par0GuiScreenBackup.mc; - } - - static Minecraft func_130036_f(GuiScreenBackup par0GuiScreenBackup) - { - return par0GuiScreenBackup.mc; - } - - static List func_110370_e(GuiScreenBackup par0GuiScreenBackup) - { - return par0GuiScreenBackup.field_110378_c; - } - - static int func_130029_a(GuiScreenBackup par0GuiScreenBackup, int par1) - { - return par0GuiScreenBackup.field_110376_e = par1; - } - - static int func_130034_h(GuiScreenBackup par0GuiScreenBackup) - { - return par0GuiScreenBackup.field_110376_e; - } - - static FontRenderer func_130032_i(GuiScreenBackup par0GuiScreenBackup) - { - return par0GuiScreenBackup.fontRenderer; - } - - static FontRenderer func_130033_j(GuiScreenBackup par0GuiScreenBackup) - { - return par0GuiScreenBackup.fontRenderer; - } -} diff --git a/src/main/java/net/minecraft/src/GuiScreenBackupDownloadThread.java b/src/main/java/net/minecraft/src/GuiScreenBackupDownloadThread.java deleted file mode 100644 index 01614d0..0000000 --- a/src/main/java/net/minecraft/src/GuiScreenBackupDownloadThread.java +++ /dev/null @@ -1,25 +0,0 @@ -package net.minecraft.src; - -class GuiScreenBackupDownloadThread extends Thread -{ - final GuiScreenBackup field_111250_a; - - GuiScreenBackupDownloadThread(GuiScreenBackup par1GuiScreenBackup) - { - this.field_111250_a = par1GuiScreenBackup; - } - - public void run() - { - McoClient var1 = new McoClient(GuiScreenBackup.func_110366_a(this.field_111250_a).getSession()); - - try - { - GuiScreenBackup.func_110373_a(this.field_111250_a, var1.func_111232_c(GuiScreenBackup.func_110367_b(this.field_111250_a)).field_111223_a); - } - catch (ExceptionMcoService var3) - { - GuiScreenBackup.func_130030_c(this.field_111250_a).getLogAgent().logSevere(var3.toString()); - } - } -} diff --git a/src/main/java/net/minecraft/src/GuiScreenBackupRestoreTask.java b/src/main/java/net/minecraft/src/GuiScreenBackupRestoreTask.java deleted file mode 100644 index 561827a..0000000 --- a/src/main/java/net/minecraft/src/GuiScreenBackupRestoreTask.java +++ /dev/null @@ -1,52 +0,0 @@ -package net.minecraft.src; - -class GuiScreenBackupRestoreTask extends TaskLongRunning -{ - /** The backup being restored */ - private final Backup theBackup; - - /** The screen running this task */ - final GuiScreenBackup theBackupScreen; - - private GuiScreenBackupRestoreTask(GuiScreenBackup par1GuiScreenBackup, Backup par2Backup) - { - this.theBackupScreen = par1GuiScreenBackup; - this.theBackup = par2Backup; - } - - public void run() - { - this.setMessage(I18n.getString("mco.backup.restoring")); - - try - { - McoClient var1 = new McoClient(this.getMinecraft().getSession()); - var1.func_111235_c(GuiScreenBackup.func_110367_b(this.theBackupScreen), this.theBackup.field_110727_a); - - try - { - Thread.sleep(1000L); - } - catch (InterruptedException var3) - { - Thread.currentThread().interrupt(); - } - - this.getMinecraft().displayGuiScreen(GuiScreenBackup.func_130031_d(this.theBackupScreen)); - } - catch (ExceptionMcoService var4) - { - GuiScreenBackup.func_130035_e(this.theBackupScreen).getLogAgent().logSevere(var4.toString()); - this.setFailedMessage(var4.toString()); - } - catch (Exception var5) - { - this.setFailedMessage(var5.getLocalizedMessage()); - } - } - - GuiScreenBackupRestoreTask(GuiScreenBackup par1GuiScreenBackup, Backup par2Backup, GuiScreenBackupDownloadThread par3GuiScreenBackupDownloadThread) - { - this(par1GuiScreenBackup, par2Backup); - } -} diff --git a/src/main/java/net/minecraft/src/GuiScreenBackupSelectionList.java b/src/main/java/net/minecraft/src/GuiScreenBackupSelectionList.java deleted file mode 100644 index 99c78a0..0000000 --- a/src/main/java/net/minecraft/src/GuiScreenBackupSelectionList.java +++ /dev/null @@ -1,115 +0,0 @@ -package net.minecraft.src; - -import java.text.DateFormat; -import java.util.Date; -import net.minecraft.server.MinecraftServer; - -class GuiScreenBackupSelectionList extends GuiScreenSelectLocation -{ - final GuiScreenBackup field_111249_a; - - public GuiScreenBackupSelectionList(GuiScreenBackup par1GuiScreenBackup) - { - super(GuiScreenBackup.func_130036_f(par1GuiScreenBackup), par1GuiScreenBackup.width, par1GuiScreenBackup.height, 32, par1GuiScreenBackup.height - 64, 36); - this.field_111249_a = par1GuiScreenBackup; - } - - /** - * Gets the size of the current slot list. - */ - protected int getSize() - { - return GuiScreenBackup.func_110370_e(this.field_111249_a).size() + 1; - } - - /** - * the element in the slot that was clicked, boolean for wether it was double clicked or not - */ - protected void elementClicked(int par1, boolean par2) - { - if (par1 < GuiScreenBackup.func_110370_e(this.field_111249_a).size()) - { - GuiScreenBackup.func_130029_a(this.field_111249_a, par1); - } - } - - /** - * returns true if the element passed in is currently selected - */ - protected boolean isSelected(int par1) - { - return par1 == GuiScreenBackup.func_130034_h(this.field_111249_a); - } - - protected boolean func_104086_b(int par1) - { - return false; - } - - protected int func_130003_b() - { - return this.getSize() * 36; - } - - protected void func_130004_c() - { - this.field_111249_a.drawDefaultBackground(); - } - - protected void drawSlot(int par1, int par2, int par3, int par4, Tessellator par5Tessellator) - { - if (par1 < GuiScreenBackup.func_110370_e(this.field_111249_a).size()) - { - this.func_111246_b(par1, par2, par3, par4, par5Tessellator); - } - } - - private void func_111246_b(int par1, int par2, int par3, int par4, Tessellator par5Tessellator) - { - Backup var6 = (Backup)GuiScreenBackup.func_110370_e(this.field_111249_a).get(par1); - this.field_111249_a.drawString(GuiScreenBackup.func_130032_i(this.field_111249_a), "Backup (" + this.func_111248_a(Long.valueOf(MinecraftServer.getSystemTimeMillis() - var6.field_110725_b.getTime())) + ")", par2 + 2, par3 + 1, 16777215); - this.field_111249_a.drawString(GuiScreenBackup.func_130033_j(this.field_111249_a), this.func_111247_a(var6.field_110725_b), par2 + 2, par3 + 12, 7105644); - } - - private String func_111247_a(Date par1Date) - { - return DateFormat.getDateTimeInstance(3, 3).format(par1Date); - } - - private String func_111248_a(Long par1) - { - if (par1.longValue() < 0L) - { - return "right now"; - } - else - { - long var2 = par1.longValue() / 1000L; - - if (var2 < 60L) - { - return (var2 == 1L ? "1 second" : var2 + " seconds") + " ago"; - } - else - { - long var4; - - if (var2 < 3600L) - { - var4 = var2 / 60L; - return (var4 == 1L ? "1 minute" : var4 + " minutes") + " ago"; - } - else if (var2 < 86400L) - { - var4 = var2 / 3600L; - return (var4 == 1L ? "1 hour" : var4 + " hours") + " ago"; - } - else - { - var4 = var2 / 86400L; - return (var4 == 1L ? "1 day" : var4 + " days") + " ago"; - } - } - } - } -} diff --git a/src/main/java/net/minecraft/src/GuiSlotServer.java b/src/main/java/net/minecraft/src/GuiSlotServer.java index 283f2eb..3336d02 100644 --- a/src/main/java/net/minecraft/src/GuiSlotServer.java +++ b/src/main/java/net/minecraft/src/GuiSlotServer.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.EaglerAdapter; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; import net.lax1dude.eaglercraft.adapter.Tessellator; @@ -8,6 +10,8 @@ class GuiSlotServer extends GuiSlot /** Instance to the GUI this list is on. */ final GuiMultiplayer parentGui; + private static final TextureLocation defaultServerIcon = new TextureLocation("/gui/unknown_pack.png"); + public GuiSlotServer(GuiMultiplayer par1GuiMultiplayer) { super(par1GuiMultiplayer.mc, par1GuiMultiplayer.width, par1GuiMultiplayer.height, 32, par1GuiMultiplayer.height - 64, 36); @@ -126,112 +130,116 @@ class GuiSlotServer extends GuiSlot this.parentGui.drawCenteredString(this.parentGui.fontRenderer, var6, this.parentGui.width / 2, par3 + 12, 8421504); } - private void func_77247_d(int par1, int par2, int par3, int par4, Tessellator par5Tessellator) - { + private static final TextureLocation icons = new TextureLocation("/gui/icons.png"); + + private void func_77247_d(int par1, int par2, int par3, int par4, Tessellator par5Tessellator) { ServerData var6 = GuiMultiplayer.getInternetServerList(this.parentGui).getServerData(par1); - synchronized (GuiMultiplayer.getLock()) - { - if (GuiMultiplayer.getThreadsPending() < 5 && !var6.field_78841_f) - { - var6.field_78841_f = true; - var6.pingToServer = -2L; - var6.serverMOTD = ""; - var6.populationInfo = ""; - GuiMultiplayer.increaseThreadsPending(); - (new ThreadPollServers(this, var6)).start(); + boolean var7 = var6.field_82821_f > 61; + boolean var8 = var6.field_82821_f < 61; + boolean var9 = var7 || var8; + this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverName, par2 + 38, par3 + 1, 16777215); + if(var6.hasPing && (var6.pingToServer > 0 || var6.hasError)) { + int i = var6.serverMOTD.indexOf('\n'); + if(i > 0) { + this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverMOTD.substring(0, i), par2 + 38, par3 + 12, 8421504); + this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverMOTD.substring(i + 1), par2 + 38, par3 + 12 + 11, 8421504); + }else { + this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverMOTD, par2 + 38, par3 + 12, 8421504); + if (!this.parentGui.mc.gameSettings.hideServerAddress && !var6.isHidingAddress()) { + this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverIP, par2 + 38, par3 + 12 + 11, 3158064); + } else { + this.parentGui.drawString(this.parentGui.fontRenderer, StatCollector.translateToLocal("selectServer.hiddenAddress"), par2 + 38, par3 + 12 + 11, 3158064); + } + } + this.parentGui.drawString(this.parentGui.fontRenderer, var6.populationInfo, par2 + 251 - this.parentGui.fontRenderer.getStringWidth(var6.populationInfo), par3 + 12, 8421504); + }else { + if (!this.parentGui.mc.gameSettings.hideServerAddress && !var6.isHidingAddress()) { + this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverIP, par2 + 38, par3 + 12 + 11, 3158064); + } else { + this.parentGui.drawString(this.parentGui.fontRenderer, StatCollector.translateToLocal("selectServer.hiddenAddress"), par2 + 38, par3 + 12 + 11, 3158064); } } - boolean var7 = var6.field_82821_f > 78; - boolean var8 = var6.field_82821_f < 78; - boolean var9 = var7 || var8; - this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverName, par2 + 2, par3 + 1, 16777215); - this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverMOTD, par2 + 2, par3 + 12, 8421504); - this.parentGui.drawString(this.parentGui.fontRenderer, var6.populationInfo, par2 + 215 - this.parentGui.fontRenderer.getStringWidth(var6.populationInfo), par3 + 12, 8421504); - - if (var9) - { + if (var9) { String var10 = EnumChatFormatting.DARK_RED + var6.gameVersion; - this.parentGui.drawString(this.parentGui.fontRenderer, var10, par2 + 200 - this.parentGui.fontRenderer.getStringWidth(var10), par3 + 1, 8421504); + this.parentGui.drawString(this.parentGui.fontRenderer, var10, par2 + 240 - this.parentGui.fontRenderer.getStringWidth(var10), par3 + 1, 8421504); } - if (!this.parentGui.mc.gameSettings.hideServerAddress && !var6.isHidingAddress()) - { - this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverIP, par2 + 2, par3 + 12 + 11, 3158064); - } - else - { - this.parentGui.drawString(this.parentGui.fontRenderer, I18n.getString("selectServer.hiddenAddress"), par2 + 2, par3 + 12 + 11, 3158064); + EaglerAdapter.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + var6.refreshIcon(); + if(var6.serverIconEnabled && var6.serverIconGL != -1) { + this.mc.renderEngine.bindTexture(var6.serverIconGL); + }else { + defaultServerIcon.bindTexture(); } - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Gui.icons.bindTexture(); + int iconX = par2 + 2; + int iconY = par3 + 2; + int iconSize = 28; + + Tessellator var14 = Tessellator.instance; + var14.startDrawingQuads(); + var14.addVertexWithUV((double) (iconX + 0), (double) (iconY + iconSize), 0.0d, 0.0d, 1.0d); + var14.addVertexWithUV((double) (iconX + iconSize), (double) (iconY + iconSize), 0.0d, 1.0d, 1.0d); + var14.addVertexWithUV((double) (iconX + iconSize), (double) (iconY + 0), 0.0d, 1.0d, 0.0d); + var14.addVertexWithUV((double) (iconX + 0), (double) (iconY + 0), 0.0d, 0.0d, 0.0d); + var14.draw(); + + icons.bindTexture(); byte var15 = 0; boolean var11 = false; String var12 = ""; int var16; - if (var9) - { + if (var9) { var12 = var7 ? "Client out of date!" : "Server out of date!"; var16 = 5; - } - else if (var6.field_78841_f && var6.pingToServer != -2L) - { - if (var6.pingToServer < 0L) - { + } else if (var6.hasPing && var6.pingToServer != -2L) { + if (var6.pingToServer < 0L) { var16 = 5; - } - else if (var6.pingToServer < 150L) - { + } else if (var6.pingToServer < 150L) { var16 = 0; - } - else if (var6.pingToServer < 300L) - { + } else if (var6.pingToServer < 300L) { var16 = 1; - } - else if (var6.pingToServer < 600L) - { + } else if (var6.pingToServer < 600L) { var16 = 2; - } - else if (var6.pingToServer < 1000L) - { + } else if (var6.pingToServer < 1000L) { var16 = 3; - } - else - { + } else { var16 = 4; } - if (var6.pingToServer < 0L) - { + if (var6.pingToServer < 0L) { var12 = "(no connection)"; - } - else - { + } else { var12 = var6.pingToServer + "ms"; } - } - else - { + } else { var15 = 1; - var16 = (int)(Minecraft.getSystemTime() / 100L + (long)(par1 * 2) & 7L); + var16 = (int) (Minecraft.getSystemTime() / 100L + (long) (par1 * 2) & 7L); - if (var16 > 4) - { + if (var16 > 4) { var16 = 8 - var16; } var12 = "Polling.."; } - this.parentGui.drawTexturedModalRect(par2 + 205, par3, 0 + var15 * 10, 176 + var16 * 8, 10, 8); + this.parentGui.drawTexturedModalRect(par2 + 241, par3, 0 + var15 * 10, 176 + var16 * 8, 10, 8); byte var13 = 4; - if (this.mouseX >= par2 + 205 - var13 && this.mouseY >= par3 - var13 && this.mouseX <= par2 + 205 + 10 + var13 && this.mouseY <= par3 + 8 + var13) - { + if (this.mouseX >= par2 + 245 - var13 && this.mouseY >= par3 - var13 && this.mouseX <= par2 + 245 + 10 + var13 && this.mouseY <= par3 + 4 + var13) { GuiMultiplayer.getAndSetLagTooltip(this.parentGui, var12); + }else if (this.mouseX >= par2 + 230 - var13 && this.mouseY >= par3 - var13 + 4 && this.mouseX <= par2 + 245 + 10 + var13 && this.mouseY <= par3 + 8 + var13 + 8) { + if(var6.playerList.size() > 0) { + var12 = ""; + for(String s : var6.playerList) { + var12 += (s + "\n"); + } + GuiMultiplayer.getAndSetLagTooltip(this.parentGui, var12); + } } } } diff --git a/src/main/java/net/minecraft/src/GuiSlotStats.java b/src/main/java/net/minecraft/src/GuiSlotStats.java index 44f885d..9f905b0 100644 --- a/src/main/java/net/minecraft/src/GuiSlotStats.java +++ b/src/main/java/net/minecraft/src/GuiSlotStats.java @@ -3,6 +3,8 @@ package net.minecraft.src; import java.util.Collections; import java.util.Comparator; import java.util.List; + +import net.lax1dude.eaglercraft.adapter.Tessellator; import org.lwjgl.input.Mouse; abstract class GuiSlotStats extends GuiSlot diff --git a/src/main/java/net/minecraft/src/IntegratedServer.java b/src/main/java/net/minecraft/src/IntegratedServer.java index 0042133..ae78a13 100644 --- a/src/main/java/net/minecraft/src/IntegratedServer.java +++ b/src/main/java/net/minecraft/src/IntegratedServer.java @@ -19,8 +19,8 @@ public class IntegratedServer extends MinecraftServer public IntegratedServer(Minecraft par1Minecraft, String par2Str, String par3Str, WorldSettings par4WorldSettings) { - super(new File(par1Minecraft.mcDataDir, "saves")); - this.serverLogAgent = new LogAgent("Minecraft-Server", " [SERVER]", (new File(par1Minecraft.mcDataDir, "output-server.log")).getAbsolutePath()); + super(new File("", "saves")); + this.serverLogAgent = new LogAgent("Minecraft-Server", " [SERVER]", (new File("", "output-server.log")).getAbsolutePath()); this.setServerOwner(par1Minecraft.getSession().getUsername()); this.setFolderName(par2Str); this.setWorldName(par3Str); @@ -147,7 +147,7 @@ public class IntegratedServer extends MinecraftServer protected File getDataDirectory() { - return this.mc.mcDataDir; + return null; } public boolean isDedicatedServer() diff --git a/src/main/java/net/minecraft/src/NBTTagCompound.java b/src/main/java/net/minecraft/src/NBTTagCompound.java index cc5a654..1fdace8 100644 --- a/src/main/java/net/minecraft/src/NBTTagCompound.java +++ b/src/main/java/net/minecraft/src/NBTTagCompound.java @@ -455,4 +455,8 @@ public class NBTTagCompound extends NBTBase { return par0NBTTagCompound.tagMap; } + + public String getStringOrNull(String string) { + return !this.tagMap.containsKey(string) ? null : ((NBTTagString) this.tagMap.get(string)).data; + } } diff --git a/src/main/java/net/minecraft/src/RenderEntity.java b/src/main/java/net/minecraft/src/RenderEntity.java index 619f687..070784b 100644 --- a/src/main/java/net/minecraft/src/RenderEntity.java +++ b/src/main/java/net/minecraft/src/RenderEntity.java @@ -1,5 +1,6 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class RenderEntity extends Render diff --git a/src/main/java/net/minecraft/src/RenderTNTPrimed.java b/src/main/java/net/minecraft/src/RenderTNTPrimed.java index 71ff222..62c3d2d 100644 --- a/src/main/java/net/minecraft/src/RenderTNTPrimed.java +++ b/src/main/java/net/minecraft/src/RenderTNTPrimed.java @@ -1,5 +1,6 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class RenderTNTPrimed extends Render diff --git a/src/main/java/net/minecraft/src/ServerData.java b/src/main/java/net/minecraft/src/ServerData.java index f19ff87..acf1aae 100644 --- a/src/main/java/net/minecraft/src/ServerData.java +++ b/src/main/java/net/minecraft/src/ServerData.java @@ -1,7 +1,18 @@ package net.minecraft.src; -public class ServerData -{ +import java.nio.IntBuffer; +import java.util.ArrayList; +import java.util.List; + +import org.json.JSONArray; +import org.json.JSONObject; + +import net.lax1dude.eaglercraft.EaglerAdapter; +import net.lax1dude.eaglercraft.ServerQuery; +import net.lax1dude.eaglercraft.ServerQuery.QueryResponse; +import net.minecraft.src.Minecraft; + +public class ServerData { public String serverName; public String serverIP; private final int id; @@ -9,38 +20,39 @@ public class ServerData private static int idCounter = 0; /** - * the string indicating number of players on and capacity of the server that is shown on the server browser (i.e. - * "5/20" meaning 5 slots used out of 20 slots total) + * the string indicating number of players on and capacity of the server that is + * shown on the server browser (i.e. "5/20" meaning 5 slots used out of 20 slots + * total) */ public String populationInfo; /** - * (better variable name would be 'hostname') server name as displayed in the server browser's second line (grey - * text) + * (better variable name would be 'hostname') server name as displayed in the + * server browser's second line (grey text) */ public String serverMOTD; /** last server ping that showed up in the server browser */ public long pingToServer; - public int field_82821_f = 78; + public long pingSentTime; + public int field_82821_f = 61; /** Game version for this server. */ - public String gameVersion = "1.6.4"; - public boolean field_78841_f; + public String gameVersion = "1.5.2"; + public boolean hasPing = false; private boolean field_78842_g = true; - private boolean acceptsTextures; + private boolean acceptsTextures = false; + public ServerQuery currentQuery = null; + public int[] serverIcon = null; + public boolean serverIconDirty = false; + public boolean serverIconEnabled = false; + public boolean hasError = false; + public List playerList = new ArrayList(); + public int serverIconGL = -1; public final boolean isDefault; /** Whether to hide the IP address for this server. */ - private boolean hideAddress; - - public ServerData(String par1Str, String par2Str) - { - this.serverName = par1Str; - this.serverIP = par2Str; - this.isDefault = false; - this.id = ++idCounter; - } + private boolean hideAddress = false; public ServerData(String par1Str, String par2Str, boolean isDefault) { this.serverName = par1Str; @@ -49,21 +61,24 @@ public class ServerData this.id = ++idCounter; } + public int hashCode() { + return id; + } + + public boolean equals(Object o) { + return o instanceof ServerData && id == ((ServerData)o).id; + } + /** - * Returns an NBTTagCompound with the server's name, IP and maybe acceptTextures. + * Returns an NBTTagCompound with the server's name, IP and maybe + * acceptTextures. */ - public NBTTagCompound getNBTCompound() - { + public NBTTagCompound getNBTCompound() { NBTTagCompound var1 = new NBTTagCompound(); var1.setString("name", this.serverName); var1.setString("ip", this.serverIP); var1.setBoolean("hideAddress", this.hideAddress); - if (!this.field_78842_g) - { - var1.setBoolean("acceptTextures", this.acceptsTextures); - } - return var1; } @@ -75,35 +90,100 @@ public class ServerData return this.field_78842_g; } - public void setAcceptsTextures(boolean par1) - { + public void setAcceptsTextures(boolean par1) { this.acceptsTextures = par1; this.field_78842_g = false; } - public boolean isHidingAddress() - { + public boolean isHidingAddress() { return this.hideAddress; } - public void setHideAddress(boolean par1) - { + public void setHideAddress(boolean par1) { this.hideAddress = par1; } /** - * Takes an NBTTagCompound with 'name' and 'ip' keys, returns a ServerData instance. + * Takes an NBTTagCompound with 'name' and 'ip' keys, returns a ServerData + * instance. */ - public static ServerData getServerDataFromNBTCompound(NBTTagCompound par0NBTTagCompound) - { - ServerData var1 = new ServerData(par0NBTTagCompound.getString("name"), par0NBTTagCompound.getString("ip")); + public static ServerData getServerDataFromNBTCompound(NBTTagCompound par0NBTTagCompound) { + ServerData var1 = new ServerData(par0NBTTagCompound.getString("name"), par0NBTTagCompound.getString("ip"), par0NBTTagCompound.getBoolean("default")); var1.hideAddress = par0NBTTagCompound.getBoolean("hideAddress"); - - if (par0NBTTagCompound.hasKey("acceptTextures")) - { - var1.setAcceptsTextures(par0NBTTagCompound.getBoolean("acceptTextures")); - } - return var1; } + + public void setMOTDFromQuery(QueryResponse pkt) { + JSONObject motdData = pkt.getResponseJSON(); + JSONArray motd = motdData.getJSONArray("motd"); + this.serverMOTD = motd.length() > 0 ? (motd.length() > 1 ? motd.getString(0) + "\n" + motd.getString(1) : motd.getString(0)) : ""; + this.populationInfo = "" + motdData.getInt("online") + "/" + motdData.getInt("max"); + this.playerList.clear(); + JSONArray players = motdData.getJSONArray("players"); + for(int i = 0, l = players.length(); i < l; ++i) { + this.playerList.add(players.getString(i)); + } + serverIconEnabled = motdData.getBoolean("icon"); + if(!serverIconEnabled) { + if(serverIconGL != -1) { + EaglerAdapter.glDeleteTextures(serverIconGL); + serverIconGL = -1; + } + } + hasError = false; + } + + public void setRateLimitError(boolean lock, boolean isTcp) { + if(lock) { + serverMOTD = EnumChatFormatting.RED + "Your IP is banned for DoS\n" + EnumChatFormatting.GRAY + "Try again in an hour"; + }else { + if(isTcp) { + serverMOTD = EnumChatFormatting.RED + "Connection Blocked\n" + EnumChatFormatting.GRAY + "Try again in a minute"; + }else { + serverMOTD = EnumChatFormatting.RED + "Query Was Blocked\n" + EnumChatFormatting.GRAY + "Try again in a minute"; + } + } + this.populationInfo = ""; + this.playerList.clear(); + this.serverIconEnabled = false; + this.hasError = true; + } + + public void refreshIcon() { + if(serverIconEnabled) { + if(serverIconDirty && serverIcon != null) { + if(serverIconGL == -1) { + serverIconGL = EaglerAdapter.glGenTextures(); + Minecraft.getMinecraft().renderEngine.bindTexture(serverIconGL); + EaglerAdapter.glTexParameteri(EaglerAdapter.GL_TEXTURE_2D, EaglerAdapter.GL_TEXTURE_WRAP_S, EaglerAdapter.GL_REPEAT); + EaglerAdapter.glTexParameteri(EaglerAdapter.GL_TEXTURE_2D, EaglerAdapter.GL_TEXTURE_WRAP_T, EaglerAdapter.GL_REPEAT); + EaglerAdapter.glTexParameteri(EaglerAdapter.GL_TEXTURE_2D, EaglerAdapter.GL_TEXTURE_MIN_FILTER, EaglerAdapter.GL_NEAREST); + EaglerAdapter.glTexParameteri(EaglerAdapter.GL_TEXTURE_2D, EaglerAdapter.GL_TEXTURE_MAG_FILTER, EaglerAdapter.GL_NEAREST); + }else { + Minecraft.getMinecraft().renderEngine.bindTexture(serverIconGL); + } + IntBuffer buf = GLAllocation.createDirectIntBuffer(4096); + buf.put(serverIcon); + buf.flip(); + EaglerAdapter.glTexImage2D(EaglerAdapter.GL_TEXTURE_2D, 0, EaglerAdapter.GL_RGBA, 64, 64, 0, EaglerAdapter.GL_BGRA, EaglerAdapter.GL_UNSIGNED_INT_8_8_8_8_REV, buf); + serverIconDirty = false; + } + }else { + if(serverIconGL != -1) { + EaglerAdapter.glDeleteTextures(serverIconGL); + serverIconGL = -1; + serverIconDirty = false; + } + } + } + + public void freeIcon() { + if(serverIconGL != -1) { + EaglerAdapter.glDeleteTextures(serverIconGL); + serverIconGL = -1; + } + serverIconDirty = false; + serverIconEnabled = false; + } + } diff --git a/src/main/java/net/minecraft/src/ServerList.java b/src/main/java/net/minecraft/src/ServerList.java index d2e9059..ac86654 100644 --- a/src/main/java/net/minecraft/src/ServerList.java +++ b/src/main/java/net/minecraft/src/ServerList.java @@ -1,120 +1,341 @@ package net.minecraft.src; -import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; -public class ServerList -{ +import org.json.JSONArray; +import org.json.JSONObject; + +import net.lax1dude.eaglercraft.ServerQuery.QueryResponse; +import net.lax1dude.eaglercraft.adapter.EaglerAdapterImpl2.RateLimit; +import net.lax1dude.eaglercraft.Base64; +import net.lax1dude.eaglercraft.ConfigConstants; +import net.lax1dude.eaglercraft.EaglerAdapter; +import net.lax1dude.eaglercraft.LocalStorageManager; +import net.lax1dude.eaglercraft.RelayEntry; +import net.lax1dude.eaglercraft.EaglercraftRandom; +import net.minecraft.src.Minecraft; + +public class ServerList { /** The Minecraft instance. */ private final Minecraft mc; /** List of ServerData instances. */ - private final List servers = new ArrayList(); + private final List servers = new ArrayList(); + private final List allServers = new ArrayList(); - public ServerList(Minecraft par1Minecraft) - { + public static final List forcedServers = new ArrayList(); + private static final EaglercraftRandom random = new EaglercraftRandom(); + + public static boolean hideDownDefaultServers = false; + + public ServerList(Minecraft par1Minecraft) { this.mc = par1Minecraft; this.loadServerList(); } - /** - * Loads a list of servers from servers.dat, by running ServerData.getServerDataFromNBTCompound on each NBT compound - * found in the "servers" tag list. - */ - public void loadServerList() - { - try - { - this.servers.clear(); - NBTTagCompound var1 = CompressedStreamTools.read(new File(this.mc.mcDataDir, "servers.dat")); - - if (var1 == null) - { - return; + public static void loadDefaultServers(String base64) { + try { + NBTTagCompound nbt = CompressedStreamTools.readUncompressed(Base64.decodeBase64(base64)); + hideDownDefaultServers = nbt.getBoolean("hide_down"); + ConfigConstants.ayonullTitle = nbt.hasKey("serverListTitle") ? nbt.getString("serverListTitle") : null; + ConfigConstants.ayonullLink = nbt.hasKey("serverListLink") ? nbt.getString("serverListLink") : null; + if(nbt.hasKey("mainMenu")) { + NBTTagCompound cmp = nbt.getCompoundTag("mainMenu"); + ConfigConstants.mainMenuItemLink = cmp.getStringOrNull("itemLink"); + if(ConfigConstants.mainMenuItemLink != null) { + ConfigConstants.mainMenuItemLine0 = cmp.getStringOrNull("itemLine0"); + ConfigConstants.mainMenuItemLine1 = cmp.getStringOrNull("itemLine1"); + ConfigConstants.mainMenuItemLine2 = cmp.getStringOrNull("itemLine2"); + } + if(cmp.hasKey("splashes")) { + ConfigConstants.splashTexts = new ArrayList(); + NBTTagList t = cmp.getTagList("splashes"); + for(int i = 0, l = t.tagCount(); i < l; ++i) { + ConfigConstants.splashTexts.add(((NBTTagString)t.tagAt(i)).data); + } + } + } + forcedServers.clear(); + NBTTagList list = nbt.getTagList("servers"); + for (int i = 0; i < list.tagCount(); ++i) { + NBTTagCompound tag = (NBTTagCompound) list.tagAt(i); + tag.setBoolean("default", true); + forcedServers.add(ServerData.getServerDataFromNBTCompound(tag)); } - NBTTagList var2 = var1.getTagList("servers"); + // NOTE: Change these asap if one goes down or is replaced, they are used by replits - for (int var3 = 0; var3 < var2.tagCount(); ++var3) - { - this.servers.add(ServerData.getServerDataFromNBTCompound((NBTTagCompound)var2.tagAt(var3))); + int choice = random.nextInt(3); + + ConfigConstants.relays = new ArrayList(); + ConfigConstants.relays.add(new RelayEntry("wss://relay.deev.is/", "lax1dude relay #1", choice == 0)); + ConfigConstants.relays.add(new RelayEntry("wss://relay.lax1dude.net/", "lax1dude relay #2", choice == 1)); + ConfigConstants.relays.add(new RelayEntry("wss://relay.shhnowisnottheti.me/", "ayunami relay #1", choice == 2)); + + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static void loadDefaultServers(JSONObject json) { + hideDownDefaultServers = json.optBoolean("hideDownServers", hideDownDefaultServers); + + ConfigConstants.ayonullTitle = json.optString("serverListTitle", ConfigConstants.ayonullTitle); + ConfigConstants.ayonullLink = json.optString("serverListLink", ConfigConstants.ayonullLink); + + JSONObject mainMenu = json.optJSONObject("mainMenu", null); + if(mainMenu != null) { + + ConfigConstants.mainMenuItemLink = mainMenu.optString("itemLink", ConfigConstants.mainMenuItemLink); + if(ConfigConstants.mainMenuItemLink != null) { + ConfigConstants.mainMenuItemLine0 = mainMenu.optString("itemLine0", ConfigConstants.mainMenuItemLine0); + ConfigConstants.mainMenuItemLine1 = mainMenu.optString("itemLine1", ConfigConstants.mainMenuItemLine1); + ConfigConstants.mainMenuItemLine2 = mainMenu.optString("itemLine2", ConfigConstants.mainMenuItemLine2); + } + + ConfigConstants.eaglercraftTitleLogo = mainMenu.optBoolean("eaglerLogo", ConfigConstants.eaglercraftTitleLogo); + + JSONArray splashes = mainMenu.optJSONArray("splashes"); + if(splashes != null) { + ConfigConstants.splashTexts = new ArrayList(); + for(int i = 0, l = splashes.length(); i < l; ++i) { + ConfigConstants.splashTexts.add(splashes.getString(i)); + } + } + + } + + JSONArray servers = json.optJSONArray("servers"); + if(servers != null) { + forcedServers.clear(); + for(int i = 0, l = servers.length(); i < l; ++i) { + JSONObject serverJSON = servers.getJSONObject(i); + ServerData newServer = new ServerData(serverJSON.getString("serverName"), + serverJSON.getString("serverAddress"), true); + newServer.setHideAddress(serverJSON.optBoolean("hideAddress", false)); + forcedServers.add(newServer); } } - catch (Exception var4) - { - var4.printStackTrace(); + + ConfigConstants.relays = new ArrayList(); + JSONArray relays = json.optJSONArray("relays"); + if(relays != null) { + for(int i = 0, l = relays.length(); i < l; ++i) { + JSONObject relay = relays.getJSONObject(i); + String addr = relay.optString("url", null); + if(addr == null) { + addr = relay.optString("address", null); + if(addr == null) { + addr = relay.getString("addr"); + } + } + String comment = relay.optString("name", null); + if(comment == null) { + comment = relay.optString("comment", "Default Relay"); + } + boolean primary = relay.optBoolean("default", false); + if(!primary) { + primary = relay.optBoolean("primary", false); + } + ConfigConstants.relays.add(new RelayEntry(addr, comment, primary)); + } + } + + } + + /** + * Loads a list of servers from servers.dat, by running + * ServerData.getServerDataFromNBTCompound on each NBT compound found in the + * "servers" tag list. + */ + public void loadServerList() { + freeServerIcons(); + this.servers.clear(); + this.allServers.clear(); + for(ServerData dat : forcedServers) { + dat.pingSentTime = -1l; + dat.hasPing = false; + this.servers.add(dat); + this.allServers.add(dat); + } + NBTTagList servers = LocalStorageManager.gameSettingsStorage.getTagList("servers"); + for (int i = 0; i < servers.tagCount(); ++i) { + ServerData dat = ServerData.getServerDataFromNBTCompound((NBTTagCompound) servers.tagAt(i)); + this.servers.add(dat); + this.allServers.add(dat); } } /** - * Runs getNBTCompound on each ServerData instance, puts everything into a "servers" NBT list and writes it to - * servers.dat. + * Runs getNBTCompound on each ServerData instance, puts everything into a + * "servers" NBT list and writes it to servers.dat. */ - public void saveServerList() - { - try - { - NBTTagList var1 = new NBTTagList(); - Iterator var2 = this.servers.iterator(); - - while (var2.hasNext()) - { - ServerData var3 = (ServerData)var2.next(); - var1.appendTag(var3.getNBTCompound()); - } - - NBTTagCompound var5 = new NBTTagCompound(); - var5.setTag("servers", var1); - CompressedStreamTools.safeWrite(var5, new File(this.mc.mcDataDir, "servers.dat")); - } - catch (Exception var4) - { - var4.printStackTrace(); + public void saveServerList() { + NBTTagList servers = new NBTTagList(); + for(int i = forcedServers.size(); i < this.allServers.size(); ++i) { + servers.appendTag(((ServerData) this.allServers.get(i)).getNBTCompound()); } + LocalStorageManager.gameSettingsStorage.setTag("servers", servers); + LocalStorageManager.saveStorageG(); } /** * Gets the ServerData instance stored for the given index in the list. */ - public ServerData getServerData(int par1) - { - return (ServerData)this.servers.get(par1); + public ServerData getServerData(int par1) { + return (ServerData) this.servers.get(par1); } /** * Removes the ServerData instance stored for the given index in the list. */ - public void removeServerData(int par1) - { - this.servers.remove(par1); + public void removeServerData(int par1) { + ServerData dat = this.servers.remove(par1); + this.allServers.remove(dat); + if(dat != null) { + dat.freeIcon(); + } } /** * Adds the given ServerData instance to the list. */ - public void addServerData(ServerData par1ServerData) - { - this.servers.add(par1ServerData); + public void addServerData(ServerData par1ServerData) { + par1ServerData.pingSentTime = -1l; + par1ServerData.hasPing = false; + this.allServers.add(par1ServerData); + refreshServerPing(); } /** * Counts the number of ServerData instances in the list. */ - public int countServers() - { + public int countServers() { return this.servers.size(); } /** * Takes two list indexes, and swaps their order around. */ - public void swapServers(int par1, int par2) - { - ServerData var3 = this.getServerData(par1); - this.servers.set(par1, this.getServerData(par2)); - this.servers.set(par2, var3); - this.saveServerList(); + public void swapServers(int par1, int par2) { // will be fixed eventually + /* + ServerData var3 = this.getServerData(par1); + ServerData dat = this.getServerData(par2); + this.servers.set(par1, dat); + this.servers.set(par2, var3); + int i = this.allServers.indexOf(dat); + this.allServers.set(par1, this.allServers.get(i)); + this.allServers.set(i, var3); + this.saveServerList(); + */ } + + public void freeServerIcons() { + for(ServerData dat : allServers) { + if(dat.currentQuery != null && dat.currentQuery.isQueryOpen()) { + dat.currentQuery.close(); + } + if(dat.serverIconGL != -1) { + EaglerAdapter.glDeleteTextures(dat.serverIconGL); + dat.serverIconGL = -1; + } + dat.serverIconDirty = false; + dat.serverIconEnabled = false; + } + } + + public void refreshServerPing() { + this.servers.clear(); + this.servers.addAll(this.allServers); + for(ServerData dat : servers) { + if(dat.currentQuery != null && dat.currentQuery.isQueryOpen()) { + dat.currentQuery.close(); + } + dat.hasPing = false; + dat.pingSentTime = -1l; + } + } + + public void updateServerPing() { + int total = 0; + Iterator itr = servers.iterator(); + while(itr.hasNext()) { + ServerData dat = itr.next(); + if(dat.pingSentTime <= 0l) { + dat.pingToServer = -2l; + String addr = dat.serverIP; + if(!addr.startsWith("ws://") && !addr.startsWith("wss://")) { + if(EaglerAdapter.isSSLPage()) { + addr = "wss://" + addr; + }else { + addr = "ws://" + addr; + } + } + dat.pingSentTime = EaglerAdapter.steadyTimeMillis(); + dat.currentQuery = EaglerAdapter.openQuery("MOTD", addr); + if(dat.currentQuery == null) { + dat.hasPing = true; + }else { + ++total; + } + }else if(dat.currentQuery != null) { + if(!dat.hasPing) { + ++total; + } + if(dat.currentQuery.responseAvailable() > 0) { + QueryResponse pkt; + do { + pkt = dat.currentQuery.getResponse(); + }while(dat.currentQuery.responseAvailable() > 0); + if(pkt.rateLimitStatus != null) { + if(pkt.rateLimitStatus == RateLimit.LOCKED) { + dat.setRateLimitError(true, pkt.rateLimitIsTCP); + }else if(pkt.rateLimitStatus == RateLimit.BLOCKED) { + dat.setRateLimitError(false, pkt.rateLimitIsTCP); + } + dat.currentQuery.close(); + dat.pingToServer = -1l; + dat.hasPing = true; + }else { + if(pkt.responseType.equalsIgnoreCase("MOTD") && pkt.isResponseJSON()) { + dat.setMOTDFromQuery(pkt); + if(!dat.hasPing) { + dat.pingToServer = pkt.clientTime - dat.pingSentTime; + dat.hasPing = true; + } + } + } + } + if(dat.currentQuery.responseBinaryAvailable() > 0) { + byte[] r; + do { + r = dat.currentQuery.getBinaryResponse(); + }while(dat.currentQuery.responseBinaryAvailable() > 0); + if(r.length == 4096 * 4) { + if(dat.serverIcon == null) { + dat.serverIcon = new int[4096]; + } + for(int i = 0; i < 4096; ++i) { + dat.serverIcon[i] = (((int)r[i * 4 + 3]&0xFF) << 24) | (((int)r[i * 4]&0xFF) << 16) | (((int)r[i * 4 + 1]&0xFF) << 8) | ((int)r[i * 4 + 2]&0xFF); + } + dat.serverIconDirty = true; + } + } + if(!dat.currentQuery.isQueryOpen() && dat.pingSentTime > 0l && !dat.hasPing) { + dat.pingToServer = -1l; + dat.hasPing = true; + } + if(ServerList.hideDownDefaultServers && dat.isDefault && dat.pingToServer == -1l && dat.hasPing == true) { + itr.remove(); + } + } + if(total >= 4) { + break; + } + } + } + } diff --git a/src/main/java/net/minecraft/src/SimpleReloadableResourceManagerINNER1.java b/src/main/java/net/minecraft/src/SimpleReloadableResourceManagerINNER1.java deleted file mode 100644 index 7691bd8..0000000 --- a/src/main/java/net/minecraft/src/SimpleReloadableResourceManagerINNER1.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.minecraft.src; - -import com.google.common.base.Function; - -class SimpleReloadableResourceManagerINNER1 implements Function -{ - final SimpleReloadableResourceManager theSimpleReloadableResourceManager; - - SimpleReloadableResourceManagerINNER1(SimpleReloadableResourceManager par1SimpleReloadableResourceManager) - { - this.theSimpleReloadableResourceManager = par1SimpleReloadableResourceManager; - } - - public String apply(ResourcePack par1ResourcePack) - { - return par1ResourcePack.getPackName(); - } - - public Object apply(Object par1Obj) - { - return this.apply((ResourcePack)par1Obj); - } -} diff --git a/src/main/java/net/minecraft/src/SimpleTexture.java b/src/main/java/net/minecraft/src/SimpleTexture.java index 4b0fd79..6546f8c 100644 --- a/src/main/java/net/minecraft/src/SimpleTexture.java +++ b/src/main/java/net/minecraft/src/SimpleTexture.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; + import java.awt.image.BufferedImage; import java.io.IOException; import java.io.InputStream; diff --git a/src/main/java/net/minecraft/src/ThreadDownloadImageData.java b/src/main/java/net/minecraft/src/ThreadDownloadImageData.java index 09715df..9289885 100644 --- a/src/main/java/net/minecraft/src/ThreadDownloadImageData.java +++ b/src/main/java/net/minecraft/src/ThreadDownloadImageData.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; + import java.awt.image.BufferedImage; import java.io.IOException;