summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/PropertyManager.java
diff options
context:
space:
mode:
authorDinnerbone <dinnerbone@dinnerbone.com>2011-01-04 00:43:23 +0000
committerDinnerbone <dinnerbone@dinnerbone.com>2011-01-04 00:43:23 +0000
commit7b08efd9d975a353cc93329998635db1fea3e402 (patch)
treed5e09bc4b2a84704ee856820b01d64914d75c90e /src/main/java/net/minecraft/server/PropertyManager.java
parentb7f7c3ffb575725127f0cac602357fa7d81b1e4a (diff)
downloadcraftbukkit-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/minecraft/server/PropertyManager.java')
-rw-r--r--src/main/java/net/minecraft/server/PropertyManager.java92
1 files changed, 92 insertions, 0 deletions
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
+ }
+
+}
+