diff --git a/.classpath b/.classpath index 541934c..33dc2b9 100644 --- a/.classpath +++ b/.classpath @@ -3,6 +3,10 @@ - + + + + + diff --git a/MANIFEST.MF b/MANIFEST.MF new file mode 100644 index 0000000..58630c0 --- /dev/null +++ b/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/src/de/sockenklaus/XmlStats/Settings.java b/src/de/sockenklaus/XmlStats/Settings.java new file mode 100644 index 0000000..219a632 --- /dev/null +++ b/src/de/sockenklaus/XmlStats/Settings.java @@ -0,0 +1,46 @@ +package de.sockenklaus.XmlStats; + +import java.io.File; + +import org.bukkit.util.config.Configuration; + +public class Settings { + private static final String configFilename = "config.yml"; + private Configuration conf; + + public Settings(XmlStats xmlStats){ + File f = new File(xmlStats.getDataFolder(), configFilename); + + conf = new Configuration(f); + if(f.exists()){ + conf.load(); + } + else { + conf.setProperty("options.webserver-enabled", false); + conf.setProperty("options.webserver-port", 9123); + conf.setProperty("plugins.stats", true); + conf.setProperty("plugins.users", true); + conf.setProperty("plugins.achievements", false); + conf.setProperty("plugins.economy", false); + conf.save(); + } + } + + public int getInt(String path){ + return conf.getInt(path, -1); + } + public boolean getBoolean(String path){ + return conf.getBoolean(path, false); + } + public String getString(String path){ + return conf.getString(path, ""); + } + public void setProperty(String path, Object value){ + conf.setProperty(path, value); + } + public String getSettingsFilename(){ + return configFilename; + } + + +} diff --git a/src/de/sockenklaus/XmlStats/Settings/Settings.java b/src/de/sockenklaus/XmlStats/Settings/Settings.java deleted file mode 100644 index b76477f..0000000 --- a/src/de/sockenklaus/XmlStats/Settings/Settings.java +++ /dev/null @@ -1,24 +0,0 @@ -package de.sockenklaus.XmlStats.Settings; - -import java.io.File; - -import de.sockenklaus.XmlStats.XmlStats; - -public class Settings { - - public static final String settingsFilename = "XmlStats.conf"; - - public static int xmlStatsPort; - public static boolean xmlStatsEnabled; - - public static void load(XmlStats plugin) { - - SettingsFile properties = new SettingsFile(new File(plugin.getDataFolder(), settingsFilename)); - - xmlStatsPort = properties.getInt("xmlstats-port", 8080, "port of the webserver for xml-access"); - xmlStatsEnabled = properties.getBoolean("xmlstats-enabled", false, "disabled per default to avoid unwanted port-mappings"); - - properties.save(); - } - -} diff --git a/src/de/sockenklaus/XmlStats/Settings/SettingsFile.java b/src/de/sockenklaus/XmlStats/Settings/SettingsFile.java deleted file mode 100644 index 84d21a6..0000000 --- a/src/de/sockenklaus/XmlStats/Settings/SettingsFile.java +++ /dev/null @@ -1,174 +0,0 @@ -package de.sockenklaus.XmlStats.Settings; - -import java.io.*; -import java.util.*; -import java.util.Map.Entry; - -import de.sockenklaus.XmlStats.XmlStats; - -public class SettingsFile { - private HashMap map; - private File file; - private boolean modified; - - public SettingsFile(File file) { - this.file = file; - map = new HashMap(); - Scanner scan; - try { - if (!file.exists()) - file.createNewFile(); - scan = new Scanner(file); - while (scan.hasNextLine()) { - String line = scan.nextLine(); - if (!line.contains("=")) - continue; - if (line.length() == 0) - continue; - if (line.trim().charAt(0) == '#') - continue; - int equals = line.indexOf("="); - int commentIndex = line.length(); - if (line.contains("#")) { - commentIndex = line.indexOf("#"); - } - - String key = line.substring(0, equals).trim(); - if (key.equals("")) - continue; - String value = line.substring(equals + 1, commentIndex).trim(); - String comment = ""; - if (commentIndex < line.length() - 1) { - comment = line.substring(commentIndex + 1, line.length()).trim(); - } - map.put(key, new PropertiesEntry(value, comment)); - } - } catch (FileNotFoundException e) { - XmlStats.LogError("Cannot read file " + file.getName()); - } catch (IOException e) { - XmlStats.LogError("Cannot create file " + file.getName()); - } - } - - public boolean getBoolean(String key, Boolean defaultValue, String defaultComment) { - if (map.containsKey(key)) { - return Boolean.parseBoolean(map.get(key).value); - } else { - map.put(key, new PropertiesEntry(defaultValue.toString(), defaultComment)); - modified = true; - return defaultValue; - } - } - - public boolean getBoolean(String key) { - if (map.containsKey(key)) { - return Boolean.parseBoolean(map.get(key).value); - } - return false; - } - - public void remove(String key) { - map.remove(key); - } - - public String getString(String key, String defaultValue, String defaultComment) { - if (map.containsKey(key)) { - return map.get(key).value; - } else { - map.put(key, new PropertiesEntry(defaultValue.toString(), defaultComment)); - modified = true; - return defaultValue; - } - } - - public int getInt(String key, Integer defaultValue, String defaultComment) { - if (map.containsKey(key)) { - try { - return Integer.parseInt(map.get(key).value); - } catch (Exception e) { - XmlStats.LogWarn("Trying to get Integer from " + key + ": " + map.get(key).value); - return 0; - } - } else { - map.put(key, new PropertiesEntry(defaultValue.toString(), defaultComment)); - modified = true; - return defaultValue; - } - } - - public double getDouble(String key, Double defaultValue, String defaultComment) { - if (map.containsKey(key)) { - try { - return Double.parseDouble(map.get(key).value); - } catch (Exception e) { - XmlStats.LogWarn("Trying to get Double from " + key + ": " + map.get(key).value); - return 0; - } - } else { - map.put(key, new PropertiesEntry(defaultValue.toString(), defaultComment)); - modified = true; - return defaultValue; - } - } - - public void save() { - if (!modified) - return; - BufferedWriter bwriter = null; - FileWriter fwriter = null; - try { - if (!file.exists()) - file.createNewFile(); - fwriter = new FileWriter(file); - bwriter = new BufferedWriter(fwriter); - SortedSet> results = new TreeSet>(new Comparator>() { - @Override - public int compare(Map.Entry a, Map.Entry b) { - // int d = a.getValue().compareTo(b.getValue()); - int d = a.getKey().compareTo(b.getKey()); - return d; - } - - }); - results.addAll(map.entrySet()); - for (Entry entry : results) { - StringBuilder builder = new StringBuilder(); - builder.append(entry.getKey()); - builder.append(" = "); - builder.append(entry.getValue().value); - if (!entry.getValue().comment.equals("")) { - builder.append(" #"); - builder.append(entry.getValue().comment); - } - bwriter.write(builder.toString()); - bwriter.newLine(); - } - bwriter.flush(); - } catch (IOException e) { - XmlStats.LogError("IO Exception with file " + file.getName()); - } finally { - try { - if (bwriter != null) { - bwriter.flush(); - bwriter.close(); - } - if (fwriter != null) { - fwriter.close(); - } - } catch (IOException e) { - XmlStats.LogError("IO Exception with file " + file.getName() + " (on close)"); - } - } - - } - - private class PropertiesEntry { - public String value; - public String comment; - - public PropertiesEntry(String value, String comment) { - this.value = value; - this.comment = comment; - } - } -} \ No newline at end of file diff --git a/src/de/sockenklaus/XmlStats/XmlStats.java b/src/de/sockenklaus/XmlStats/XmlStats.java index 61927af..aae88e2 100644 --- a/src/de/sockenklaus/XmlStats/XmlStats.java +++ b/src/de/sockenklaus/XmlStats/XmlStats.java @@ -8,18 +8,16 @@ import org.bukkit.plugin.java.JavaPlugin; import com.nidefawl.Stats.Stats; -import de.sockenklaus.XmlStats.Settings.Settings; - public class XmlStats extends JavaPlugin { public final static Logger log = Logger.getLogger("Minecraft"); public final static double version = 0.01; - public final static String logprefix = "[XmlStats-" + version + "]"; + public final static String logprefix = "[XmlStats]"; public boolean enabled = false; private static Stats statsPlugin; private static Server serverRef; - public WebServer xmlQueryServer; - + private WebServer xmlQueryServer; + private Settings settings; @Override public void onDisable() { @@ -41,12 +39,12 @@ public class XmlStats extends JavaPlugin { statsPlugin = (Stats)getServer().getPluginManager().getPlugin("Stats"); serverRef = getServer(); - Settings.load(this); + settings = new Settings(this); - if (Settings.xmlStatsEnabled){ + if (settings.getBoolean("options.webserver-enabled")){ if (getServer().getPluginManager().isPluginEnabled("Stats")){ try { - xmlQueryServer = new WebServer(Settings.xmlStatsPort); + xmlQueryServer = new WebServer(settings.getInt("options.webserver-port")); enabled = true; LogInfo("Plugin Enabled"); @@ -62,7 +60,7 @@ public class XmlStats extends JavaPlugin { } } else { - LogError("Plugin ist derzeit in der "+getDataFolder().getPath()+"/"+Settings.settingsFilename+" deaktiviert."); + LogWarn("Webserver ist derzeit in der "+getDataFolder().getPath()+"/"+settings.getSettingsFilename()+" deaktiviert."); }