--- miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/web/StatusListener.java 2011/12/23 09:16:12 1672 +++ miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/web/StatusListener.java 2012/03/21 17:19:31 1761 @@ -13,10 +13,14 @@ import org.bukkit.configuration.Configuration; -import org.kokakiwi.apicraft.events.ApiEvent; -import org.kokakiwi.apicraft.events.ApiListener; +/*import org.kokakiwi.apicraft.events.ApiEvent; +import org.kokakiwi.apicraft.events.ApiListener;*/ +import de.codeinfection.quickwango.ApiBukkit.ApiBukkit; +import de.codeinfection.quickwango.ApiBukkit.ApiServer.*; -public class StatusListener extends ApiListener { + +@Controller( name = "webstatus", authenticate = false, serializer = "plain" ) +public class StatusListener extends ApiController { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -27,7 +31,10 @@ long cachedTime = 0; String cachedXml = ""; - public StatusListener(Server server, Configuration loginConfig, Configuration homeConfig) { + public StatusListener(Plugin plugin, Server server, Configuration loginConfig, Configuration homeConfig) { + super( new de.codeinfection.quickwango.Abstraction.Implementations.Bukkit.BukkitPlugin(plugin) ); + //super( new de.codeinfection.quickwango.ApiBukkit.Abstraction.Implementations.Bukkit.BukkitPlugin(plugin) ); + this.server = server; this.loginConfig = loginConfig; this.homeConfig = homeConfig; @@ -42,24 +49,29 @@ } @Override - public void onApiEvent(ApiEvent event) { - if(!event.path[0].equalsIgnoreCase("webstatus")) { + public void defaultAction(String action, ApiRequest request, ApiResponse response) { +/* if(!event.path[0].equalsIgnoreCase("webstatus")) { return; - } + }*/ String xml; - long now = System.currentTimeMillis(); - if ( (now-cachedTime) > 5000) { - xml = buildXML(); - cachedXml = xml; - cachedTime = now; - } else { - xml = cachedXml; - } + + 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); +/* event.setResponse(xml); + event.setActionTaken(true);*/ + + response.setContent( xml); } private String buildXML() {