Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.dedserver.dedgui.panels;
- import java.awt.BorderLayout;
- import java.awt.Component;
- import java.awt.Panel;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.sql.Statement;
- import java.util.Properties;
- import javax.swing.BoxLayout;
- import javax.swing.JButton;
- import javax.swing.JComboBox;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JTabbedPane;
- import javax.swing.JTextField;
- import com.dedserver.dedgui.Functions;
- import com.dedserver.dedgui.Gui;
- import com.dedserver.dedgui.servercontrol.ServerControl;
- public class ServerPanel {
- private static JTextField gem;
- private static JTextField gold;
- private static JTextField elixir;
- private static JTextField de;
- private static JTextField s;
- private static JComboBox<?> m;
- private static JTextField n;
- private static JComboBox<?> dns;
- private static JComboBox<?> dnsmm;
- private static JButton save;
- private String newGems;
- private String newGold;
- private String newDE;
- private String newElixir;
- private String saveM;
- private String interval;
- private String nameChange;
- private String dnsm;
- private String dnsen;
- JTabbedPane tabbedPane = Gui.getTabbedPane();
- Statement stat = Gui.getStat();
- private JPanel config;
- private static JPanel server;
- /**
- * initial panel set up and take user input
- * @throws IOException
- */
- public ServerPanel() throws IOException{
- server = new JPanel();
- tabbedPane.addTab("Manage Server", server);
- server.setLayout(new BorderLayout(0, 0));
- new ServerControl();
- Component lblThisCanBe = Functions.makeTextPanel("<html><center>This can be used to edit server configurations and manage whether the server is running.<br />You can run some server commands and start/stop the server by pressing the Server Control button.</center></html>");
- server.add(lblThisCanBe, BorderLayout.NORTH);
- InputStream in = new FileInputStream("config.dedserver");
- Properties p = new Properties();
- p.load(in);
- in.close();
- String howMuchGold = p.getProperty("startingGold");
- String howMuchDE = p.getProperty("startingDarkElixir");
- String howMuchGems = p.getProperty("startingGems");
- String howMuchElixir = p.getProperty("startingElixir");
- String saveInt = p.getProperty("saveInterval");
- String saveMethod = p.getProperty("saveMethod");
- String mNC = p.getProperty("maxNameChanges");
- String dnse = p.getProperty("enableDns");
- String dnsmo = p.getProperty("serverMode");
- config = new JPanel();
- server.add(config, BorderLayout.CENTER);
- config.setLayout(new BoxLayout(config, BoxLayout.PAGE_AXIS));
- Panel panel_1 = new Panel();
- config.add(panel_1);
- JLabel geml = new JLabel("Starting Gems: ");
- panel_1.add(geml);
- gem = new JTextField(howMuchGems);
- panel_1.add(gem);
- gem.setMaximumSize(gem.getPreferredSize() );
- gem.setColumns(10);
- //gold
- Panel panel_2 = new Panel();
- config.add(panel_2);
- JLabel goldl = new JLabel("Starting Gold: ");
- panel_2.add(goldl);
- gold = new JTextField(howMuchGold);
- panel_2.add(gold);
- gold.setMaximumSize(gem.getPreferredSize() );
- gold.setColumns(10);
- //elixir
- Panel panel_3 = new Panel();
- config.add(panel_3);
- JLabel elixirl = new JLabel("Starting Elixir: ");
- panel_3.add(elixirl);
- elixir = new JTextField(howMuchElixir);
- panel_3.add(elixir);
- elixir.setMaximumSize(gem.getPreferredSize() );
- elixir.setColumns(10);
- //dark elixir
- Panel panel_4 = new Panel();
- config.add(panel_4);
- JLabel del = new JLabel("Starting DE: ");
- panel_4.add(del);
- de = new JTextField(howMuchDE);
- panel_4.add(de);
- de.setMaximumSize(gem.getPreferredSize() );
- de.setColumns(10);
- //db
- Panel panel_5 = new Panel();
- config.add(panel_5);
- JLabel ml = new JLabel("Save Method: ");
- panel_5.add(ml);
- String[] petStrings = { "h2", "h2-server", "none" };
- //Create the combo box, select item at index 4.
- //Indices start at 0, so 4 specifies the pig.
- m = new JComboBox<Object>(petStrings);
- m.setSelectedItem(saveMethod);
- m.addActionListener(m);
- panel_5.add(m);
- m.setMaximumSize(gem.getPreferredSize() );
- //savei
- Panel panel_6 = new Panel();
- config.add(panel_6);
- JLabel sl = new JLabel("Save Interval (milliseconds): ");
- panel_6.add(sl);
- s = new JTextField(saveInt);
- panel_6.add(s);
- s.setMaximumSize(gem.getPreferredSize() );
- s.setColumns(10);
- //name changes
- Panel panel_8 = new Panel();
- config.add(panel_8);
- JLabel nl = new JLabel("Max Name Changes (0 to disable): ");
- panel_8.add(nl);
- n = new JTextField(mNC);
- panel_8.add(n);
- n.setMaximumSize(gem.getPreferredSize() );
- n.setColumns(5);
- //dnsenabled
- Panel panel_9 = new Panel();
- config.add(panel_9);
- JLabel dnsl = new JLabel("DNS Enabled: ");
- panel_9.add(dnsl);
- String[] dnsS = { "true", "false" };
- dns = new JComboBox<Object>(dnsS);
- dns.setSelectedItem(dnse);
- dns.addActionListener(dns);
- panel_9.add(dns);
- dns.setMaximumSize(gem.getPreferredSize() );
- //dnsmode
- Panel panel_10 = new Panel();
- config.add(panel_10);
- JLabel dnsml = new JLabel("DNS Server Mode: ");
- panel_10.add(dnsml);
- String[] dnsm = { "local", "remote" };
- dnsmm = new JComboBox<Object>(dnsm);
- dnsmm.setSelectedItem(dnsmo);
- dnsmm.addActionListener(dnsmm);
- panel_10.add(dnsmm);
- dnsmm.setMaximumSize(gem.getPreferredSize());
- JPanel panel_7= new JPanel();
- config.add(panel_7);
- save = new JButton("Save");
- panel_7.add(save);
- save.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent arg0) {
- errorCheck();
- }
- });
- }
- /**
- * checks for errors in the values entered
- */
- public void errorCheck(){
- newGems = gem.getText();
- newGold = gold.getText();
- newElixir = elixir.getText();
- newDE = de.getText();
- interval = s.getText();
- saveM = (String) m.getSelectedItem();
- nameChange = n.getText();
- dnsen = (String) dns.getSelectedItem();
- dnsm = (String) dnsmm.getSelectedItem();
- nameChange = Functions.checkValues(nameChange, "1", "name change");
- interval = Functions.checkValues(interval, "60000", "save interval");
- newGems = Functions.checkValues(newGems, "1000000000", "Starting Gems");
- newGold = Functions.checkValues(newGold, "1000000000", "Starting Gold");
- newElixir = Functions.checkValues(newElixir, "1000000000", "Starting Elixir");
- newDE = Functions.checkValues(newDE, "1000000000", "Starting Dark Elixir");
- saveValues();
- }
- /**
- * saves the values to config.dedserver
- */
- public void saveValues(){
- try {
- Properties props = new Properties();
- props.setProperty("startingGems", newGems);
- props.setProperty("startingGold", newGold);
- props.setProperty("startingDarkElixir", newDE);
- props.setProperty("startingElixir", newElixir);
- props.setProperty("saveMethod", saveM);
- props.setProperty("saveInterval", interval);
- props.setProperty("maxNameChanges", nameChange);
- props.setProperty("serverMode", dnsm);
- props.setProperty("enableDns", dnsen);
- File f = new File("config.dedserver");
- OutputStream out = new FileOutputStream(f);
- props.store(out, "");
- JOptionPane.showMessageDialog(null, "Saved Config Values!");
- }
- catch (Exception e ) {
- e.printStackTrace();
- JOptionPane.showMessageDialog(IgnPanel.ign, "Error while saving config values. Ensure the config.dedserver file is in the same directory as this and is editable.");
- }
- }
- public static JPanel getServer(){
- return server;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement