/[projects]/miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/web/StatusListener.java
ViewVC logotype

Contents of /miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/web/StatusListener.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1614 - (show annotations) (download)
Thu Oct 20 17:06:20 2011 UTC (12 years, 7 months ago) by torben
File size: 2491 byte(s)
switch to bukkit's new configuration api
1 package dk.thoerup.bukkit.hoeruputils.web;
2
3 import java.io.File;
4 import java.text.SimpleDateFormat;
5 import java.util.Date;
6 import java.util.Set;
7 import java.util.Map;
8 import org.bukkit.Server;
9 import org.bukkit.entity.Player;
10 import org.bukkit.plugin.Plugin;
11
12 import org.bukkit.configuration.file.YamlConfiguration;
13
14 import org.kokakiwi.apicraft.events.ApiEvent;
15 import org.kokakiwi.apicraft.events.ApiListener;
16
17 public class StatusListener extends ApiListener {
18
19 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
20
21 Server server;
22 public StatusListener(Server server) {
23 this.server = server;
24 }
25
26 String formatTime(String input) {
27 Date d = new Date( Long.parseLong(input) );
28 return format.format(d );
29 }
30
31 @Override
32 public void onApiEvent(ApiEvent event) {
33 if(event.path[0].equalsIgnoreCase("webstatus")) {
34 StringBuilder sb = new StringBuilder();
35
36 //out.writeBytes("Server: " + server.getServerName() + "\n");
37 sb.append("Version: " + server.getVersion() + "\n");
38
39 long mb = 1024*1024;
40 Runtime rt = Runtime.getRuntime();
41 sb.append("VM Memory, free: " + rt.freeMemory()/mb + ", total:" + rt.totalMemory()/mb + ", max:" + rt.maxMemory()/mb + "\n\n");
42
43 sb.append("--- Online players ---\n");
44 for (Player p : server.getOnlinePlayers()) {
45 sb.append( p.getName() + "\n");
46 }
47 sb.append("\n");
48
49 sb.append("--- Last seen players/offline ---\n");
50 File configFile = new File("./plugins/LastSeen/times.yml");
51 if (configFile.exists() ) {
52
53 YamlConfiguration config = new YamlConfiguration();
54 try {
55 config.load(configFile);
56 } catch (Exception e) {
57 event.setResponse(e.toString() );
58 event.setActionTaken(true);
59 return;
60 }
61
62 Set<String> keys = config.getKeys(false);
63 if (keys != null) {
64 for (String key : keys) {
65 if (server.getPlayer(key) != null) // player is online
66 continue;
67
68 String last = config.getString( key + ".logout");
69 sb.append("" + key + ": " + formatTime(last) + "\n") ;
70 }
71 } else {
72 sb.append("no players found\n");
73 }
74 } else {
75 sb.append("could not find LastSeen/times.yml\n");
76 }
77 sb.append("\n");
78
79
80 sb.append("--- Plugins ---\n");
81 for (Plugin plugin : server.getPluginManager().getPlugins()) {
82 sb.append( plugin.getDescription().getName() + " " + plugin.getDescription().getVersion() + "\n");
83 }
84
85 event.setResponse(sb.toString());
86 event.setActionTaken(true);
87 }
88 }
89
90 }

  ViewVC Help
Powered by ViewVC 1.1.20