Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
1package net.minecraft.server;
2
3import javax.swing.*;
4import javax.swing.border.EtchedBorder;
5import javax.swing.border.TitledBorder;
6import java.awt.*;
7import java.util.logging.Logger;
8
9public class ServerGUI extends JComponent implements ICommandListener {
10
11 public static Logger a = Logger.getLogger("Minecraft");
12 private MinecraftServer b;
13
14 public static void a(MinecraftServer minecraftserver) {
15 try {
16 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
17 } catch (Exception exception) {
18 ;
19 }
20
21 ServerGUI servergui = new ServerGUI(minecraftserver);
22 JFrame jframe = new JFrame("Minecraft server");
23
24 jframe.add(servergui);
25 jframe.pack();
26 jframe.setLocationRelativeTo((Component) null);
27 jframe.setVisible(true);
28 jframe.addWindowListener(new ServerWindowAdapter(minecraftserver));
29 }
30
31 public ServerGUI(MinecraftServer minecraftserver) {
32 this.b = minecraftserver;
33 this.setPreferredSize(new Dimension(854, 480));
34 this.setLayout(new BorderLayout());
35
36 try {
37 this.add(this.c(), "Center");
38 this.add(this.a(), "West");
39 } catch (Exception exception) {
40 exception.printStackTrace();
41 }
42 }
43
44 private JComponent a() {
45 JPanel jpanel = new JPanel(new BorderLayout());
46
47 jpanel.add(new GuiStatsComponent(), "North");
48 jpanel.add(this.b(), "Center");
49 jpanel.setBorder(new TitledBorder(new EtchedBorder(), "Stats"));
50 return jpanel;
51 }
52
53 private JComponent b() {
54 PlayerListBox playerlistbox = new PlayerListBox(this.b);
55 JScrollPane jscrollpane = new JScrollPane(playerlistbox, 22, 30);
56
57 jscrollpane.setBorder(new TitledBorder(new EtchedBorder(), "Players"));
58 return jscrollpane;
59 }
60
61 private JComponent c() {
62 JPanel jpanel = new JPanel(new BorderLayout());
63 JTextArea jtextarea = new JTextArea();
64
65 a.addHandler(new GuiLogOutputHandler(jtextarea));
66 JScrollPane jscrollpane = new JScrollPane(jtextarea, 22, 30);
67
68 jtextarea.setEditable(false);
69 JTextField jtextfield = new JTextField();
70
71 jtextfield.addActionListener(new ServerGuiCommandListener(this, jtextfield));
72 jtextarea.addFocusListener(new ServerGuiFocusAdapter(this));
73 jpanel.add(jscrollpane, "Center");
74 jpanel.add(jtextfield, "South");
75 jpanel.setBorder(new TitledBorder(new EtchedBorder(), "Log and chat"));
76 return jpanel;
77 }
78
79 public void sendMessage(String s) {
80 a.info(s);
81 }
82
83 public String getName() {
84 return "CONSOLE";
85 }
86
87 static MinecraftServer a(ServerGUI servergui) {
88 return servergui.b;
89 }
90}