20 errors

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

Binary file not shown.

View File

@ -9,6 +9,8 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.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)

View File

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

View File

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

View File

@ -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. */

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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 */

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,166 +0,0 @@
package net.minecraft.src;
import java.util.Collections;
import java.util.List;
import org.lwjgl.input.Keyboard;
public class GuiScreenBackup extends GuiScreen
{
private final GuiScreenConfigureWorld field_110380_a;
private final long field_110377_b;
private List field_110378_c = Collections.emptyList();
private GuiScreenBackupSelectionList field_110375_d;
private int field_110376_e = -1;
private GuiButton field_110379_p;
public GuiScreenBackup(GuiScreenConfigureWorld par1GuiScreenConfigureWorld, long par2)
{
this.field_110380_a = par1GuiScreenConfigureWorld;
this.field_110377_b = par2;
}
/**
* Adds the buttons (and other controls) to the screen in question.
*/
public void initGui()
{
Keyboard.enableRepeatEvents(true);
this.buttonList.clear();
this.field_110375_d = new GuiScreenBackupSelectionList(this);
(new GuiScreenBackupDownloadThread(this)).start();
this.func_110369_g();
}
private void func_110369_g()
{
this.buttonList.add(new GuiButton(0, this.width / 2 + 6, this.height - 52, 153, 20, I18n.getString("gui.back")));
this.buttonList.add(this.field_110379_p = new GuiButton(1, this.width / 2 - 154, this.height - 52, 153, 20, I18n.getString("mco.backup.button.restore")));
}
/**
* Called from the main game loop to update the screen.
*/
public void updateScreen()
{
super.updateScreen();
}
/**
* Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e).
*/
protected void actionPerformed(GuiButton par1GuiButton)
{
if (par1GuiButton.enabled)
{
if (par1GuiButton.id == 1)
{
String var2 = I18n.getString("mco.configure.world.restore.question.line1");
String var3 = I18n.getString("mco.configure.world.restore.question.line2");
this.mc.displayGuiScreen(new GuiScreenConfirmation(this, "Warning!", var2, var3, 1));
}
else if (par1GuiButton.id == 0)
{
this.mc.displayGuiScreen(this.field_110380_a);
}
else
{
this.field_110375_d.actionPerformed(par1GuiButton);
}
}
}
public void confirmClicked(boolean par1, int par2)
{
if (par1 && par2 == 1)
{
this.func_110374_h();
}
else
{
this.mc.displayGuiScreen(this);
}
}
private void func_110374_h()
{
if (this.field_110376_e >= 0 && this.field_110376_e < this.field_110378_c.size())
{
Backup var1 = (Backup)this.field_110378_c.get(this.field_110376_e);
GuiScreenBackupRestoreTask var2 = new GuiScreenBackupRestoreTask(this, var1, (GuiScreenBackupDownloadThread)null);
GuiScreenLongRunningTask var3 = new GuiScreenLongRunningTask(this.mc, this.field_110380_a, var2);
var3.func_98117_g();
this.mc.displayGuiScreen(var3);
}
}
/**
* Draws the screen and all the components in it.
*/
public void drawScreen(int par1, int par2, float par3)
{
this.drawDefaultBackground();
this.field_110375_d.drawScreen(par1, par2, par3);
this.drawCenteredString(this.fontRenderer, I18n.getString("mco.backup.title"), this.width / 2, 20, 16777215);
super.drawScreen(par1, par2, par3);
}
static Minecraft func_110366_a(GuiScreenBackup par0GuiScreenBackup)
{
return par0GuiScreenBackup.mc;
}
static List func_110373_a(GuiScreenBackup par0GuiScreenBackup, List par1List)
{
return par0GuiScreenBackup.field_110378_c = par1List;
}
static long func_110367_b(GuiScreenBackup par0GuiScreenBackup)
{
return par0GuiScreenBackup.field_110377_b;
}
static Minecraft func_130030_c(GuiScreenBackup par0GuiScreenBackup)
{
return par0GuiScreenBackup.mc;
}
static GuiScreenConfigureWorld func_130031_d(GuiScreenBackup par0GuiScreenBackup)
{
return par0GuiScreenBackup.field_110380_a;
}
static Minecraft func_130035_e(GuiScreenBackup par0GuiScreenBackup)
{
return par0GuiScreenBackup.mc;
}
static Minecraft func_130036_f(GuiScreenBackup par0GuiScreenBackup)
{
return par0GuiScreenBackup.mc;
}
static List func_110370_e(GuiScreenBackup par0GuiScreenBackup)
{
return par0GuiScreenBackup.field_110378_c;
}
static int func_130029_a(GuiScreenBackup par0GuiScreenBackup, int par1)
{
return par0GuiScreenBackup.field_110376_e = par1;
}
static int func_130034_h(GuiScreenBackup par0GuiScreenBackup)
{
return par0GuiScreenBackup.field_110376_e;
}
static FontRenderer func_130032_i(GuiScreenBackup par0GuiScreenBackup)
{
return par0GuiScreenBackup.fontRenderer;
}
static FontRenderer func_130033_j(GuiScreenBackup par0GuiScreenBackup)
{
return par0GuiScreenBackup.fontRenderer;
}
}

View File

@ -1,25 +0,0 @@
package net.minecraft.src;
class GuiScreenBackupDownloadThread extends Thread
{
final GuiScreenBackup field_111250_a;
GuiScreenBackupDownloadThread(GuiScreenBackup par1GuiScreenBackup)
{
this.field_111250_a = par1GuiScreenBackup;
}
public void run()
{
McoClient var1 = new McoClient(GuiScreenBackup.func_110366_a(this.field_111250_a).getSession());
try
{
GuiScreenBackup.func_110373_a(this.field_111250_a, var1.func_111232_c(GuiScreenBackup.func_110367_b(this.field_111250_a)).field_111223_a);
}
catch (ExceptionMcoService var3)
{
GuiScreenBackup.func_130030_c(this.field_111250_a).getLogAgent().logSevere(var3.toString());
}
}
}

View File

@ -1,52 +0,0 @@
package net.minecraft.src;
class GuiScreenBackupRestoreTask extends TaskLongRunning
{
/** The backup being restored */
private final Backup theBackup;
/** The screen running this task */
final GuiScreenBackup theBackupScreen;
private GuiScreenBackupRestoreTask(GuiScreenBackup par1GuiScreenBackup, Backup par2Backup)
{
this.theBackupScreen = par1GuiScreenBackup;
this.theBackup = par2Backup;
}
public void run()
{
this.setMessage(I18n.getString("mco.backup.restoring"));
try
{
McoClient var1 = new McoClient(this.getMinecraft().getSession());
var1.func_111235_c(GuiScreenBackup.func_110367_b(this.theBackupScreen), this.theBackup.field_110727_a);
try
{
Thread.sleep(1000L);
}
catch (InterruptedException var3)
{
Thread.currentThread().interrupt();
}
this.getMinecraft().displayGuiScreen(GuiScreenBackup.func_130031_d(this.theBackupScreen));
}
catch (ExceptionMcoService var4)
{
GuiScreenBackup.func_130035_e(this.theBackupScreen).getLogAgent().logSevere(var4.toString());
this.setFailedMessage(var4.toString());
}
catch (Exception var5)
{
this.setFailedMessage(var5.getLocalizedMessage());
}
}
GuiScreenBackupRestoreTask(GuiScreenBackup par1GuiScreenBackup, Backup par2Backup, GuiScreenBackupDownloadThread par3GuiScreenBackupDownloadThread)
{
this(par1GuiScreenBackup, par2Backup);
}
}

View File

@ -1,115 +0,0 @@
package net.minecraft.src;
import java.text.DateFormat;
import java.util.Date;
import net.minecraft.server.MinecraftServer;
class GuiScreenBackupSelectionList extends GuiScreenSelectLocation
{
final GuiScreenBackup field_111249_a;
public GuiScreenBackupSelectionList(GuiScreenBackup par1GuiScreenBackup)
{
super(GuiScreenBackup.func_130036_f(par1GuiScreenBackup), par1GuiScreenBackup.width, par1GuiScreenBackup.height, 32, par1GuiScreenBackup.height - 64, 36);
this.field_111249_a = par1GuiScreenBackup;
}
/**
* Gets the size of the current slot list.
*/
protected int getSize()
{
return GuiScreenBackup.func_110370_e(this.field_111249_a).size() + 1;
}
/**
* the element in the slot that was clicked, boolean for wether it was double clicked or not
*/
protected void elementClicked(int par1, boolean par2)
{
if (par1 < GuiScreenBackup.func_110370_e(this.field_111249_a).size())
{
GuiScreenBackup.func_130029_a(this.field_111249_a, par1);
}
}
/**
* returns true if the element passed in is currently selected
*/
protected boolean isSelected(int par1)
{
return par1 == GuiScreenBackup.func_130034_h(this.field_111249_a);
}
protected boolean func_104086_b(int par1)
{
return false;
}
protected int func_130003_b()
{
return this.getSize() * 36;
}
protected void func_130004_c()
{
this.field_111249_a.drawDefaultBackground();
}
protected void drawSlot(int par1, int par2, int par3, int par4, Tessellator par5Tessellator)
{
if (par1 < GuiScreenBackup.func_110370_e(this.field_111249_a).size())
{
this.func_111246_b(par1, par2, par3, par4, par5Tessellator);
}
}
private void func_111246_b(int par1, int par2, int par3, int par4, Tessellator par5Tessellator)
{
Backup var6 = (Backup)GuiScreenBackup.func_110370_e(this.field_111249_a).get(par1);
this.field_111249_a.drawString(GuiScreenBackup.func_130032_i(this.field_111249_a), "Backup (" + this.func_111248_a(Long.valueOf(MinecraftServer.getSystemTimeMillis() - var6.field_110725_b.getTime())) + ")", par2 + 2, par3 + 1, 16777215);
this.field_111249_a.drawString(GuiScreenBackup.func_130033_j(this.field_111249_a), this.func_111247_a(var6.field_110725_b), par2 + 2, par3 + 12, 7105644);
}
private String func_111247_a(Date par1Date)
{
return DateFormat.getDateTimeInstance(3, 3).format(par1Date);
}
private String func_111248_a(Long par1)
{
if (par1.longValue() < 0L)
{
return "right now";
}
else
{
long var2 = par1.longValue() / 1000L;
if (var2 < 60L)
{
return (var2 == 1L ? "1 second" : var2 + " seconds") + " ago";
}
else
{
long var4;
if (var2 < 3600L)
{
var4 = var2 / 60L;
return (var4 == 1L ? "1 minute" : var4 + " minutes") + " ago";
}
else if (var2 < 86400L)
{
var4 = var2 / 3600L;
return (var4 == 1L ? "1 hour" : var4 + " hours") + " ago";
}
else
{
var4 = var2 / 86400L;
return (var4 == 1L ? "1 day" : var4 + " days") + " ago";
}
}
}
}
}

View File

@ -1,5 +1,7 @@
package net.minecraft.src;
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);
}
}
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,23 +0,0 @@
package net.minecraft.src;
import com.google.common.base.Function;
class SimpleReloadableResourceManagerINNER1 implements Function
{
final SimpleReloadableResourceManager theSimpleReloadableResourceManager;
SimpleReloadableResourceManagerINNER1(SimpleReloadableResourceManager par1SimpleReloadableResourceManager)
{
this.theSimpleReloadableResourceManager = par1SimpleReloadableResourceManager;
}
public String apply(ResourcePack par1ResourcePack)
{
return par1ResourcePack.getPackName();
}
public Object apply(Object par1Obj)
{
return this.apply((ResourcePack)par1Obj);
}
}

View File

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

View File

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