    001package net.minecraft.client.gui;
    002
    003import cpw.mods.fml.relauncher.Side;
    004import cpw.mods.fml.relauncher.SideOnly;
    005import net.minecraft.util.StatCollector;
    006import net.minecraft.util.StringTranslate;
    007import net.minecraft.world.EnumGameType;
    008
    009@SideOnly(Side.CLIENT)
    010public class GuiShareToLan extends GuiScreen
    011{
    012    /**
    013     * A reference to the screen object that created this. Used for navigating between screens.
    014     */
    015    private final GuiScreen parentScreen;
    016    private GuiButton buttonAllowCommandsToggle;
    017    private GuiButton buttonGameMode;
    018
    019    /**
    020     * The currently selected game mode. One of 'survival', 'creative', or 'adventure'
    021     */
    022    private String gameMode = "survival";
    023
    024    /** True if 'Allow Cheats' is currently enabled */
    025    private boolean allowCommands = false;
    026
    027    public GuiShareToLan(GuiScreen par1GuiScreen)
    028    {
    029        this.parentScreen = par1GuiScreen;
    030    }
    031
    032    /**
    033     * Adds the buttons (and other controls) to the screen in question.
    034     */
    035    public void initGui()
    036    {
    037        this.buttonList.clear();
    038        this.buttonList.add(new GuiButton(101, this.width / 2 - 155, this.height - 28, 150, 20, StatCollector.translateToLocal("lanServer.start")));
    039        this.buttonList.add(new GuiButton(102, this.width / 2 + 5, this.height - 28, 150, 20, StatCollector.translateToLocal("gui.cancel")));
    040        this.buttonList.add(this.buttonGameMode = new GuiButton(104, this.width / 2 - 155, 100, 150, 20, StatCollector.translateToLocal("selectWorld.gameMode")));
    041        this.buttonList.add(this.buttonAllowCommandsToggle = new GuiButton(103, this.width / 2 + 5, 100, 150, 20, StatCollector.translateToLocal("selectWorld.allowCommands")));
    042        this.func_74088_g();
    043    }
    044
    045    private void func_74088_g()
    046    {
    047        StringTranslate stringtranslate = StringTranslate.getInstance();
    048        this.buttonGameMode.displayString = stringtranslate.translateKey("selectWorld.gameMode") + " " + stringtranslate.translateKey("selectWorld.gameMode." + this.gameMode);
    049        this.buttonAllowCommandsToggle.displayString = stringtranslate.translateKey("selectWorld.allowCommands") + " ";
    050
    051        if (this.allowCommands)
    052        {
    053            this.buttonAllowCommandsToggle.displayString = this.buttonAllowCommandsToggle.displayString + stringtranslate.translateKey("options.on");
    054        }
    055        else
    056        {
    057            this.buttonAllowCommandsToggle.displayString = this.buttonAllowCommandsToggle.displayString + stringtranslate.translateKey("options.off");
    058        }
    059    }
    060
    061    /**
    062     * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e).
    063     */
    064    protected void actionPerformed(GuiButton par1GuiButton)
    065    {
    066        if (par1GuiButton.id == 102)
    067        {
    068            this.mc.displayGuiScreen(this.parentScreen);
    069        }
    070        else if (par1GuiButton.id == 104)
    071        {
    072            if (this.gameMode.equals("survival"))
    073            {
    074                this.gameMode = "creative";
    075            }
    076            else if (this.gameMode.equals("creative"))
    077            {
    078                this.gameMode = "adventure";
    079            }
    080            else
    081            {
    082                this.gameMode = "survival";
    083            }
    084
    085            this.func_74088_g();
    086        }
    087        else if (par1GuiButton.id == 103)
    088        {
    089            this.allowCommands = !this.allowCommands;
    090            this.func_74088_g();
    091        }
    092        else if (par1GuiButton.id == 101)
    093        {
    094            this.mc.displayGuiScreen((GuiScreen)null);
    095            String s = this.mc.getIntegratedServer().shareToLAN(EnumGameType.getByName(this.gameMode), this.allowCommands);
    096            String s1 = "";
    097
    098            if (s != null)
    099            {
    100                s1 = this.mc.thePlayer.translateString("commands.publish.started", new Object[] {s});
    101            }
    102            else
    103            {
    104                s1 = this.mc.thePlayer.translateString("commands.publish.failed", new Object[0]);
    105            }
    106
    107            this.mc.ingameGUI.getChatGUI().printChatMessage(s1);
    108        }
    109    }
    110
    111    /**
    112     * Draws the screen and all the components in it.
    113     */
    114    public void drawScreen(int par1, int par2, float par3)
    115    {
    116        this.drawDefaultBackground();
    117        this.drawCenteredString(this.fontRenderer, StatCollector.translateToLocal("lanServer.title"), this.width / 2, 50, 16777215);
    118        this.drawCenteredString(this.fontRenderer, StatCollector.translateToLocal("lanServer.otherPlayers"), this.width / 2, 82, 16777215);
    119        super.drawScreen(par1, par2, par3);
    120    }
    121}