001 package net.minecraft.client.gui; 002 003 import cpw.mods.fml.relauncher.Side; 004 import cpw.mods.fml.relauncher.SideOnly; 005 import java.util.ArrayList; 006 import java.util.Iterator; 007 import java.util.List; 008 import java.util.TreeMap; 009 import java.util.Map.Entry; 010 import net.minecraft.client.settings.EnumOptions; 011 import net.minecraft.client.settings.GameSettings; 012 import net.minecraft.util.StatCollector; 013 014 @SideOnly(Side.CLIENT) 015 public class GuiSnooper extends GuiScreen 016 { 017 /** Instance of GuiScreen. */ 018 private final GuiScreen snooperGuiScreen; 019 020 /** Instance of GameSettings. */ 021 private final GameSettings snooperGameSettings; 022 private final List field_74098_c = new ArrayList(); 023 private final List field_74096_d = new ArrayList(); 024 025 /** The Snooper title. */ 026 private String snooperTitle; 027 private String[] field_74101_n; 028 private GuiSnooperList snooperList; 029 private GuiButton buttonAllowSnooping; 030 031 public GuiSnooper(GuiScreen par1GuiScreen, GameSettings par2GameSettings) 032 { 033 this.snooperGuiScreen = par1GuiScreen; 034 this.snooperGameSettings = par2GameSettings; 035 } 036 037 /** 038 * Adds the buttons (and other controls) to the screen in question. 039 */ 040 public void initGui() 041 { 042 this.snooperTitle = StatCollector.translateToLocal("options.snooper.title"); 043 String var1 = StatCollector.translateToLocal("options.snooper.desc"); 044 ArrayList var2 = new ArrayList(); 045 Iterator var3 = this.fontRenderer.listFormattedStringToWidth(var1, this.width - 30).iterator(); 046 047 while (var3.hasNext()) 048 { 049 String var4 = (String)var3.next(); 050 var2.add(var4); 051 } 052 053 this.field_74101_n = (String[])var2.toArray(new String[0]); 054 this.field_74098_c.clear(); 055 this.field_74096_d.clear(); 056 this.controlList.add(this.buttonAllowSnooping = new GuiButton(1, this.width / 2 - 152, this.height - 30, 150, 20, this.snooperGameSettings.getKeyBinding(EnumOptions.SNOOPER_ENABLED))); 057 this.controlList.add(new GuiButton(2, this.width / 2 + 2, this.height - 30, 150, 20, StatCollector.translateToLocal("gui.done"))); 058 boolean var6 = this.mc.getIntegratedServer() != null && this.mc.getIntegratedServer().getPlayerUsageSnooper() != null; 059 Iterator var7 = (new TreeMap(this.mc.getPlayerUsageSnooper().getCurrentStats())).entrySet().iterator(); 060 Entry var5; 061 062 while (var7.hasNext()) 063 { 064 var5 = (Entry)var7.next(); 065 this.field_74098_c.add((var6 ? "C " : "") + (String)var5.getKey()); 066 this.field_74096_d.add(this.fontRenderer.trimStringToWidth((String)var5.getValue(), this.width - 220)); 067 } 068 069 if (var6) 070 { 071 var7 = (new TreeMap(this.mc.getIntegratedServer().getPlayerUsageSnooper().getCurrentStats())).entrySet().iterator(); 072 073 while (var7.hasNext()) 074 { 075 var5 = (Entry)var7.next(); 076 this.field_74098_c.add("S " + (String)var5.getKey()); 077 this.field_74096_d.add(this.fontRenderer.trimStringToWidth((String)var5.getValue(), this.width - 220)); 078 } 079 } 080 081 this.snooperList = new GuiSnooperList(this); 082 } 083 084 /** 085 * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e). 086 */ 087 protected void actionPerformed(GuiButton par1GuiButton) 088 { 089 if (par1GuiButton.enabled) 090 { 091 if (par1GuiButton.id == 2) 092 { 093 this.snooperGameSettings.saveOptions(); 094 this.snooperGameSettings.saveOptions(); 095 this.mc.displayGuiScreen(this.snooperGuiScreen); 096 } 097 098 if (par1GuiButton.id == 1) 099 { 100 this.snooperGameSettings.setOptionValue(EnumOptions.SNOOPER_ENABLED, 1); 101 this.buttonAllowSnooping.displayString = this.snooperGameSettings.getKeyBinding(EnumOptions.SNOOPER_ENABLED); 102 } 103 } 104 } 105 106 /** 107 * Draws the screen and all the components in it. 108 */ 109 public void drawScreen(int par1, int par2, float par3) 110 { 111 this.drawDefaultBackground(); 112 this.snooperList.drawScreen(par1, par2, par3); 113 this.drawCenteredString(this.fontRenderer, this.snooperTitle, this.width / 2, 8, 16777215); 114 int var4 = 22; 115 String[] var5 = this.field_74101_n; 116 int var6 = var5.length; 117 118 for (int var7 = 0; var7 < var6; ++var7) 119 { 120 String var8 = var5[var7]; 121 this.drawCenteredString(this.fontRenderer, var8, this.width / 2, var4, 8421504); 122 var4 += this.fontRenderer.FONT_HEIGHT; 123 } 124 125 super.drawScreen(par1, par2, par3); 126 } 127 128 static List func_74095_a(GuiSnooper par0GuiSnooper) 129 { 130 return par0GuiSnooper.field_74098_c; 131 } 132 133 static List func_74094_b(GuiSnooper par0GuiSnooper) 134 { 135 return par0GuiSnooper.field_74096_d; 136 } 137 }