diff --git a/README.md b/README.md index 8730f05..d609a4c 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,14 @@ To install the plugin, simply place the compiled **XmlStats.jar** in your server ## Usage +### Game side + +At this time of the development you are only able to reload the plugin without reloading the whole server: + + /xmlstats reload + +### Browser side + Afterwards you can access the following xml files: For a list of all known players on your server: diff --git a/build.xml b/build.xml index bf8b4ac..deb18cb 100644 --- a/build.xml +++ b/build.xml @@ -8,6 +8,7 @@ + @@ -20,17 +21,18 @@ - - - - name: ${name} -main: de.sockenklaus.XmlStats.XmlStats -version: ${version}-b${build.number} -author: sockenklaus + + + + + + + + + - diff --git a/resources/plugin.yml b/resources/plugin.yml new file mode 100644 index 0000000..f1c9868 --- /dev/null +++ b/resources/plugin.yml @@ -0,0 +1,8 @@ +name: @NAME@ +main: de.@AUTHOR@.@NAME@.@NAME@ +version: @VERSION@ +author: @AUTHOR@ +commands: + xmlstats: + description: The basic command. + usage: / [reload] \ No newline at end of file diff --git a/src/de/sockenklaus/XmlStats/Webserver.java b/src/de/sockenklaus/XmlStats/Webserver.java index 285cd32..ba6e708 100644 --- a/src/de/sockenklaus/XmlStats/Webserver.java +++ b/src/de/sockenklaus/XmlStats/Webserver.java @@ -25,7 +25,6 @@ import de.sockenklaus.XmlStats.XmlWorkers.*; /** * The Class WebServer. */ -@SuppressWarnings("restriction") public class Webserver { private InetSocketAddress address; diff --git a/src/de/sockenklaus/XmlStats/XmlStats.java b/src/de/sockenklaus/XmlStats/XmlStats.java index 1725606..6077706 100644 --- a/src/de/sockenklaus/XmlStats/XmlStats.java +++ b/src/de/sockenklaus/XmlStats/XmlStats.java @@ -17,6 +17,8 @@ package de.sockenklaus.XmlStats; import java.util.logging.Level; import java.util.logging.Logger; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; import org.bukkit.event.Event.Priority; import org.bukkit.event.Event.Type; import org.bukkit.plugin.Plugin; @@ -45,6 +47,8 @@ public class XmlStats extends JavaPlugin { if(this.enabled && webserverTemp.isRunning()){ this.enabled = false; + + XmlStatsRegistry.flush(); webserverTemp.stop(); @@ -126,6 +130,11 @@ public class XmlStats extends JavaPlugin { log.log(Level.WARNING, logprefix + " "+ Message); } + /** + * Log debug. + * + * @param Message the message + */ public static void LogDebug(String Message){ Settings settingsTemp = (Settings)XmlStatsRegistry.get("settings"); if(settingsTemp.getBoolean("options.verbose-enabled")){ @@ -133,6 +142,9 @@ public class XmlStats extends JavaPlugin { } } + /** + * Hook plugins. + */ protected void hookPlugins(){ Plugin StatsTemp = getServer().getPluginManager().getPlugin("Stats"); Plugin iConomyTemp = getServer().getPluginManager().getPlugin("iConomy"); @@ -156,6 +168,12 @@ public class XmlStats extends JavaPlugin { LogError("iConomy not found! Can't hook into it."); } } + + /** + * Checks if is stats hooked. + * + * @return true, if is stats hooked + */ public static boolean isStatsHooked(){ Stats StatsTemp = (Stats)XmlStatsRegistry.get("stats"); @@ -165,6 +183,11 @@ public class XmlStats extends JavaPlugin { return false; } + /** + * Checks if is i conomy hooked. + * + * @return true, if is i conomy hooked + */ public static boolean isiConomyHooked(){ iConomy iConomyTemp = (iConomy)XmlStatsRegistry.get("iconomy"); @@ -174,10 +197,39 @@ public class XmlStats extends JavaPlugin { return false; } + /** + * Register events. + */ private void registerEvents(){ XmlStatsServerListener listener = new XmlStatsServerListener(this); getServer().getPluginManager().registerEvent(Type.PLUGIN_ENABLE, listener, Priority.Monitor, this); getServer().getPluginManager().registerEvent(Type.PLUGIN_DISABLE, listener, Priority.Monitor, this); } + + /* (non-Javadoc) + * @see org.bukkit.plugin.java.JavaPlugin#onCommand(org.bukkit.command.CommandSender, org.bukkit.command.Command, java.lang.String, java.lang.String[]) + */ + public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){ + + if(commandLabel.equalsIgnoreCase("xmlstats")){ + if(sender.isOp() && args.length == 1 && args[0].equalsIgnoreCase("reload")){ + sender.sendMessage("Reloading the XmlStats plugin..."); + LogInfo("Reloading the XmlStats plugin..."); + this.reload(); + return true; + } + } + + return false; + } + + /** + * Reload. + */ + private void reload() { + this.onDisable(); + this.onEnable(); + + } } diff --git a/src/de/sockenklaus/XmlStats/XmlStatsRegistry.java b/src/de/sockenklaus/XmlStats/XmlStatsRegistry.java index c13bf08..ebb5668 100644 --- a/src/de/sockenklaus/XmlStats/XmlStatsRegistry.java +++ b/src/de/sockenklaus/XmlStats/XmlStatsRegistry.java @@ -5,18 +5,29 @@ package de.sockenklaus.XmlStats; import java.util.HashMap; +// TODO: Auto-generated Javadoc /** - * @author socrates + * The Class XmlStatsRegistry. * + * @author socrates */ public class XmlStatsRegistry { private HashMap register = null; private static XmlStatsRegistry instance = null; + /** + * Instantiates a new xml stats registry. + */ private XmlStatsRegistry(){ register = new HashMap(); } + /** + * Put. + * + * @param key the key + * @param value the value + */ public static void put(String key, Object value){ if(instance == null){ instance = new XmlStatsRegistry(); @@ -24,10 +35,23 @@ public class XmlStatsRegistry { instance.register.put(key, value); } + /** + * Get. + * + * @param key the key + * @return the object + */ static public Object get(String key){ if(instance == null){ instance = new XmlStatsRegistry(); } return instance.register.get(key); } + + /** + * Flush. + */ + public static void flush(){ + instance = null; + } } diff --git a/src/plugin.yml b/src/plugin.yml deleted file mode 100644 index 747bfac..0000000 --- a/src/plugin.yml +++ /dev/null @@ -1,4 +0,0 @@ -name: XmlStats -main: de.sockenklaus.XmlStats.XmlStats -version: 0.1-b20 -author: sockenklaus \ No newline at end of file