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) { if(event.path[0].equalsIgnoreCase("webstatus")) { StringBuilder sb = new StringBuilder(); //out.writeBytes("Server: " + server.getServerName() + "\n"); sb.append("Version: " + server.getVersion() + "\n\n"); sb.append("--- Online players ---\n"); 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()) { sb.append( plugin.getDescription().getName() + " " + plugin.getDescription().getVersion() + "\n"); } event.setResponse(sb.toString()); event.setActionTaken(true); } } }