mirror of
https://github.com/catfoolyou/Project164.git
synced 2025-05-17 09:24:49 -05:00
20 errors
This commit is contained in:
parent
09fbf747ae
commit
1e127ac1d4
.gradle
8.0
executionHistory
fileHashes
buildOutputCleanup
build/classes/java/main/net
src/main/java/net/minecraft/src
AbstractResourcePack.javaEntityBreakingFX.javaEntityCloudFX.javaEntityCrit2FX.javaEntityCritFX.javaEntityDiggingFX.javaEntityFireworkOverlayFX.javaEntityFireworkSparkFX.javaEntityFireworkStarterFX.javaEntityFlameFX.javaEntityHeartFX.javaEntityHugeExplodeFX.javaEntityLavaFX.javaEntityNoteFX.javaEntityPickupFX.javaEntityPortalFX.javaEntityReddustFX.javaEntitySmokeFX.javaEntitySnowShovelFX.javaEntitySpellParticleFX.javaGui.javaGuiButton.javaGuiMultiplayer.javaGuiScreen.javaGuiScreenBackup.javaGuiScreenBackupDownloadThread.javaGuiScreenBackupRestoreTask.javaGuiScreenBackupSelectionList.javaGuiSlotServer.javaGuiSlotStats.javaIntegratedServer.javaNBTTagCompound.javaRenderEntity.javaRenderTNTPrimed.javaServerData.javaServerList.javaSimpleReloadableResourceManagerINNER1.javaSimpleTexture.javaThreadDownloadImageData.java
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
build/classes/java/main/net/lax1dude/eaglercraft/GuiScreenSingleplayerException.class
Normal file
BIN
build/classes/java/main/net/lax1dude/eaglercraft/GuiScreenSingleplayerException.class
Normal file
Binary file not shown.
Binary file not shown.
BIN
build/classes/java/main/net/lax1dude/eaglercraft/sp/ipc/IPCPacket15ThrowException.class
Normal file
BIN
build/classes/java/main/net/lax1dude/eaglercraft/sp/ipc/IPCPacket15ThrowException.class
Normal file
Binary file not shown.
Binary file not shown.
BIN
build/classes/java/main/net/minecraft/src/Gui.class
Normal file
BIN
build/classes/java/main/net/minecraft/src/Gui.class
Normal file
Binary file not shown.
BIN
build/classes/java/main/net/minecraft/src/GuiButton.class
Normal file
BIN
build/classes/java/main/net/minecraft/src/GuiButton.class
Normal file
Binary file not shown.
BIN
build/classes/java/main/net/minecraft/src/GuiScreen.class
Normal file
BIN
build/classes/java/main/net/minecraft/src/GuiScreen.class
Normal file
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)
|
||||
{
|
||||
this.mc.displayGuiScreen(new GuiMultiplayer(this.parentScreen));
|
||||
}
|
||||
else
|
||||
{
|
||||
} else if (par1GuiButton.id == 8) {
|
||||
if(testIfCanRefresh()) {
|
||||
lastRefresh = 0;
|
||||
--cooldownTimer;
|
||||
this.mc.displayGuiScreen(new GuiMultiplayer(this.parentScreen));
|
||||
}
|
||||
} else {
|
||||
this.serverSlotContainer.actionPerformed(par1GuiButton);
|
||||
}
|
||||
}
|
||||
@ -336,21 +358,16 @@ public class GuiMultiplayer extends GuiScreen
|
||||
/**
|
||||
* Join server by slot index
|
||||
*/
|
||||
private void joinServer(int par1)
|
||||
{
|
||||
if (par1 < this.internetServerList.countServers())
|
||||
{
|
||||
private void joinServer(int par1) {
|
||||
if (par1 < internetServerList.countServers()) {
|
||||
this.connectToServer(this.internetServerList.getServerData(par1));
|
||||
}
|
||||
else
|
||||
{
|
||||
par1 -= this.internetServerList.countServers();
|
||||
} else {
|
||||
par1 -= internetServerList.countServers();
|
||||
|
||||
if (par1 < this.listofLanServers.size())
|
||||
{
|
||||
LanServer var2 = (LanServer)this.listofLanServers.get(par1);
|
||||
this.connectToServer(new ServerData(var2.getServerMotd(), var2.getServerIpPort()));
|
||||
}
|
||||
/*if (par1 < lanServerList.countServers()) { // FIX THIS (later maybe)
|
||||
LanServer var2 = lanServerList.getServer(par1);
|
||||
//connectToLAN("Connecting to '" + var2.getLanServerMotd() + "'...", var2.getLanServerCode(), var2.getLanServerRelay());
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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 > 61;
|
||||
boolean var8 = var6.field_82821_f < 61;
|
||||
boolean var9 = var7 || var8;
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverName, par2 + 38, par3 + 1, 16777215);
|
||||
if(var6.hasPing && (var6.pingToServer > 0 || var6.hasError)) {
|
||||
int i = var6.serverMOTD.indexOf('\n');
|
||||
if(i > 0) {
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverMOTD.substring(0, i), par2 + 38, par3 + 12, 8421504);
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverMOTD.substring(i + 1), par2 + 38, par3 + 12 + 11, 8421504);
|
||||
}else {
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverMOTD, par2 + 38, par3 + 12, 8421504);
|
||||
if (!this.parentGui.mc.gameSettings.hideServerAddress && !var6.isHidingAddress()) {
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverIP, par2 + 38, par3 + 12 + 11, 3158064);
|
||||
} else {
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, StatCollector.translateToLocal("selectServer.hiddenAddress"), par2 + 38, par3 + 12 + 11, 3158064);
|
||||
}
|
||||
}
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, var6.populationInfo, par2 + 251 - this.parentGui.fontRenderer.getStringWidth(var6.populationInfo), par3 + 12, 8421504);
|
||||
}else {
|
||||
if (!this.parentGui.mc.gameSettings.hideServerAddress && !var6.isHidingAddress()) {
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverIP, par2 + 38, par3 + 12 + 11, 3158064);
|
||||
} else {
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, StatCollector.translateToLocal("selectServer.hiddenAddress"), par2 + 38, par3 + 12 + 11, 3158064);
|
||||
}
|
||||
}
|
||||
|
||||
boolean var7 = var6.field_82821_f > 78;
|
||||
boolean var8 = var6.field_82821_f < 78;
|
||||
boolean var9 = var7 || var8;
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverName, par2 + 2, par3 + 1, 16777215);
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverMOTD, par2 + 2, par3 + 12, 8421504);
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, var6.populationInfo, par2 + 215 - this.parentGui.fontRenderer.getStringWidth(var6.populationInfo), par3 + 12, 8421504);
|
||||
|
||||
if (var9)
|
||||
{
|
||||
if (var9) {
|
||||
String var10 = EnumChatFormatting.DARK_RED + var6.gameVersion;
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, var10, par2 + 200 - this.parentGui.fontRenderer.getStringWidth(var10), par3 + 1, 8421504);
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, var10, par2 + 240 - this.parentGui.fontRenderer.getStringWidth(var10), par3 + 1, 8421504);
|
||||
}
|
||||
|
||||
if (!this.parentGui.mc.gameSettings.hideServerAddress && !var6.isHidingAddress())
|
||||
{
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, var6.serverIP, par2 + 2, par3 + 12 + 11, 3158064);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.parentGui.drawString(this.parentGui.fontRenderer, I18n.getString("selectServer.hiddenAddress"), par2 + 2, par3 + 12 + 11, 3158064);
|
||||
EaglerAdapter.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
|
||||
var6.refreshIcon();
|
||||
if(var6.serverIconEnabled && var6.serverIconGL != -1) {
|
||||
this.mc.renderEngine.bindTexture(var6.serverIconGL);
|
||||
}else {
|
||||
defaultServerIcon.bindTexture();
|
||||
}
|
||||
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
Gui.icons.bindTexture();
|
||||
int iconX = par2 + 2;
|
||||
int iconY = par3 + 2;
|
||||
int iconSize = 28;
|
||||
|
||||
Tessellator var14 = Tessellator.instance;
|
||||
var14.startDrawingQuads();
|
||||
var14.addVertexWithUV((double) (iconX + 0), (double) (iconY + iconSize), 0.0d, 0.0d, 1.0d);
|
||||
var14.addVertexWithUV((double) (iconX + iconSize), (double) (iconY + iconSize), 0.0d, 1.0d, 1.0d);
|
||||
var14.addVertexWithUV((double) (iconX + iconSize), (double) (iconY + 0), 0.0d, 1.0d, 0.0d);
|
||||
var14.addVertexWithUV((double) (iconX + 0), (double) (iconY + 0), 0.0d, 0.0d, 0.0d);
|
||||
var14.draw();
|
||||
|
||||
icons.bindTexture();
|
||||
byte var15 = 0;
|
||||
boolean var11 = false;
|
||||
String var12 = "";
|
||||
int var16;
|
||||
|
||||
if (var9)
|
||||
{
|
||||
if (var9) {
|
||||
var12 = var7 ? "Client out of date!" : "Server out of date!";
|
||||
var16 = 5;
|
||||
}
|
||||
else if (var6.field_78841_f && var6.pingToServer != -2L)
|
||||
{
|
||||
if (var6.pingToServer < 0L)
|
||||
{
|
||||
} else if (var6.hasPing && var6.pingToServer != -2L) {
|
||||
if (var6.pingToServer < 0L) {
|
||||
var16 = 5;
|
||||
}
|
||||
else if (var6.pingToServer < 150L)
|
||||
{
|
||||
} else if (var6.pingToServer < 150L) {
|
||||
var16 = 0;
|
||||
}
|
||||
else if (var6.pingToServer < 300L)
|
||||
{
|
||||
} else if (var6.pingToServer < 300L) {
|
||||
var16 = 1;
|
||||
}
|
||||
else if (var6.pingToServer < 600L)
|
||||
{
|
||||
} else if (var6.pingToServer < 600L) {
|
||||
var16 = 2;
|
||||
}
|
||||
else if (var6.pingToServer < 1000L)
|
||||
{
|
||||
} else if (var6.pingToServer < 1000L) {
|
||||
var16 = 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
var16 = 4;
|
||||
}
|
||||
|
||||
if (var6.pingToServer < 0L)
|
||||
{
|
||||
if (var6.pingToServer < 0L) {
|
||||
var12 = "(no connection)";
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
var12 = var6.pingToServer + "ms";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
var15 = 1;
|
||||
var16 = (int)(Minecraft.getSystemTime() / 100L + (long)(par1 * 2) & 7L);
|
||||
var16 = (int) (Minecraft.getSystemTime() / 100L + (long) (par1 * 2) & 7L);
|
||||
|
||||
if (var16 > 4)
|
||||
{
|
||||
if (var16 > 4) {
|
||||
var16 = 8 - var16;
|
||||
}
|
||||
|
||||
var12 = "Polling..";
|
||||
}
|
||||
|
||||
this.parentGui.drawTexturedModalRect(par2 + 205, par3, 0 + var15 * 10, 176 + var16 * 8, 10, 8);
|
||||
this.parentGui.drawTexturedModalRect(par2 + 241, par3, 0 + var15 * 10, 176 + var16 * 8, 10, 8);
|
||||
byte var13 = 4;
|
||||
|
||||
if (this.mouseX >= par2 + 205 - var13 && this.mouseY >= par3 - var13 && this.mouseX <= par2 + 205 + 10 + var13 && this.mouseY <= par3 + 8 + var13)
|
||||
{
|
||||
if (this.mouseX >= par2 + 245 - var13 && this.mouseY >= par3 - var13 && this.mouseX <= par2 + 245 + 10 + var13 && this.mouseY <= par3 + 4 + var13) {
|
||||
GuiMultiplayer.getAndSetLagTooltip(this.parentGui, var12);
|
||||
}else if (this.mouseX >= par2 + 230 - var13 && this.mouseY >= par3 - var13 + 4 && this.mouseX <= par2 + 245 + 10 + var13 && this.mouseY <= par3 + 8 + var13 + 8) {
|
||||
if(var6.playerList.size() > 0) {
|
||||
var12 = "";
|
||||
for(String s : var6.playerList) {
|
||||
var12 += (s + "\n");
|
||||
}
|
||||
GuiMultiplayer.getAndSetLagTooltip(this.parentGui, var12);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads a list of servers from servers.dat, by running ServerData.getServerDataFromNBTCompound on each NBT compound
|
||||
* found in the "servers" tag list.
|
||||
*/
|
||||
public void loadServerList()
|
||||
{
|
||||
try
|
||||
{
|
||||
this.servers.clear();
|
||||
NBTTagCompound var1 = CompressedStreamTools.read(new File(this.mc.mcDataDir, "servers.dat"));
|
||||
|
||||
if (var1 == null)
|
||||
{
|
||||
return;
|
||||
public static void loadDefaultServers(String base64) {
|
||||
try {
|
||||
NBTTagCompound nbt = CompressedStreamTools.readUncompressed(Base64.decodeBase64(base64));
|
||||
hideDownDefaultServers = nbt.getBoolean("hide_down");
|
||||
ConfigConstants.ayonullTitle = nbt.hasKey("serverListTitle") ? nbt.getString("serverListTitle") : null;
|
||||
ConfigConstants.ayonullLink = nbt.hasKey("serverListLink") ? nbt.getString("serverListLink") : null;
|
||||
if(nbt.hasKey("mainMenu")) {
|
||||
NBTTagCompound cmp = nbt.getCompoundTag("mainMenu");
|
||||
ConfigConstants.mainMenuItemLink = cmp.getStringOrNull("itemLink");
|
||||
if(ConfigConstants.mainMenuItemLink != null) {
|
||||
ConfigConstants.mainMenuItemLine0 = cmp.getStringOrNull("itemLine0");
|
||||
ConfigConstants.mainMenuItemLine1 = cmp.getStringOrNull("itemLine1");
|
||||
ConfigConstants.mainMenuItemLine2 = cmp.getStringOrNull("itemLine2");
|
||||
}
|
||||
if(cmp.hasKey("splashes")) {
|
||||
ConfigConstants.splashTexts = new ArrayList();
|
||||
NBTTagList t = cmp.getTagList("splashes");
|
||||
for(int i = 0, l = t.tagCount(); i < l; ++i) {
|
||||
ConfigConstants.splashTexts.add(((NBTTagString)t.tagAt(i)).data);
|
||||
}
|
||||
}
|
||||
}
|
||||
forcedServers.clear();
|
||||
NBTTagList list = nbt.getTagList("servers");
|
||||
for (int i = 0; i < list.tagCount(); ++i) {
|
||||
NBTTagCompound tag = (NBTTagCompound) list.tagAt(i);
|
||||
tag.setBoolean("default", true);
|
||||
forcedServers.add(ServerData.getServerDataFromNBTCompound(tag));
|
||||
}
|
||||
|
||||
NBTTagList var2 = var1.getTagList("servers");
|
||||
// NOTE: Change these asap if one goes down or is replaced, they are used by replits
|
||||
|
||||
for (int var3 = 0; var3 < var2.tagCount(); ++var3)
|
||||
{
|
||||
this.servers.add(ServerData.getServerDataFromNBTCompound((NBTTagCompound)var2.tagAt(var3)));
|
||||
int choice = random.nextInt(3);
|
||||
|
||||
ConfigConstants.relays = new ArrayList();
|
||||
ConfigConstants.relays.add(new RelayEntry("wss://relay.deev.is/", "lax1dude relay #1", choice == 0));
|
||||
ConfigConstants.relays.add(new RelayEntry("wss://relay.lax1dude.net/", "lax1dude relay #2", choice == 1));
|
||||
ConfigConstants.relays.add(new RelayEntry("wss://relay.shhnowisnottheti.me/", "ayunami relay #1", choice == 2));
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void loadDefaultServers(JSONObject json) {
|
||||
hideDownDefaultServers = json.optBoolean("hideDownServers", hideDownDefaultServers);
|
||||
|
||||
ConfigConstants.ayonullTitle = json.optString("serverListTitle", ConfigConstants.ayonullTitle);
|
||||
ConfigConstants.ayonullLink = json.optString("serverListLink", ConfigConstants.ayonullLink);
|
||||
|
||||
JSONObject mainMenu = json.optJSONObject("mainMenu", null);
|
||||
if(mainMenu != null) {
|
||||
|
||||
ConfigConstants.mainMenuItemLink = mainMenu.optString("itemLink", ConfigConstants.mainMenuItemLink);
|
||||
if(ConfigConstants.mainMenuItemLink != null) {
|
||||
ConfigConstants.mainMenuItemLine0 = mainMenu.optString("itemLine0", ConfigConstants.mainMenuItemLine0);
|
||||
ConfigConstants.mainMenuItemLine1 = mainMenu.optString("itemLine1", ConfigConstants.mainMenuItemLine1);
|
||||
ConfigConstants.mainMenuItemLine2 = mainMenu.optString("itemLine2", ConfigConstants.mainMenuItemLine2);
|
||||
}
|
||||
|
||||
ConfigConstants.eaglercraftTitleLogo = mainMenu.optBoolean("eaglerLogo", ConfigConstants.eaglercraftTitleLogo);
|
||||
|
||||
JSONArray splashes = mainMenu.optJSONArray("splashes");
|
||||
if(splashes != null) {
|
||||
ConfigConstants.splashTexts = new ArrayList();
|
||||
for(int i = 0, l = splashes.length(); i < l; ++i) {
|
||||
ConfigConstants.splashTexts.add(splashes.getString(i));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
JSONArray servers = json.optJSONArray("servers");
|
||||
if(servers != null) {
|
||||
forcedServers.clear();
|
||||
for(int i = 0, l = servers.length(); i < l; ++i) {
|
||||
JSONObject serverJSON = servers.getJSONObject(i);
|
||||
ServerData newServer = new ServerData(serverJSON.getString("serverName"),
|
||||
serverJSON.getString("serverAddress"), true);
|
||||
newServer.setHideAddress(serverJSON.optBoolean("hideAddress", false));
|
||||
forcedServers.add(newServer);
|
||||
}
|
||||
}
|
||||
catch (Exception var4)
|
||||
{
|
||||
var4.printStackTrace();
|
||||
|
||||
ConfigConstants.relays = new ArrayList();
|
||||
JSONArray relays = json.optJSONArray("relays");
|
||||
if(relays != null) {
|
||||
for(int i = 0, l = relays.length(); i < l; ++i) {
|
||||
JSONObject relay = relays.getJSONObject(i);
|
||||
String addr = relay.optString("url", null);
|
||||
if(addr == null) {
|
||||
addr = relay.optString("address", null);
|
||||
if(addr == null) {
|
||||
addr = relay.getString("addr");
|
||||
}
|
||||
}
|
||||
String comment = relay.optString("name", null);
|
||||
if(comment == null) {
|
||||
comment = relay.optString("comment", "Default Relay");
|
||||
}
|
||||
boolean primary = relay.optBoolean("default", false);
|
||||
if(!primary) {
|
||||
primary = relay.optBoolean("primary", false);
|
||||
}
|
||||
ConfigConstants.relays.add(new RelayEntry(addr, comment, primary));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads a list of servers from servers.dat, by running
|
||||
* ServerData.getServerDataFromNBTCompound on each NBT compound found in the
|
||||
* "servers" tag list.
|
||||
*/
|
||||
public void loadServerList() {
|
||||
freeServerIcons();
|
||||
this.servers.clear();
|
||||
this.allServers.clear();
|
||||
for(ServerData dat : forcedServers) {
|
||||
dat.pingSentTime = -1l;
|
||||
dat.hasPing = false;
|
||||
this.servers.add(dat);
|
||||
this.allServers.add(dat);
|
||||
}
|
||||
NBTTagList servers = LocalStorageManager.gameSettingsStorage.getTagList("servers");
|
||||
for (int i = 0; i < servers.tagCount(); ++i) {
|
||||
ServerData dat = ServerData.getServerDataFromNBTCompound((NBTTagCompound) servers.tagAt(i));
|
||||
this.servers.add(dat);
|
||||
this.allServers.add(dat);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs getNBTCompound on each ServerData instance, puts everything into a "servers" NBT list and writes it to
|
||||
* servers.dat.
|
||||
* Runs getNBTCompound on each ServerData instance, puts everything into a
|
||||
* "servers" NBT list and writes it to servers.dat.
|
||||
*/
|
||||
public void saveServerList()
|
||||
{
|
||||
try
|
||||
{
|
||||
NBTTagList var1 = new NBTTagList();
|
||||
Iterator var2 = this.servers.iterator();
|
||||
|
||||
while (var2.hasNext())
|
||||
{
|
||||
ServerData var3 = (ServerData)var2.next();
|
||||
var1.appendTag(var3.getNBTCompound());
|
||||
}
|
||||
|
||||
NBTTagCompound var5 = new NBTTagCompound();
|
||||
var5.setTag("servers", var1);
|
||||
CompressedStreamTools.safeWrite(var5, new File(this.mc.mcDataDir, "servers.dat"));
|
||||
}
|
||||
catch (Exception var4)
|
||||
{
|
||||
var4.printStackTrace();
|
||||
public void saveServerList() {
|
||||
NBTTagList servers = new NBTTagList();
|
||||
for(int i = forcedServers.size(); i < this.allServers.size(); ++i) {
|
||||
servers.appendTag(((ServerData) this.allServers.get(i)).getNBTCompound());
|
||||
}
|
||||
LocalStorageManager.gameSettingsStorage.setTag("servers", servers);
|
||||
LocalStorageManager.saveStorageG();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the ServerData instance stored for the given index in the list.
|
||||
*/
|
||||
public ServerData getServerData(int par1)
|
||||
{
|
||||
return (ServerData)this.servers.get(par1);
|
||||
public ServerData getServerData(int par1) {
|
||||
return (ServerData) this.servers.get(par1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the ServerData instance stored for the given index in the list.
|
||||
*/
|
||||
public void removeServerData(int par1)
|
||||
{
|
||||
this.servers.remove(par1);
|
||||
public void removeServerData(int par1) {
|
||||
ServerData dat = this.servers.remove(par1);
|
||||
this.allServers.remove(dat);
|
||||
if(dat != null) {
|
||||
dat.freeIcon();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the given ServerData instance to the list.
|
||||
*/
|
||||
public void addServerData(ServerData par1ServerData)
|
||||
{
|
||||
this.servers.add(par1ServerData);
|
||||
public void addServerData(ServerData par1ServerData) {
|
||||
par1ServerData.pingSentTime = -1l;
|
||||
par1ServerData.hasPing = false;
|
||||
this.allServers.add(par1ServerData);
|
||||
refreshServerPing();
|
||||
}
|
||||
|
||||
/**
|
||||
* Counts the number of ServerData instances in the list.
|
||||
*/
|
||||
public int countServers()
|
||||
{
|
||||
public int countServers() {
|
||||
return this.servers.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes two list indexes, and swaps their order around.
|
||||
*/
|
||||
public void swapServers(int par1, int par2)
|
||||
{
|
||||
ServerData var3 = this.getServerData(par1);
|
||||
this.servers.set(par1, this.getServerData(par2));
|
||||
this.servers.set(par2, var3);
|
||||
this.saveServerList();
|
||||
public void swapServers(int par1, int par2) { // will be fixed eventually
|
||||
/*
|
||||
ServerData var3 = this.getServerData(par1);
|
||||
ServerData dat = this.getServerData(par2);
|
||||
this.servers.set(par1, dat);
|
||||
this.servers.set(par2, var3);
|
||||
int i = this.allServers.indexOf(dat);
|
||||
this.allServers.set(par1, this.allServers.get(i));
|
||||
this.allServers.set(i, var3);
|
||||
this.saveServerList();
|
||||
*/
|
||||
}
|
||||
|
||||
public void freeServerIcons() {
|
||||
for(ServerData dat : allServers) {
|
||||
if(dat.currentQuery != null && dat.currentQuery.isQueryOpen()) {
|
||||
dat.currentQuery.close();
|
||||
}
|
||||
if(dat.serverIconGL != -1) {
|
||||
EaglerAdapter.glDeleteTextures(dat.serverIconGL);
|
||||
dat.serverIconGL = -1;
|
||||
}
|
||||
dat.serverIconDirty = false;
|
||||
dat.serverIconEnabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void refreshServerPing() {
|
||||
this.servers.clear();
|
||||
this.servers.addAll(this.allServers);
|
||||
for(ServerData dat : servers) {
|
||||
if(dat.currentQuery != null && dat.currentQuery.isQueryOpen()) {
|
||||
dat.currentQuery.close();
|
||||
}
|
||||
dat.hasPing = false;
|
||||
dat.pingSentTime = -1l;
|
||||
}
|
||||
}
|
||||
|
||||
public void updateServerPing() {
|
||||
int total = 0;
|
||||
Iterator<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…
x
Reference in New Issue
Block a user