diff options
author | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-01-04 00:43:23 +0000 |
---|---|---|
committer | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-01-04 00:43:23 +0000 |
commit | 7b08efd9d975a353cc93329998635db1fea3e402 (patch) | |
tree | d5e09bc4b2a84704ee856820b01d64914d75c90e /src/main/java/net | |
parent | b7f7c3ffb575725127f0cac602357fa7d81b1e4a (diff) | |
download | craftbukkit-7b08efd9d975a353cc93329998635db1fea3e402.tar craftbukkit-7b08efd9d975a353cc93329998635db1fea3e402.tar.gz craftbukkit-7b08efd9d975a353cc93329998635db1fea3e402.tar.lz craftbukkit-7b08efd9d975a353cc93329998635db1fea3e402.tar.xz craftbukkit-7b08efd9d975a353cc93329998635db1fea3e402.zip |
Added command-line arguments, forced nogui
Diffstat (limited to 'src/main/java/net')
-rw-r--r-- | src/main/java/net/minecraft/server/MinecraftServer.java | 18 | ||||
-rw-r--r-- | src/main/java/net/minecraft/server/PropertyManager.java | 92 |
2 files changed, 103 insertions, 7 deletions
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 333e0090..c3b2568c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -11,6 +11,7 @@ import java.util.Iterator; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; +import joptsimple.OptionSet; import org.bukkit.craftbukkit.CraftServer; @@ -37,14 +38,18 @@ implements ICommandListener, Runnable { public boolean n; public CraftServer server; // CraftBukkit + public OptionSet options; // CraftBukkit - public MinecraftServer() { + // CraftBukkit: Added arg "OptionSet options" + public MinecraftServer(final OptionSet options) { o = true; g = false; h = 0; p = new ArrayList<IUpdatePlayerListBox>(); q = Collections.synchronizedList(new ArrayList<ServerCommand>()); new ThreadSleepForever(this); + + this.options = options; // CraftBukkit } // CraftBukkit: added throws UnknownHostException @@ -60,7 +65,7 @@ implements ICommandListener, Runnable { a.warning("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\""); } a.info("Loading properties"); - d = new PropertyManager(new File("server.properties")); + d = new PropertyManager(options); // Craftbukkit String s = d.a("server-ip", ""); l = d.a("online-mode", true); @@ -450,18 +455,17 @@ implements ICommandListener, Runnable { p.add(iupdateplayerlistbox); } - public static void main(String args[]) { + // Craftbukkit start - replaces main(String args[]) + public static void main(final OptionSet options) { try { - MinecraftServer minecraftserver = new MinecraftServer(); + MinecraftServer minecraftserver = new MinecraftServer(options); - if (!java.awt.GraphicsEnvironment.isHeadless() && (args.length <= 0 || !args[0].equals("nogui"))) { - ServerGUI.a(minecraftserver); - } (new ThreadServerApplication("Server thread", minecraftserver)).start(); } catch (Exception exception) { a.log(Level.SEVERE, "Failed to start the minecraft server", exception); } } + // Craftbukkit end public File a(String s) { return new File(s); diff --git a/src/main/java/net/minecraft/server/PropertyManager.java b/src/main/java/net/minecraft/server/PropertyManager.java new file mode 100644 index 00000000..4be80a80 --- /dev/null +++ b/src/main/java/net/minecraft/server/PropertyManager.java @@ -0,0 +1,92 @@ +package net.minecraft.server; + + +import java.io.*; +import java.util.Properties; +import java.util.logging.Level; +import java.util.logging.Logger; +import joptsimple.OptionSet; + + +public class PropertyManager { + + public static Logger a = Logger.getLogger("Minecraft"); + private Properties b; + private File c; + + private OptionSet options = null; // Craftbukkit + + public PropertyManager(File file) { + b = new Properties(); + c = file; + if (file.exists()) { + try { + b.load(new FileInputStream(file)); + } catch (Exception exception) { + a.log(Level.WARNING, (new StringBuilder()).append("Failed to load ").append(file).toString(), exception); + a(); + } + } else { + a.log(Level.WARNING, (new StringBuilder()).append(file).append(" does not exist").toString()); + a(); + } + } + + // Craftbukkit start + public PropertyManager(final OptionSet options) { + this((File)options.valueOf("config")); + + this.options = options; + } + + private <T> T getOverride(String name, T value) { + if ((options != null) && (options.has(name))) { + return (T)options.valueOf(name); + } + + return value; + } + // Craftbukkit end + + public void a() { + a.log(Level.INFO, "Generating new properties file"); + b(); + } + + public void b() { + try { + b.store(new FileOutputStream(c), "Minecraft server properties"); + } catch (Exception exception) { + a.log(Level.WARNING, (new StringBuilder()).append("Failed to save ").append(c).toString(), exception); + a(); + } + } + + public String a(String s, String s1) { + if (!b.containsKey(s)) { + b.setProperty(s, getOverride(s, s1)); // Craftbukkit + b(); + } + return getOverride(s, b.getProperty(s, s1)); // Craftbukkit + } + + public int a(String s, int i) { + try { + return getOverride(s, Integer.parseInt(a(s, String.valueOf(i)))); // Craftbukkit + } catch (Exception exception) { + b.setProperty(s, getOverride(s, i).toString()); // Craftbukkit + } + return getOverride(s, i); // Craftbukkit + } + + public boolean a(String s, boolean flag) { + try { + return getOverride(s, Boolean.parseBoolean(a(s, String.valueOf(flag)))); // Craftbukkit + } catch (Exception exception) { + b.setProperty(s, getOverride(s, flag).toString()); // Craftbukkit + } + return getOverride(s, flag); // Craftbukkit + } + +} + |