Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 90 lines 2.8 kB view raw
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}