001package net.minecraft.client.gui;
002
003import cpw.mods.fml.relauncher.Side;
004import cpw.mods.fml.relauncher.SideOnly;
005import java.io.IOException;
006import net.minecraft.client.Minecraft;
007import net.minecraft.client.mco.ExceptionMcoService;
008import net.minecraft.client.mco.McoClient;
009import net.minecraft.client.mco.McoServer;
010import net.minecraft.util.StringTranslate;
011import org.lwjgl.input.Keyboard;
012
013@SideOnly(Side.CLIENT)
014public class GuiScreenConfigureWorld extends GuiScreen
015{
016    private final GuiScreen field_96285_a;
017    private McoServer field_96280_b;
018    private SelectionListInvited field_96282_c;
019    private int field_96277_d;
020    private int field_96286_n;
021    private int field_96287_o;
022    private int field_96284_p = -1;
023    private String field_96283_q;
024    private GuiButton field_96281_r;
025    private GuiButton field_96279_s;
026    private GuiButton field_96278_t;
027    private GuiButton field_96276_u;
028    private GuiButton field_98128_v;
029    private GuiButton field_98127_w;
030    private GuiButton field_98129_x;
031    private boolean field_102020_y;
032
033    public GuiScreenConfigureWorld(GuiScreen par1, McoServer par2)
034    {
035        this.field_96285_a = par1;
036        this.field_96280_b = par2;
037    }
038
039    /**
040     * Called from the main game loop to update the screen.
041     */
042    public void updateScreen() {}
043
044    /**
045     * Adds the buttons (and other controls) to the screen in question.
046     */
047    public void initGui()
048    {
049        StringTranslate stringtranslate = StringTranslate.getInstance();
050        this.field_96277_d = this.width / 2 - 200;
051        this.field_96286_n = 180;
052        this.field_96287_o = this.width / 2;
053        Keyboard.enableRepeatEvents(true);
054        this.buttonList.clear();
055
056        if (this.field_96280_b.field_96404_d.equals("CLOSED"))
057        {
058            this.buttonList.add(this.field_96281_r = new GuiButton(0, this.field_96277_d, this.func_96264_a(12), this.field_96286_n / 2 - 2, 20, stringtranslate.translateKey("mco.configure.world.buttons.open")));
059            this.field_96281_r.enabled = !this.field_96280_b.field_98166_h;
060        }
061        else
062        {
063            this.buttonList.add(this.field_96279_s = new GuiButton(1, this.field_96277_d, this.func_96264_a(12), this.field_96286_n / 2 - 2, 20, stringtranslate.translateKey("mco.configure.world.buttons.close")));
064            this.field_96279_s.enabled = !this.field_96280_b.field_98166_h;
065        }
066
067        this.buttonList.add(this.field_98129_x = new GuiButton(7, this.field_96277_d + this.field_96286_n / 2 + 2, this.func_96264_a(12), this.field_96286_n / 2 - 2, 20, stringtranslate.translateKey("mco.configure.world.buttons.subscription")));
068        this.buttonList.add(this.field_96278_t = new GuiButton(5, this.field_96277_d, this.func_96264_a(10), this.field_96286_n / 2 - 2, 20, stringtranslate.translateKey("mco.configure.world.buttons.edit")));
069        this.buttonList.add(this.field_96276_u = new GuiButton(6, this.field_96277_d + this.field_96286_n / 2 + 2, this.func_96264_a(10), this.field_96286_n / 2 - 2, 20, stringtranslate.translateKey("mco.configure.world.buttons.reset")));
070        this.buttonList.add(this.field_98128_v = new GuiButton(4, this.field_96287_o, this.func_96264_a(10), this.field_96286_n / 2 - 2, 20, stringtranslate.translateKey("mco.configure.world.buttons.invite")));
071        this.buttonList.add(this.field_98127_w = new GuiButton(3, this.field_96287_o + this.field_96286_n / 2 + 2, this.func_96264_a(10), this.field_96286_n / 2 - 2, 20, stringtranslate.translateKey("mco.configure.world.buttons.uninvite")));
072        this.buttonList.add(new GuiButton(10, this.field_96287_o, this.func_96264_a(12), this.field_96286_n, 20, stringtranslate.translateKey("gui.back")));
073        this.field_96282_c = new SelectionListInvited(this);
074        this.field_96278_t.enabled = !this.field_96280_b.field_98166_h;
075        this.field_96276_u.enabled = !this.field_96280_b.field_98166_h;
076        this.field_98128_v.enabled = !this.field_96280_b.field_98166_h;
077        this.field_98127_w.enabled = !this.field_96280_b.field_98166_h;
078    }
079
080    private int func_96264_a(int par1)
081    {
082        return 40 + par1 * 13;
083    }
084
085    /**
086     * Called when the screen is unloaded. Used to disable keyboard repeat events
087     */
088    public void onGuiClosed()
089    {
090        Keyboard.enableRepeatEvents(false);
091    }
092
093    /**
094     * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e).
095     */
096    protected void actionPerformed(GuiButton par1GuiButton)
097    {
098        if (par1GuiButton.enabled)
099        {
100            if (par1GuiButton.id == 10)
101            {
102                if (this.field_102020_y)
103                {
104                    ((GuiScreenOnlineServers)this.field_96285_a).func_102018_a(this.field_96280_b.field_96408_a);
105                }
106
107                this.mc.displayGuiScreen(this.field_96285_a);
108            }
109            else if (par1GuiButton.id == 5)
110            {
111                this.mc.displayGuiScreen(new GuiScreenEditOnlineWorld(this, this.field_96285_a, this.field_96280_b));
112            }
113            else if (par1GuiButton.id == 1)
114            {
115                StringTranslate stringtranslate = StringTranslate.getInstance();
116                String s = stringtranslate.translateKey("mco.configure.world.close.question.line1");
117                String s1 = stringtranslate.translateKey("mco.configure.world.close.question.line2");
118                this.mc.displayGuiScreen(new GuiScreenConfirmation(this, "Warning!", s, s1, 1));
119            }
120            else if (par1GuiButton.id == 0)
121            {
122                this.func_96268_g();
123            }
124            else if (par1GuiButton.id == 4)
125            {
126                this.mc.displayGuiScreen(new GuiScreenInvite(this.field_96285_a, this, this.field_96280_b));
127            }
128            else if (par1GuiButton.id == 3)
129            {
130                this.func_96272_i();
131            }
132            else if (par1GuiButton.id == 6)
133            {
134                this.mc.displayGuiScreen(new GuiScreenResetWorld(this, this.field_96280_b));
135            }
136            else if (par1GuiButton.id == 7)
137            {
138                this.mc.displayGuiScreen(new GuiScreenSubscription(this, this.field_96280_b));
139            }
140        }
141    }
142
143    private void func_96268_g()
144    {
145        McoClient mcoclient = new McoClient(this.mc.session);
146
147        try
148        {
149            Boolean obool = mcoclient.func_96383_b(this.field_96280_b.field_96408_a);
150
151            if (obool.booleanValue())
152            {
153                this.field_102020_y = true;
154                this.field_96280_b.field_96404_d = "OPEN";
155                this.initGui();
156            }
157        }
158        catch (ExceptionMcoService exceptionmcoservice)
159        {
160            ;
161        }
162        catch (IOException ioexception)
163        {
164            ;
165        }
166    }
167
168    private void func_96275_h()
169    {
170        McoClient mcoclient = new McoClient(this.mc.session);
171
172        try
173        {
174            boolean flag = mcoclient.func_96378_c(this.field_96280_b.field_96408_a).booleanValue();
175
176            if (flag)
177            {
178                this.field_102020_y = true;
179                this.field_96280_b.field_96404_d = "CLOSED";
180                this.initGui();
181            }
182        }
183        catch (ExceptionMcoService exceptionmcoservice)
184        {
185            ;
186        }
187        catch (IOException ioexception)
188        {
189            ;
190        }
191    }
192
193    private void func_96272_i()
194    {
195        if (this.field_96284_p >= 0 && this.field_96284_p < this.field_96280_b.field_96402_f.size())
196        {
197            this.field_96283_q = (String)this.field_96280_b.field_96402_f.get(this.field_96284_p);
198            StringTranslate stringtranslate = StringTranslate.getInstance();
199            GuiYesNo guiyesno = new GuiYesNo(this, "Warning!", stringtranslate.translateKey("mco.configure.world.uninvite.question") + " \'" + this.field_96283_q + "\'", 3);
200            this.mc.displayGuiScreen(guiyesno);
201        }
202    }
203
204    public void confirmClicked(boolean par1, int par2)
205    {
206        if (par2 == 3)
207        {
208            if (par1)
209            {
210                McoClient mcoclient = new McoClient(this.mc.session);
211
212                try
213                {
214                    mcoclient.func_96381_a(this.field_96280_b.field_96408_a, this.field_96283_q);
215                }
216                catch (ExceptionMcoService exceptionmcoservice)
217                {
218                    System.err.println("Could not uninvite the selected user");
219                }
220
221                this.func_96267_d(this.field_96284_p);
222            }
223
224            this.mc.displayGuiScreen(new GuiScreenConfigureWorld(this.field_96285_a, this.field_96280_b));
225        }
226
227        if (par2 == 1)
228        {
229            if (par1)
230            {
231                this.func_96275_h();
232            }
233
234            this.mc.displayGuiScreen(this);
235        }
236    }
237
238    private void func_96267_d(int par1)
239    {
240        this.field_96280_b.field_96402_f.remove(par1);
241    }
242
243    /**
244     * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e).
245     */
246    protected void keyTyped(char par1, int par2) {}
247
248    /**
249     * Called when the mouse is clicked.
250     */
251    protected void mouseClicked(int par1, int par2, int par3)
252    {
253        super.mouseClicked(par1, par2, par3);
254    }
255
256    /**
257     * Draws the screen and all the components in it.
258     */
259    public void drawScreen(int par1, int par2, float par3)
260    {
261        StringTranslate stringtranslate = StringTranslate.getInstance();
262        this.drawDefaultBackground();
263        this.field_96282_c.func_96612_a(par1, par2, par3);
264        this.drawCenteredString(this.fontRenderer, stringtranslate.translateKey("mco.configure.world.title"), this.width / 2, 17, 16777215);
265        this.drawString(this.fontRenderer, stringtranslate.translateKey("mco.configure.world.name"), this.field_96277_d, this.func_96264_a(1), 10526880);
266        this.drawString(this.fontRenderer, this.field_96280_b.func_96398_b(), this.field_96277_d, this.func_96264_a(2), 16777215);
267        this.drawString(this.fontRenderer, stringtranslate.translateKey("mco.configure.world.description"), this.field_96277_d, this.func_96264_a(4), 10526880);
268        this.drawString(this.fontRenderer, this.field_96280_b.func_96397_a(), this.field_96277_d, this.func_96264_a(5), 16777215);
269        this.drawString(this.fontRenderer, stringtranslate.translateKey("mco.configure.world.owner"), this.field_96277_d, this.func_96264_a(7), 10526880);
270        this.drawString(this.fontRenderer, this.field_96280_b.field_96405_e, this.field_96277_d, this.func_96264_a(8), 16777215);
271        this.drawString(this.fontRenderer, stringtranslate.translateKey("mco.configure.world.invited"), this.field_96287_o, this.func_96264_a(1), 10526880);
272        super.drawScreen(par1, par2, par3);
273    }
274
275    static Minecraft func_96265_a(GuiScreenConfigureWorld par0GuiScreenConfigureWorld)
276    {
277        return par0GuiScreenConfigureWorld.mc;
278    }
279
280    static int func_96271_b(GuiScreenConfigureWorld par0GuiScreenConfigureWorld)
281    {
282        return par0GuiScreenConfigureWorld.field_96287_o;
283    }
284
285    static int func_96274_a(GuiScreenConfigureWorld par0GuiScreenConfigureWorld, int par1)
286    {
287        return par0GuiScreenConfigureWorld.func_96264_a(par1);
288    }
289
290    static int func_96269_c(GuiScreenConfigureWorld par0GuiScreenConfigureWorld)
291    {
292        return par0GuiScreenConfigureWorld.field_96286_n;
293    }
294
295    static McoServer func_96266_d(GuiScreenConfigureWorld par0GuiScreenConfigureWorld)
296    {
297        return par0GuiScreenConfigureWorld.field_96280_b;
298    }
299
300    static int func_96270_b(GuiScreenConfigureWorld par0GuiScreenConfigureWorld, int par1)
301    {
302        return par0GuiScreenConfigureWorld.field_96284_p = par1;
303    }
304
305    static int func_96263_e(GuiScreenConfigureWorld par0GuiScreenConfigureWorld)
306    {
307        return par0GuiScreenConfigureWorld.field_96284_p;
308    }
309
310    static FontRenderer func_96273_f(GuiScreenConfigureWorld par0GuiScreenConfigureWorld)
311    {
312        return par0GuiScreenConfigureWorld.fontRenderer;
313    }
314}