20 errors
This commit is contained in:
parent
09fbf747ae
commit
1e127ac1d4
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
|
||||
public class EntityCloudFX extends EntityFX
|
||||
{
|
||||
float field_70569_a;
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
|
||||
public class EntityCritFX extends EntityFX
|
||||
{
|
||||
float initialParticleScale;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
|
||||
public class EntityDiggingFX extends EntityFX
|
||||
{
|
||||
private Block blockInstance;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
|
||||
public class EntityFireworkSparkFX extends EntityFX
|
||||
{
|
||||
private int baseTextureIndex = 160;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
|
||||
public class EntityFireworkStarterFX extends EntityFX
|
||||
{
|
||||
private int fireworkAge;
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
|
||||
public class EntityHeartFX extends EntityFX
|
||||
{
|
||||
float particleScaleOverTime;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
|
||||
public class EntityHugeExplodeFX extends EntityFX
|
||||
{
|
||||
private int timeSinceStart;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
|
||||
public class EntityLavaFX extends EntityFX
|
||||
{
|
||||
private float lavaParticleScale;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
|
||||
public class EntityNoteFX extends EntityFX
|
||||
{
|
||||
float noteParticleScale;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
public class EntityPickupFX extends EntityFX
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
|
||||
public class EntityPortalFX extends EntityFX
|
||||
{
|
||||
private float portalParticleScale;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
|
||||
public class EntityReddustFX extends EntityFX
|
||||
{
|
||||
float reddustParticleScale;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
|
||||
public class EntitySmokeFX extends EntityFX
|
||||
{
|
||||
float smokeParticleScale;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
|
||||
public class EntitySnowShovelFX extends EntityFX
|
||||
{
|
||||
float snowDigParticleScale;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.adapter.Tessellator;
|
||||
|
||||
public class EntitySpellParticleFX extends EntityFX
|
||||
{
|
||||
/** Base spell texture index */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
} else if (par1GuiButton.id == 8) {
|
||||
if(testIfCanRefresh()) {
|
||||
lastRefresh = 0;
|
||||
--cooldownTimer;
|
||||
this.mc.displayGuiScreen(new GuiMultiplayer(this.parentScreen));
|
||||
}
|
||||
else
|
||||
{
|
||||
} 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());
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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 > 78;
|
||||
boolean var8 = var6.field_82821_f < 78;
|
||||
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 + 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);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.TextureLocation;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
public class RenderEntity extends Render
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.TextureLocation;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
public class RenderTNTPrimed extends Render
|
||||
|
|
|
@ -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<String> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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<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.loadServerList();
|
||||
}
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
// NOTE: Change these asap if one goes down or is replaced, they are used by replits
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
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.
|
||||
* 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
|
||||
{
|
||||
public void loadServerList() {
|
||||
freeServerIcons();
|
||||
this.servers.clear();
|
||||
NBTTagCompound var1 = CompressedStreamTools.read(new File(this.mc.mcDataDir, "servers.dat"));
|
||||
|
||||
if (var1 == null)
|
||||
{
|
||||
return;
|
||||
this.allServers.clear();
|
||||
for(ServerData dat : forcedServers) {
|
||||
dat.pingSentTime = -1l;
|
||||
dat.hasPing = false;
|
||||
this.servers.add(dat);
|
||||
this.allServers.add(dat);
|
||||
}
|
||||
|
||||
NBTTagList var2 = var1.getTagList("servers");
|
||||
|
||||
for (int var3 = 0; var3 < var2.tagCount(); ++var3)
|
||||
{
|
||||
this.servers.add(ServerData.getServerDataFromNBTCompound((NBTTagCompound)var2.tagAt(var3)));
|
||||
}
|
||||
}
|
||||
catch (Exception var4)
|
||||
{
|
||||
var4.printStackTrace();
|
||||
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)
|
||||
{
|
||||
public void swapServers(int par1, int par2) { // will be fixed eventually
|
||||
/*
|
||||
ServerData var3 = this.getServerData(par1);
|
||||
this.servers.set(par1, this.getServerData(par2));
|
||||
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<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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.lax1dude.eaglercraft.TextureLocation;
|
||||
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.IOException;
|
||||
|
||||
|
|
Loading…
Reference in New Issue