package net.minecraft.client.gui; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.mco.McoServer; import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.EnumChatFormatting; import org.lwjgl.opengl.GL11; @SideOnly(Side.CLIENT) class GuiSlotOnlineServerList extends GuiScreenSelectLocation { final GuiScreenOnlineServers field_96294_a; public GuiSlotOnlineServerList(GuiScreenOnlineServers par1) { super(GuiScreenOnlineServers.func_98075_b(par1), par1.width, par1.height, 32, par1.height - 64, 36); this.field_96294_a = par1; } /** * Gets the size of the current slot list. */ protected int getSize() { return GuiScreenOnlineServers.func_98094_c(this.field_96294_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 < GuiScreenOnlineServers.func_98094_c(this.field_96294_a).size()) { GuiScreenOnlineServers.func_98089_b(this.field_96294_a, par1); McoServer mcoserver = (McoServer)GuiScreenOnlineServers.func_98094_c(this.field_96294_a).get(GuiScreenOnlineServers.func_98072_d(this.field_96294_a)); GuiScreenOnlineServers.func_96161_f(this.field_96294_a).enabled = GuiScreenOnlineServers.func_98076_f(this.field_96294_a).session.username.equals(mcoserver.field_96405_e); GuiScreenOnlineServers.func_98092_g(this.field_96294_a).enabled = mcoserver.field_96404_d.equals("OPEN") && !mcoserver.field_98166_h; if (par2 && GuiScreenOnlineServers.func_98092_g(this.field_96294_a).enabled) { GuiScreenOnlineServers.func_98078_c(this.field_96294_a, GuiScreenOnlineServers.func_98072_d(this.field_96294_a)); } } } /** * returns true if the element passed in is currently selected */ protected boolean isSelected(int par1) { return par1 == GuiScreenOnlineServers.func_98072_d(this.field_96294_a); } protected boolean func_104086_b(int par1) { return par1 < GuiScreenOnlineServers.func_98094_c(this.field_96294_a).size() && ((McoServer)GuiScreenOnlineServers.func_98094_c(this.field_96294_a).get(par1)).field_96405_e.toLowerCase().equals(GuiScreenOnlineServers.func_98091_h(this.field_96294_a).session.username); } /** * return the height of the content being scrolled */ protected int getContentHeight() { return this.getSize() * 36; } protected void drawBackground() { this.field_96294_a.drawDefaultBackground(); } protected void drawSlot(int par1, int par2, int par3, int par4, Tessellator par5Tessellator) { if (par1 < GuiScreenOnlineServers.func_98094_c(this.field_96294_a).size()) { this.func_96292_b(par1, par2, par3, par4, par5Tessellator); } } private void func_96292_b(int par1, int par2, int par3, int par4, Tessellator par5Tessellator) { McoServer mcoserver = (McoServer)GuiScreenOnlineServers.func_98094_c(this.field_96294_a).get(par1); this.field_96294_a.drawString(GuiScreenOnlineServers.func_104038_i(this.field_96294_a), mcoserver.func_96398_b(), par2 + 2, par3 + 1, 16777215); short short1 = 207; byte b0 = 1; if (mcoserver.field_98166_h) { GuiScreenOnlineServers.func_101012_b(this.field_96294_a, par2 + short1, par3 + b0, this.field_104094_d, this.field_104095_e); } else if (mcoserver.field_96404_d.equals("CLOSED")) { GuiScreenOnlineServers.func_101009_c(this.field_96294_a, par2 + short1, par3 + b0, this.field_104094_d, this.field_104095_e); } else if (mcoserver.field_96405_e.equals(GuiScreenOnlineServers.func_104032_j(this.field_96294_a).session.username) && mcoserver.field_104063_i < 7) { this.func_96293_a(par1, par2 - 14, par3, mcoserver); GuiScreenOnlineServers.func_104030_a(this.field_96294_a, par2 + short1, par3 + b0, this.field_104094_d, this.field_104095_e, mcoserver.field_104063_i); } else if (mcoserver.field_96404_d.equals("OPEN")) { GuiScreenOnlineServers.func_104031_c(this.field_96294_a, par2 + short1, par3 + b0, this.field_104094_d, this.field_104095_e); this.func_96293_a(par1, par2 - 14, par3, mcoserver); } this.field_96294_a.drawString(GuiScreenOnlineServers.func_98084_i(this.field_96294_a), mcoserver.func_96397_a(), par2 + 2, par3 + 12, 7105644); this.field_96294_a.drawString(GuiScreenOnlineServers.func_101005_j(this.field_96294_a), mcoserver.field_96405_e, par2 + 2, par3 + 12 + 11, 5000268); } private void func_96293_a(int par1, int par2, int par3, McoServer par4McoServer) { if (par4McoServer.field_96403_g != null) { synchronized (GuiScreenOnlineServers.func_101007_h()) { if (GuiScreenOnlineServers.func_101010_i() < 5 && (!par4McoServer.field_96411_l || par4McoServer.field_102022_m)) { (new ThreadConnectToOnlineServer(this, par4McoServer)).start(); } } boolean flag = par4McoServer.field_96415_h > 61; boolean flag1 = par4McoServer.field_96415_h < 61; boolean flag2 = flag || flag1; if (par4McoServer.field_96414_k != null) { this.field_96294_a.drawString(GuiScreenOnlineServers.func_98079_k(this.field_96294_a), par4McoServer.field_96414_k, par2 + 215 - GuiScreenOnlineServers.func_98087_l(this.field_96294_a).getStringWidth(par4McoServer.field_96414_k), par3 + 1, 8421504); } if (flag2) { String s = EnumChatFormatting.DARK_RED + par4McoServer.field_96413_j; this.field_96294_a.drawString(GuiScreenOnlineServers.func_98074_m(this.field_96294_a), s, par2 + 200 - GuiScreenOnlineServers.func_101000_n(this.field_96294_a).getStringWidth(s), par3 + 1, 8421504); } GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GuiScreenOnlineServers.func_101004_o(this.field_96294_a).renderEngine.bindTexture("/gui/icons.png"); byte b0 = 0; boolean flag3 = false; String s1 = null; if (flag2) { s1 = flag ? "Client out of date!" : "Server out of date!"; byte b1 = 5; this.field_96294_a.drawTexturedModalRect(par2 + 205, par3, b0 * 10, 176 + b1 * 8, 10, 8); } byte b2 = 4; if (this.field_104094_d >= par2 + 205 - b2 && this.field_104095_e >= par3 - b2 && this.field_104094_d <= par2 + 205 + 10 + b2 && this.field_104095_e <= par3 + 8 + b2) { GuiScreenOnlineServers.func_101011_a(this.field_96294_a, s1); } } } }