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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1668 - (hide annotations) (download)
Thu Dec 22 11:25:17 2011 UTC (12 years, 5 months ago) by torben
File size: 2789 byte(s)
merge offline/online players to 1 list
1 torben 1241 package dk.thoerup.bukkit.hoeruputils.web;
2    
3 torben 1494 import java.io.File;
4     import java.text.SimpleDateFormat;
5     import java.util.Date;
6 torben 1614 import java.util.Set;
7 torben 1494 import java.util.Map;
8 torben 1241 import org.bukkit.Server;
9 torben 1664 import org.bukkit.OfflinePlayer;
10 torben 1241 import org.bukkit.entity.Player;
11     import org.bukkit.plugin.Plugin;
12 torben 1614
13 torben 1667 import org.bukkit.configuration.Configuration;
14 torben 1614
15 torben 1241 import org.kokakiwi.apicraft.events.ApiEvent;
16     import org.kokakiwi.apicraft.events.ApiListener;
17    
18     public class StatusListener extends ApiListener {
19    
20 torben 1495 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
21 torben 1494
22 torben 1241 Server server;
23 torben 1667 Configuration loginConfig;
24    
25     public StatusListener(Server server, Configuration loginConfig) {
26     this.server = server;
27     this.loginConfig = loginConfig;
28 torben 1241 }
29 torben 1494
30     String formatTime(String input) {
31 torben 1664 return formatTime( Long.parseLong(input) );
32     }
33     String formatTime(long input) {
34     Date d = new Date( input );
35 torben 1494 return format.format(d );
36     }
37 torben 1241
38     @Override
39     public void onApiEvent(ApiEvent event) {
40 torben 1666 if(!event.path[0].equalsIgnoreCase("webstatus")) {
41     return;
42     }
43     StringBuilder sb = new StringBuilder();
44 torben 1589
45 torben 1666 sb.append("<?xml version=\"1.0\"?> \n");
46     sb.append("<serverinfo>");
47 torben 1664
48 torben 1666 sb.append("<version>" + server.getVersion() + "</version>\n");
49 torben 1494
50 torben 1666 long mb = 1024*1024;
51     Runtime rt = Runtime.getRuntime();
52     sb.append("<memory>\n");
53     sb.append("<free>" + rt.freeMemory()/mb + "</free>\n");
54     sb.append("<total>" + rt.totalMemory()/mb + "</total>\n");
55     sb.append("<max>" + rt.maxMemory()/mb + "</max>\n");
56     sb.append("</memory>\n");
57 torben 1494
58 torben 1614
59 torben 1667 long now = System.currentTimeMillis();
60    
61 torben 1668 sb.append("<players>\n");
62 torben 1666 OfflinePlayer playerList[] = server.getOfflinePlayers();
63     for (OfflinePlayer player : playerList) {
64     long first = player.getFirstPlayed();
65     long last = player.getLastPlayed();
66 torben 1664
67 torben 1668 long login = loginConfig.getLong( player.getName() + ".logintime", -1);
68     long elapsed = (login>-1 ? (now-login) / 1000 : -1);
69    
70     sb.append("<player>\n");
71 torben 1666 sb.append("<name>" + player.getName() + "</name>\n" );
72 torben 1668 sb.append("<online>" + (player.isOnline() ? 1 : 0 ) + "</online>\n" );
73     sb.append("<sessionlength>" + elapsed + "</sessionlength>\n" );
74    
75 torben 1666 sb.append("<firstseen>" + formatTime(first) + "</firstseen>\n");
76     sb.append("<lastseen>" + formatTime(last) + "</lastseen>\n");
77 torben 1668 sb.append("</player>\n");
78 torben 1666 }
79 torben 1668 sb.append("</players>\n");
80 torben 1494
81 torben 1666 sb.append("<plugins>\n");
82     for (Plugin plugin : server.getPluginManager().getPlugins()) {
83     sb.append("<plugin>\n");
84     sb.append("<name>" + plugin.getDescription().getName() + "</name>\n");
85     sb.append("<version>" + plugin.getDescription().getVersion() + "</version>\n");
86     sb.append("</plugin>\n");
87     }
88     sb.append("</plugins>\n");
89 torben 1241
90 torben 1666 sb.append("</serverinfo>");
91     event.setResponse(sb.toString());
92     event.setActionTaken(true);
93    
94 torben 1241 }
95    
96     }

  ViewVC Help
Powered by ViewVC 1.1.20