--- miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/web/StatusListener.java 2011/12/22 14:45:38 1670
+++ miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/web/StatusListener.java 2012/01/27 12:21:27 1684
@@ -22,10 +22,15 @@
Server server;
Configuration loginConfig;
+ Configuration homeConfig;
- public StatusListener(Server server, Configuration loginConfig) {
+ long cachedTime = 0;
+ String cachedXml = "";
+
+ public StatusListener(Server server, Configuration loginConfig, Configuration homeConfig) {
this.server = server;
this.loginConfig = loginConfig;
+ this.homeConfig = homeConfig;
}
String formatTime(String input) {
@@ -41,6 +46,27 @@
if(!event.path[0].equalsIgnoreCase("webstatus")) {
return;
}
+
+ String xml;
+
+ synchronized(this) { //is this necessary ?
+ long now = System.currentTimeMillis();
+ if ( (now-cachedTime) > 5000) {
+ xml = buildXML();
+ cachedXml = xml;
+ cachedTime = now;
+ } else {
+ xml = cachedXml;
+ }
+ }
+
+
+ event.setResponse(xml);
+ event.setActionTaken(true);
+ }
+
+ private String buildXML() {
+
StringBuilder sb = new StringBuilder();
sb.append(" \n");
@@ -88,8 +114,18 @@
sb.append("" + loc.getBlockY() + "");
sb.append("" + loc.getBlockZ() + "");
sb.append("" + loc.getWorld().getName() + "");
- sb.append("");
-
+ sb.append("");
+ }
+
+ String homeWorld = homeConfig.getString( player.getName() + ".world");
+ if (homeWorld != null) {
+ sb.append("");
+ sb.append("" + homeWorld + "\n");
+ sb.append("" + (int)homeConfig.getDouble(player.getName() + ".x") + "\n");
+ sb.append("" + (int)homeConfig.getDouble(player.getName() + ".y") + "\n");
+ sb.append("" + (int)homeConfig.getDouble(player.getName() + ".z") + "\n");
+ sb.append("");
+
}
@@ -109,8 +145,8 @@
sb.append("\n");
sb.append("");
- event.setResponse(sb.toString());
- event.setActionTaken(true);
+
+ return sb.toString();
}