package dk.thoerup.bukkit.hoeruputils.web; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Set; import java.util.Map; import org.bukkit.Server; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.configuration.file.YamlConfiguration; 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) { return formatTime( Long.parseLong(input) ); } String formatTime(long input) { Date d = new Date( input ); return format.format(d ); } @Override public void onApiEvent(ApiEvent event) { if(!event.path[0].equalsIgnoreCase("webstatus")) { return; } StringBuilder sb = new StringBuilder(); sb.append(" \n"); sb.append(""); sb.append("" + server.getVersion() + "\n"); long mb = 1024*1024; Runtime rt = Runtime.getRuntime(); sb.append("\n"); sb.append("" + rt.freeMemory()/mb + "\n"); sb.append("" + rt.totalMemory()/mb + "\n"); sb.append("" + rt.maxMemory()/mb + "\n"); sb.append("\n"); sb.append("\n"); for (Player p : server.getOnlinePlayers()) { sb.append("\n"); sb.append("" + p.getName() + "\n" ); sb.append("\n"); } sb.append(""); sb.append("\n"); OfflinePlayer playerList[] = server.getOfflinePlayers(); for (OfflinePlayer player : playerList) { long first = player.getFirstPlayed(); long last = player.getLastPlayed(); sb.append("\n"); sb.append("" + player.getName() + "\n" ); sb.append("" + formatTime(first) + "\n"); sb.append("" + formatTime(last) + "\n"); sb.append("\n"); } sb.append("\n"); sb.append("\n"); for (Plugin plugin : server.getPluginManager().getPlugins()) { sb.append("\n"); sb.append("" + plugin.getDescription().getName() + "\n"); sb.append("" + plugin.getDescription().getVersion() + "\n"); sb.append("\n"); } sb.append("\n"); sb.append(""); event.setResponse(sb.toString()); event.setActionTaken(true); } }