--- miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/web/StatusListener.java 2011/06/01 21:32:12 1493 +++ miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/web/StatusListener.java 2011/06/03 11:25:13 1494 @@ -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) { @@ -25,6 +39,30 @@ for (Player p : server.getOnlinePlayers()) { sb.append( p.getName() + "\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("--- Plugins ---\n"); for (Plugin plugin : server.getPluginManager().getPlugins()) {