20 errors

This commit is contained in:
catfoolyou 2025-01-31 11:13:48 -05:00
parent 09fbf747ae
commit 1e127ac1d4
52 changed files with 618 additions and 623 deletions

Binary file not shown.

View File

@ -9,6 +9,8 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import net.lax1dude.eaglercraft.TextureLocation;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
public abstract class AbstractResourcePack implements ResourcePack public abstract class AbstractResourcePack implements ResourcePack
@ -23,7 +25,7 @@ public abstract class AbstractResourcePack implements ResourcePack
private static String locationToName(TextureLocation par0TextureLocation) 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) protected static String getRelativeName(File par0File, File par1File)

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityBreakingFX extends EntityFX public class EntityBreakingFX extends EntityFX
{ {
public EntityBreakingFX(World par1World, double par2, double par4, double par6, Item par8Item) public EntityBreakingFX(World par1World, double par2, double par4, double par6, Item par8Item)

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityCloudFX extends EntityFX public class EntityCloudFX extends EntityFX
{ {
float field_70569_a; float field_70569_a;

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityCrit2FX extends EntityFX public class EntityCrit2FX extends EntityFX
{ {
/** Entity that had been hit and done the Critical hit on. */ /** Entity that had been hit and done the Critical hit on. */

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityCritFX extends EntityFX public class EntityCritFX extends EntityFX
{ {
float initialParticleScale; float initialParticleScale;

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityDiggingFX extends EntityFX public class EntityDiggingFX extends EntityFX
{ {
private Block blockInstance; private Block blockInstance;

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityFireworkOverlayFX extends EntityFX public class EntityFireworkOverlayFX extends EntityFX
{ {
protected EntityFireworkOverlayFX(World par1World, double par2, double par4, double par6) protected EntityFireworkOverlayFX(World par1World, double par2, double par4, double par6)

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityFireworkSparkFX extends EntityFX public class EntityFireworkSparkFX extends EntityFX
{ {
private int baseTextureIndex = 160; private int baseTextureIndex = 160;

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityFireworkStarterFX extends EntityFX public class EntityFireworkStarterFX extends EntityFX
{ {
private int fireworkAge; private int fireworkAge;

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityFlameFX extends EntityFX public class EntityFlameFX extends EntityFX
{ {
/** the scale of the flame FX */ /** the scale of the flame FX */

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityHeartFX extends EntityFX public class EntityHeartFX extends EntityFX
{ {
float particleScaleOverTime; float particleScaleOverTime;

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityHugeExplodeFX extends EntityFX public class EntityHugeExplodeFX extends EntityFX
{ {
private int timeSinceStart; private int timeSinceStart;

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityLavaFX extends EntityFX public class EntityLavaFX extends EntityFX
{ {
private float lavaParticleScale; private float lavaParticleScale;

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityNoteFX extends EntityFX public class EntityNoteFX extends EntityFX
{ {
float noteParticleScale; float noteParticleScale;

View File

@ -1,5 +1,6 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
public class EntityPickupFX extends EntityFX public class EntityPickupFX extends EntityFX

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityPortalFX extends EntityFX public class EntityPortalFX extends EntityFX
{ {
private float portalParticleScale; private float portalParticleScale;

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntityReddustFX extends EntityFX public class EntityReddustFX extends EntityFX
{ {
float reddustParticleScale; float reddustParticleScale;

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntitySmokeFX extends EntityFX public class EntitySmokeFX extends EntityFX
{ {
float smokeParticleScale; float smokeParticleScale;

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntitySnowShovelFX extends EntityFX public class EntitySnowShovelFX extends EntityFX
{ {
float snowDigParticleScale; float snowDigParticleScale;

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator;
public class EntitySpellParticleFX extends EntityFX public class EntitySpellParticleFX extends EntityFX
{ {
/** Base spell texture index */ /** Base spell texture index */

View File

@ -1,6 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.TextureLocation; import net.lax1dude.eaglercraft.TextureLocation;
import net.lax1dude.eaglercraft.adapter.Tessellator;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
public class Gui public class Gui

View File

@ -1,5 +1,6 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.TextureLocation;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
public class GuiButton extends Gui public class GuiButton extends Gui
@ -78,7 +79,7 @@ public class GuiButton extends Gui
if (this.drawButton) if (this.drawButton)
{ {
FontRenderer var4 = par1Minecraft.fontRenderer; FontRenderer var4 = par1Minecraft.fontRenderer;
par1Minecraft.getTextureManager().bindTexture(buttonTextures); buttonTextures.bindTexture();
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); 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; 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); int var5 = this.getHoverState(this.field_82253_i);

View File

@ -7,6 +7,8 @@ import java.net.InetSocketAddress;
import java.net.Socket; import java.net.Socket;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.input.Keyboard; import org.lwjgl.input.Keyboard;
public class GuiMultiplayer extends GuiScreen public class GuiMultiplayer extends GuiScreen
@ -61,11 +63,43 @@ public class GuiMultiplayer extends GuiScreen
private boolean field_74024_A; private boolean field_74024_A;
private List listofLanServers = Collections.emptyList(); 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) public GuiMultiplayer(GuiScreen par1GuiScreen)
{ {
this.parentScreen = 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. * 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). * 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) {
{ if (par1GuiButton.enabled) {
if (par1GuiButton.enabled) if (par1GuiButton.id == 2) {
{
if (par1GuiButton.id == 2)
{
String var2 = this.internetServerList.getServerData(this.selectedServer).serverName; String var2 = this.internetServerList.getServerData(this.selectedServer).serverName;
if (var2 != null) if (var2 != null) {
{
this.deleteClicked = true; this.deleteClicked = true;
String var3 = I18n.getString("selectServer.deleteQuestion"); StringTranslate var3 = StringTranslate.getInstance();
String var4 = "\'" + var2 + "\' " + I18n.getString("selectServer.deleteWarning"); String var4 = var3.translateKey("selectServer.deleteQuestion");
String var5 = I18n.getString("selectServer.deleteButton"); String var5 = "\'" + var2 + "\' " + var3.translateKey("selectServer.deleteWarning");
String var6 = I18n.getString("gui.cancel"); String var6 = var3.translateKey("selectServer.deleteButton");
GuiYesNo var7 = new GuiYesNo(this, var3, var4, var5, var6, this.selectedServer); String var7 = var3.translateKey("gui.cancel");
this.mc.displayGuiScreen(var7); 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); this.joinServer(this.selectedServer);
} } else if (par1GuiButton.id == 4) {
else if (par1GuiButton.id == 4)
{
this.directClicked = true; this.directClicked = true;
this.mc.displayGuiScreen(new GuiScreenServerList(this, this.theServerData = new ServerData(I18n.getString("selectServer.defaultName"), ""))); //this.mc.displayGuiScreen(new GuiScreenConnectOption(this)); // FIX THIS
} System.out.println("fuck");
else if (par1GuiButton.id == 3) } else if (par1GuiButton.id == 3) {
{
this.addClicked = true; this.addClicked = true;
this.mc.displayGuiScreen(new GuiScreenAddServer(this, this.theServerData = new ServerData(I18n.getString("selectServer.defaultName"), ""))); this.mc.displayGuiScreen(new GuiScreenAddServer(this, this.theServerData = new ServerData(StatCollector.translateToLocal("selectServer.defaultName"), "", false)));
} } else if (par1GuiButton.id == 7) {
else if (par1GuiButton.id == 7)
{
this.editClicked = true; this.editClicked = true;
ServerData var8 = this.internetServerList.getServerData(this.selectedServer); ServerData var9 = this.internetServerList.getServerData(this.selectedServer);
this.theServerData = new ServerData(var8.serverName, var8.serverIP); this.theServerData = new ServerData(var9.serverName, var9.serverIP, false);
this.theServerData.setHideAddress(var8.isHidingAddress()); this.theServerData.setHideAddress(var9.isHidingAddress());
this.mc.displayGuiScreen(new GuiScreenAddServer(this, this.theServerData)); this.mc.displayGuiScreen(new GuiScreenAddServer(this, this.theServerData));
} } else if (par1GuiButton.id == 0) {
else if (par1GuiButton.id == 0)
{
this.mc.displayGuiScreen(this.parentScreen); this.mc.displayGuiScreen(this.parentScreen);
} } else if (par1GuiButton.id == 8) {
else if (par1GuiButton.id == 8) if(testIfCanRefresh()) {
{ lastRefresh = 0;
this.mc.displayGuiScreen(new GuiMultiplayer(this.parentScreen)); --cooldownTimer;
} this.mc.displayGuiScreen(new GuiMultiplayer(this.parentScreen));
else }
{ } else {
this.serverSlotContainer.actionPerformed(par1GuiButton); this.serverSlotContainer.actionPerformed(par1GuiButton);
} }
} }
@ -336,21 +358,16 @@ public class GuiMultiplayer extends GuiScreen
/** /**
* Join server by slot index * Join server by slot index
*/ */
private void joinServer(int par1) private void joinServer(int par1) {
{ if (par1 < internetServerList.countServers()) {
if (par1 < this.internetServerList.countServers())
{
this.connectToServer(this.internetServerList.getServerData(par1)); this.connectToServer(this.internetServerList.getServerData(par1));
} } else {
else par1 -= internetServerList.countServers();
{
par1 -= this.internetServerList.countServers();
if (par1 < this.listofLanServers.size()) /*if (par1 < lanServerList.countServers()) { // FIX THIS (later maybe)
{ LanServer var2 = lanServerList.getServer(par1);
LanServer var2 = (LanServer)this.listofLanServers.get(par1); //connectToLAN("Connecting to '" + var2.getLanServerMotd() + "'...", var2.getLanServerCode(), var2.getLanServerRelay());
this.connectToServer(new ServerData(var2.getServerMotd(), var2.getServerIpPort())); }*/
}
} }
} }

View File

@ -7,6 +7,8 @@ import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable; import java.awt.datatransfer.Transferable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import net.lax1dude.eaglercraft.adapter.Tessellator;
import org.lwjgl.input.Keyboard; import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse; import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11; 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 var2 = this.height - Mouse.getEventY() * this.height / this.mc.displayHeight - 1;
int var3 = Mouse.getEventButton(); int var3 = Mouse.getEventButton();
if (Minecraft.isRunningOnMac && var3 == 0 && (Keyboard.isKeyDown(29) || Keyboard.isKeyDown(157)))
{
var3 = 1;
}
if (Mouse.getEventButtonState()) if (Mouse.getEventButtonState())
{ {
if (this.mc.gameSettings.touchscreen && this.field_92018_d++ > 0) 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_LIGHTING);
GL11.glDisable(GL11.GL_FOG); GL11.glDisable(GL11.GL_FOG);
Tessellator var2 = Tessellator.instance; Tessellator var2 = Tessellator.instance;
this.mc.getTextureManager().bindTexture(optionsBackground); optionsBackground.bindTexture();
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
float var3 = 32.0F; float var3 = 32.0F;
var2.startDrawingQuads(); var2.startDrawingQuads();
@ -301,7 +298,7 @@ public class GuiScreen extends Gui
public static boolean isCtrlKeyDown() 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() public static boolean isShiftKeyDown()

View File

@ -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;
}
}

View File

@ -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());
}
}
}

View File

@ -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);
}
}

View File

@ -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";
}
}
}
}
}

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.EaglerAdapter;
import net.lax1dude.eaglercraft.TextureLocation;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import net.lax1dude.eaglercraft.adapter.Tessellator; import net.lax1dude.eaglercraft.adapter.Tessellator;
@ -8,6 +10,8 @@ class GuiSlotServer extends GuiSlot
/** Instance to the GUI this list is on. */ /** Instance to the GUI this list is on. */
final GuiMultiplayer parentGui; final GuiMultiplayer parentGui;
private static final TextureLocation defaultServerIcon = new TextureLocation("/gui/unknown_pack.png");
public GuiSlotServer(GuiMultiplayer par1GuiMultiplayer) public GuiSlotServer(GuiMultiplayer par1GuiMultiplayer)
{ {
super(par1GuiMultiplayer.mc, par1GuiMultiplayer.width, par1GuiMultiplayer.height, 32, par1GuiMultiplayer.height - 64, 36); 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); 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); ServerData var6 = GuiMultiplayer.getInternetServerList(this.parentGui).getServerData(par1);
synchronized (GuiMultiplayer.getLock()) boolean var7 = var6.field_82821_f > 61;
{ boolean var8 = var6.field_82821_f < 61;
if (GuiMultiplayer.getThreadsPending() < 5 && !var6.field_78841_f) boolean var9 = var7 || var8;
{ this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverName, par2 + 38, par3 + 1, 16777215);
var6.field_78841_f = true; if(var6.hasPing && (var6.pingToServer > 0 || var6.hasError)) {
var6.pingToServer = -2L; int i = var6.serverMOTD.indexOf('\n');
var6.serverMOTD = ""; if(i > 0) {
var6.populationInfo = ""; this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverMOTD.substring(0, i), par2 + 38, par3 + 12, 8421504);
GuiMultiplayer.increaseThreadsPending(); this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverMOTD.substring(i + 1), par2 + 38, par3 + 12 + 11, 8421504);
(new ThreadPollServers(this, var6)).start(); }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; if (var9) {
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)
{
String var10 = EnumChatFormatting.DARK_RED + var6.gameVersion; 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()) EaglerAdapter.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
{
this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverIP, par2 + 2, par3 + 12 + 11, 3158064); var6.refreshIcon();
} if(var6.serverIconEnabled && var6.serverIconGL != -1) {
else this.mc.renderEngine.bindTexture(var6.serverIconGL);
{ }else {
this.parentGui.drawString(this.parentGui.fontRenderer, I18n.getString("selectServer.hiddenAddress"), par2 + 2, par3 + 12 + 11, 3158064); defaultServerIcon.bindTexture();
} }
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); int iconX = par2 + 2;
Gui.icons.bindTexture(); 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; byte var15 = 0;
boolean var11 = false; boolean var11 = false;
String var12 = ""; String var12 = "";
int var16; int var16;
if (var9) if (var9) {
{
var12 = var7 ? "Client out of date!" : "Server out of date!"; var12 = var7 ? "Client out of date!" : "Server out of date!";
var16 = 5; var16 = 5;
} } else if (var6.hasPing && var6.pingToServer != -2L) {
else if (var6.field_78841_f && var6.pingToServer != -2L) if (var6.pingToServer < 0L) {
{
if (var6.pingToServer < 0L)
{
var16 = 5; var16 = 5;
} } else if (var6.pingToServer < 150L) {
else if (var6.pingToServer < 150L)
{
var16 = 0; var16 = 0;
} } else if (var6.pingToServer < 300L) {
else if (var6.pingToServer < 300L)
{
var16 = 1; var16 = 1;
} } else if (var6.pingToServer < 600L) {
else if (var6.pingToServer < 600L)
{
var16 = 2; var16 = 2;
} } else if (var6.pingToServer < 1000L) {
else if (var6.pingToServer < 1000L)
{
var16 = 3; var16 = 3;
} } else {
else
{
var16 = 4; var16 = 4;
} }
if (var6.pingToServer < 0L) if (var6.pingToServer < 0L) {
{
var12 = "(no connection)"; var12 = "(no connection)";
} } else {
else
{
var12 = var6.pingToServer + "ms"; var12 = var6.pingToServer + "ms";
} }
} } else {
else
{
var15 = 1; 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; var16 = 8 - var16;
} }
var12 = "Polling.."; 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; 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); 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);
}
} }
} }
} }

View File

@ -3,6 +3,8 @@ package net.minecraft.src;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import net.lax1dude.eaglercraft.adapter.Tessellator;
import org.lwjgl.input.Mouse; import org.lwjgl.input.Mouse;
abstract class GuiSlotStats extends GuiSlot abstract class GuiSlotStats extends GuiSlot

View File

@ -19,8 +19,8 @@ public class IntegratedServer extends MinecraftServer
public IntegratedServer(Minecraft par1Minecraft, String par2Str, String par3Str, WorldSettings par4WorldSettings) public IntegratedServer(Minecraft par1Minecraft, String par2Str, String par3Str, WorldSettings par4WorldSettings)
{ {
super(new File(par1Minecraft.mcDataDir, "saves")); super(new File("", "saves"));
this.serverLogAgent = new LogAgent("Minecraft-Server", " [SERVER]", (new File(par1Minecraft.mcDataDir, "output-server.log")).getAbsolutePath()); this.serverLogAgent = new LogAgent("Minecraft-Server", " [SERVER]", (new File("", "output-server.log")).getAbsolutePath());
this.setServerOwner(par1Minecraft.getSession().getUsername()); this.setServerOwner(par1Minecraft.getSession().getUsername());
this.setFolderName(par2Str); this.setFolderName(par2Str);
this.setWorldName(par3Str); this.setWorldName(par3Str);
@ -147,7 +147,7 @@ public class IntegratedServer extends MinecraftServer
protected File getDataDirectory() protected File getDataDirectory()
{ {
return this.mc.mcDataDir; return null;
} }
public boolean isDedicatedServer() public boolean isDedicatedServer()

View File

@ -455,4 +455,8 @@ public class NBTTagCompound extends NBTBase
{ {
return par0NBTTagCompound.tagMap; return par0NBTTagCompound.tagMap;
} }
public String getStringOrNull(String string) {
return !this.tagMap.containsKey(string) ? null : ((NBTTagString) this.tagMap.get(string)).data;
}
} }

View File

@ -1,5 +1,6 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.TextureLocation;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
public class RenderEntity extends Render public class RenderEntity extends Render

View File

@ -1,5 +1,6 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.TextureLocation;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
public class RenderTNTPrimed extends Render public class RenderTNTPrimed extends Render

View File

@ -1,7 +1,18 @@
package net.minecraft.src; 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 serverName;
public String serverIP; public String serverIP;
private final int id; private final int id;
@ -9,38 +20,39 @@ public class ServerData
private static int idCounter = 0; 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. * the string indicating number of players on and capacity of the server that is
* "5/20" meaning 5 slots used out of 20 slots total) * shown on the server browser (i.e. "5/20" meaning 5 slots used out of 20 slots
* total)
*/ */
public String populationInfo; public String populationInfo;
/** /**
* (better variable name would be 'hostname') server name as displayed in the server browser's second line (grey * (better variable name would be 'hostname') server name as displayed in the
* text) * server browser's second line (grey text)
*/ */
public String serverMOTD; public String serverMOTD;
/** last server ping that showed up in the server browser */ /** last server ping that showed up in the server browser */
public long pingToServer; public long pingToServer;
public int field_82821_f = 78; public long pingSentTime;
public int field_82821_f = 61;
/** Game version for this server. */ /** Game version for this server. */
public String gameVersion = "1.6.4"; public String gameVersion = "1.5.2";
public boolean field_78841_f; public boolean hasPing = false;
private boolean field_78842_g = true; 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<String> playerList = new ArrayList();
public int serverIconGL = -1;
public final boolean isDefault; public final boolean isDefault;
/** Whether to hide the IP address for this server. */ /** Whether to hide the IP address for this server. */
private boolean hideAddress; private boolean hideAddress = false;
public ServerData(String par1Str, String par2Str)
{
this.serverName = par1Str;
this.serverIP = par2Str;
this.isDefault = false;
this.id = ++idCounter;
}
public ServerData(String par1Str, String par2Str, boolean isDefault) { public ServerData(String par1Str, String par2Str, boolean isDefault) {
this.serverName = par1Str; this.serverName = par1Str;
@ -49,21 +61,24 @@ public class ServerData
this.id = ++idCounter; 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(); NBTTagCompound var1 = new NBTTagCompound();
var1.setString("name", this.serverName); var1.setString("name", this.serverName);
var1.setString("ip", this.serverIP); var1.setString("ip", this.serverIP);
var1.setBoolean("hideAddress", this.hideAddress); var1.setBoolean("hideAddress", this.hideAddress);
if (!this.field_78842_g)
{
var1.setBoolean("acceptTextures", this.acceptsTextures);
}
return var1; return var1;
} }
@ -75,35 +90,100 @@ public class ServerData
return this.field_78842_g; return this.field_78842_g;
} }
public void setAcceptsTextures(boolean par1) public void setAcceptsTextures(boolean par1) {
{
this.acceptsTextures = par1; this.acceptsTextures = par1;
this.field_78842_g = false; this.field_78842_g = false;
} }
public boolean isHidingAddress() public boolean isHidingAddress() {
{
return this.hideAddress; return this.hideAddress;
} }
public void setHideAddress(boolean par1) public void setHideAddress(boolean par1) {
{
this.hideAddress = 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) public static ServerData getServerDataFromNBTCompound(NBTTagCompound par0NBTTagCompound) {
{ ServerData var1 = new ServerData(par0NBTTagCompound.getString("name"), par0NBTTagCompound.getString("ip"), par0NBTTagCompound.getBoolean("default"));
ServerData var1 = new ServerData(par0NBTTagCompound.getString("name"), par0NBTTagCompound.getString("ip"));
var1.hideAddress = par0NBTTagCompound.getBoolean("hideAddress"); var1.hideAddress = par0NBTTagCompound.getBoolean("hideAddress");
if (par0NBTTagCompound.hasKey("acceptTextures"))
{
var1.setAcceptsTextures(par0NBTTagCompound.getBoolean("acceptTextures"));
}
return var1; 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;
}
} }

View File

@ -1,120 +1,341 @@
package net.minecraft.src; package net.minecraft.src;
import java.io.File; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; 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. */ /** The Minecraft instance. */
private final Minecraft mc; private final Minecraft mc;
/** List of ServerData instances. */ /** List of ServerData instances. */
private final List servers = new ArrayList(); private final List<ServerData> servers = new ArrayList();
private final List<ServerData> allServers = new ArrayList();
public ServerList(Minecraft par1Minecraft) public static final List<ServerData> forcedServers = new ArrayList();
{ private static final EaglercraftRandom random = new EaglercraftRandom();
public static boolean hideDownDefaultServers = false;
public ServerList(Minecraft par1Minecraft) {
this.mc = par1Minecraft; this.mc = par1Minecraft;
this.loadServerList(); this.loadServerList();
} }
/** public static void loadDefaultServers(String base64) {
* Loads a list of servers from servers.dat, by running ServerData.getServerDataFromNBTCompound on each NBT compound try {
* found in the "servers" tag list. NBTTagCompound nbt = CompressedStreamTools.readUncompressed(Base64.decodeBase64(base64));
*/ hideDownDefaultServers = nbt.getBoolean("hide_down");
public void loadServerList() ConfigConstants.ayonullTitle = nbt.hasKey("serverListTitle") ? nbt.getString("serverListTitle") : null;
{ ConfigConstants.ayonullLink = nbt.hasKey("serverListLink") ? nbt.getString("serverListLink") : null;
try if(nbt.hasKey("mainMenu")) {
{ NBTTagCompound cmp = nbt.getCompoundTag("mainMenu");
this.servers.clear(); ConfigConstants.mainMenuItemLink = cmp.getStringOrNull("itemLink");
NBTTagCompound var1 = CompressedStreamTools.read(new File(this.mc.mcDataDir, "servers.dat")); if(ConfigConstants.mainMenuItemLink != null) {
ConfigConstants.mainMenuItemLine0 = cmp.getStringOrNull("itemLine0");
if (var1 == null) ConfigConstants.mainMenuItemLine1 = cmp.getStringOrNull("itemLine1");
{ ConfigConstants.mainMenuItemLine2 = cmp.getStringOrNull("itemLine2");
return; }
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) int choice = random.nextInt(3);
{
this.servers.add(ServerData.getServerDataFromNBTCompound((NBTTagCompound)var2.tagAt(var3))); 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)
{ ConfigConstants.relays = new ArrayList();
var4.printStackTrace(); 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 * Runs getNBTCompound on each ServerData instance, puts everything into a
* servers.dat. * "servers" NBT list and writes it to servers.dat.
*/ */
public void saveServerList() public void saveServerList() {
{ NBTTagList servers = new NBTTagList();
try for(int i = forcedServers.size(); i < this.allServers.size(); ++i) {
{ servers.appendTag(((ServerData) this.allServers.get(i)).getNBTCompound());
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();
} }
LocalStorageManager.gameSettingsStorage.setTag("servers", servers);
LocalStorageManager.saveStorageG();
} }
/** /**
* Gets the ServerData instance stored for the given index in the list. * Gets the ServerData instance stored for the given index in the list.
*/ */
public ServerData getServerData(int par1) public ServerData getServerData(int par1) {
{ return (ServerData) this.servers.get(par1);
return (ServerData)this.servers.get(par1);
} }
/** /**
* Removes the ServerData instance stored for the given index in the list. * Removes the ServerData instance stored for the given index in the list.
*/ */
public void removeServerData(int par1) public void removeServerData(int par1) {
{ ServerData dat = this.servers.remove(par1);
this.servers.remove(par1); this.allServers.remove(dat);
if(dat != null) {
dat.freeIcon();
}
} }
/** /**
* Adds the given ServerData instance to the list. * Adds the given ServerData instance to the list.
*/ */
public void addServerData(ServerData par1ServerData) public void addServerData(ServerData par1ServerData) {
{ par1ServerData.pingSentTime = -1l;
this.servers.add(par1ServerData); par1ServerData.hasPing = false;
this.allServers.add(par1ServerData);
refreshServerPing();
} }
/** /**
* Counts the number of ServerData instances in the list. * Counts the number of ServerData instances in the list.
*/ */
public int countServers() public int countServers() {
{
return this.servers.size(); return this.servers.size();
} }
/** /**
* Takes two list indexes, and swaps their order around. * Takes two list indexes, and swaps their order around.
*/ */
public void swapServers(int par1, int par2) public void swapServers(int par1, int par2) { // will be fixed eventually
{ /*
ServerData var3 = this.getServerData(par1); ServerData var3 = this.getServerData(par1);
this.servers.set(par1, this.getServerData(par2)); ServerData dat = this.getServerData(par2);
this.servers.set(par2, var3); this.servers.set(par1, dat);
this.saveServerList(); 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<ServerData> 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;
}
}
}
} }

View File

@ -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);
}
}

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.TextureLocation;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;

View File

@ -1,5 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.TextureLocation;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.IOException; import java.io.IOException;