001 package cpw.mods.fml.client; 002 003 import net.minecraft.client.gui.GuiButton; 004 import net.minecraft.client.gui.GuiScreen; 005 import net.minecraft.client.gui.GuiSmallButton; 006 import net.minecraft.util.StringTranslate; 007 import cpw.mods.fml.common.network.ModMissingPacket; 008 import cpw.mods.fml.common.versioning.ArtifactVersion; 009 010 public class GuiModsMissingForServer extends GuiScreen 011 { 012 private ModMissingPacket modsMissing; 013 014 public GuiModsMissingForServer(ModMissingPacket modsMissing) 015 { 016 this.modsMissing = modsMissing; 017 } 018 019 @Override 020 021 /** 022 * Adds the buttons (and other controls) to the screen in question. 023 */ 024 public void initGui() 025 { 026 StringTranslate translations = StringTranslate.getInstance(); 027 this.controlList.add(new GuiSmallButton(1, this.width / 2 - 75, this.height - 38, translations.translateKey("gui.done"))); 028 } 029 030 @Override 031 032 /** 033 * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e). 034 */ 035 protected void actionPerformed(GuiButton par1GuiButton) 036 { 037 if (par1GuiButton.enabled && par1GuiButton.id == 1) 038 { 039 FMLClientHandler.instance().getClient().displayGuiScreen(null); 040 } 041 } 042 @Override 043 044 /** 045 * Draws the screen and all the components in it. 046 */ 047 public void drawScreen(int par1, int par2, float par3) 048 { 049 this.drawDefaultBackground(); 050 int offset = Math.max(85 - modsMissing.getModList().size() * 10, 10); 051 this.drawCenteredString(this.fontRenderer, "Forge Mod Loader could not connect to this server", this.width / 2, offset, 0xFFFFFF); 052 offset += 10; 053 this.drawCenteredString(this.fontRenderer, "The mods and versions listed below could not be found", this.width / 2, offset, 0xFFFFFF); 054 offset += 10; 055 this.drawCenteredString(this.fontRenderer, "They are required to play on this server", this.width / 2, offset, 0xFFFFFF); 056 offset += 5; 057 for (ArtifactVersion v : modsMissing.getModList()) 058 { 059 offset += 10; 060 this.drawCenteredString(this.fontRenderer, String.format("%s : %s", v.getLabel(), v.getRangeString()), this.width / 2, offset, 0xEEEEEE); 061 } 062 super.drawScreen(par1, par2, par3); 063 } 064 }