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