--- miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/web/StatusListener.java 2011/03/23 17:38:26 1241 +++ miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/web/StatusListener.java 2011/08/16 07:44:12 1589 @@ -1,17 +1,31 @@ package dk.thoerup.bukkit.hoeruputils.web; +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Map; import org.bukkit.Server; +import org.bukkit.util.config.ConfigurationNode; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; +import org.bukkit.util.config.Configuration; import org.kokakiwi.apicraft.events.ApiEvent; import org.kokakiwi.apicraft.events.ApiListener; public class StatusListener extends ApiListener { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Server server; public StatusListener(Server server) { this.server = server; } + + String formatTime(String input) { + Date d = new Date( Long.parseLong(input) ); + return format.format(d ); + } @Override public void onApiEvent(ApiEvent event) { @@ -19,12 +33,41 @@ StringBuilder sb = new StringBuilder(); //out.writeBytes("Server: " + server.getServerName() + "\n"); - sb.append("Version: " + server.getVersion() + "\n\n"); + sb.append("Version: " + server.getVersion() + "\n"); + + long mb = 1024*1024; + Runtime rt = Runtime.getRuntime(); + sb.append("VM Memory, free: " + rt.freeMemory()/mb + ", total:" + rt.totalMemory()/mb + ", max:" + rt.maxMemory()/mb + "\n\n"); sb.append("--- Online players ---\n"); for (Player p : server.getOnlinePlayers()) { sb.append( p.getName() + "\n"); } + sb.append("\n"); + + sb.append("--- Last seen players/offline ---\n"); + File configFile = new File("./plugins/LastSeen/times.yml"); + if (configFile.exists() ) { + Configuration config = new Configuration(configFile); + config.load(); + + List keys = config.getKeys(null); + if (keys != null) { + for (String key : keys) { + if (server.getPlayer(key) != null) // player is online + continue; + + String last = config.getString( key + ".logout"); + sb.append("" + key + ": " + formatTime(last) + "\n") ; + } + } else { + sb.append("no players found\n"); + } + } else { + sb.append("could not find LastSeen/times.yml\n"); + } + sb.append("\n"); + sb.append("--- Plugins ---\n"); for (Plugin plugin : server.getPluginManager().getPlugins()) {