--- miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/web/StatusListener.java 2012/03/21 17:04:29 1760 +++ miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/web/StatusListener.java 2015/03/09 11:56:37 2428 @@ -1,26 +1,23 @@ package dk.thoerup.bukkit.hoeruputils.web; -import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.net.HttpURLConnection; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.Set; -import java.util.Map; + import org.bukkit.Location; -import org.bukkit.Server; import org.bukkit.OfflinePlayer; +import org.bukkit.Server; +import org.bukkit.configuration.Configuration; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; -import org.bukkit.configuration.Configuration; - -/*import org.kokakiwi.apicraft.events.ApiEvent; -import org.kokakiwi.apicraft.events.ApiListener;*/ -import de.codeinfection.quickwango.ApiBukkit.ApiBukkit; -import de.codeinfection.quickwango.ApiBukkit.ApiServer.*; +import com.sun.net.httpserver.HttpExchange; +import com.sun.net.httpserver.HttpHandler; -@Controller( name = "webstatus", authenticate = false, serializer = "plain" ) -public class StatusListener extends ApiController { +public class StatusListener implements HttpHandler{ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -32,8 +29,6 @@ String cachedXml = ""; 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; @@ -49,10 +44,7 @@ } @Override - public void defaultAction(String action, ApiRequest request, ApiResponse response) { -/* if(!event.path[0].equalsIgnoreCase("webstatus")) { - return; - }*/ + public void handle(HttpExchange http) throws IOException { String xml; @@ -68,10 +60,13 @@ } -/* event.setResponse(xml); - event.setActionTaken(true);*/ - - response.setContent( xml); + byte bytes[] = xml.getBytes(); + http.getResponseHeaders().add("Content-Type", "text/plain"); + http.sendResponseHeaders(HttpURLConnection.HTTP_OK, bytes.length ); + final OutputStream os = http.getResponseBody(); + os.write(bytes); + os.close(); + http.close(); } private String buildXML() { @@ -103,6 +98,7 @@ sb.append("\n"); sb.append("" + player.getName() + "\n" ); + sb.append("" + player.getUniqueId() + "\n" ); sb.append("" + formatTime(first) + "\n"); sb.append("" + formatTime(last) + "\n"); @@ -113,7 +109,7 @@ long login = loginConfig.getLong( player.getName() + ".logintime", -1); long elapsed = (login>-1 ? (now-login) / 1000 : -1); - Player p2 = server.getPlayer( player.getName() ); + Player p2 = server.getPlayer( player.getUniqueId() ); Location loc = p2.getLocation(); sb.append("" + elapsed + "\n" );