/[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 1614 - (hide 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 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     import org.bukkit.entity.Player;
10     import org.bukkit.plugin.Plugin;
11 torben 1614
12     import org.bukkit.configuration.file.YamlConfiguration;
13    
14 torben 1241 import org.kokakiwi.apicraft.events.ApiEvent;
15     import org.kokakiwi.apicraft.events.ApiListener;
16    
17     public class StatusListener extends ApiListener {
18    
19 torben 1495 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
20 torben 1494
21 torben 1241 Server server;
22     public StatusListener(Server server) {
23     this.server = server;
24     }
25 torben 1494
26     String formatTime(String input) {
27     Date d = new Date( Long.parseLong(input) );
28     return format.format(d );
29     }
30 torben 1241
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 torben 1589 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 torben 1241
43     sb.append("--- Online players ---\n");
44     for (Player p : server.getOnlinePlayers()) {
45     sb.append( p.getName() + "\n");
46     }
47 torben 1497 sb.append("\n");
48 torben 1494
49     sb.append("--- Last seen players/offline ---\n");
50     File configFile = new File("./plugins/LastSeen/times.yml");
51     if (configFile.exists() ) {
52    
53 torben 1614 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 torben 1494 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 torben 1497 sb.append("\n");
78 torben 1494
79    
80 torben 1241 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