/[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 1665 - (hide annotations) (download)
Wed Dec 21 11:05:51 2011 UTC (12 years, 5 months ago) by torben
File size: 2850 byte(s)
remember to put newline character after each online player
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     import org.bukkit.configuration.file.YamlConfiguration;
14    
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     public StatusListener(Server server) {
24     this.server = server;
25     }
26 torben 1494
27     String formatTime(String input) {
28 torben 1664 return formatTime( Long.parseLong(input) );
29     }
30     String formatTime(long input) {
31     Date d = new Date( input );
32 torben 1494 return format.format(d );
33     }
34 torben 1241
35     @Override
36     public void onApiEvent(ApiEvent event) {
37     if(event.path[0].equalsIgnoreCase("webstatus")) {
38     StringBuilder sb = new StringBuilder();
39    
40     //out.writeBytes("Server: " + server.getServerName() + "\n");
41 torben 1589 sb.append("Version: " + server.getVersion() + "\n");
42    
43     long mb = 1024*1024;
44     Runtime rt = Runtime.getRuntime();
45     sb.append("VM Memory, free: " + rt.freeMemory()/mb + ", total:" + rt.totalMemory()/mb + ", max:" + rt.maxMemory()/mb + "\n\n");
46 torben 1241
47     sb.append("--- Online players ---\n");
48 torben 1664 for (Player p : server.getOnlinePlayers()) {
49    
50 torben 1665 sb.append( p.getName() + "\n" );
51 torben 1241 }
52 torben 1497 sb.append("\n");
53 torben 1494
54     sb.append("--- Last seen players/offline ---\n");
55 torben 1664 /*
56 torben 1494 File configFile = new File("./plugins/LastSeen/times.yml");
57     if (configFile.exists() ) {
58    
59 torben 1614 YamlConfiguration config = new YamlConfiguration();
60     try {
61     config.load(configFile);
62     } catch (Exception e) {
63     event.setResponse(e.toString() );
64     event.setActionTaken(true);
65     return;
66     }
67    
68     Set<String> keys = config.getKeys(false);
69 torben 1494 if (keys != null) {
70     for (String key : keys) {
71     if (server.getPlayer(key) != null) // player is online
72     continue;
73    
74     String last = config.getString( key + ".logout");
75     sb.append("" + key + ": " + formatTime(last) + "\n") ;
76     }
77     } else {
78     sb.append("no players found\n");
79     }
80     } else {
81     sb.append("could not find LastSeen/times.yml\n");
82     }
83 torben 1664 sb.append("\n");*/
84     OfflinePlayer playerList[] = server.getOfflinePlayers();
85     for (OfflinePlayer player : playerList) {
86     //long first = p.getFirstPlayed();
87 torben 1494
88 torben 1664 long last = player.getLastPlayed();
89     sb.append(player.getName() + ": " + formatTime(last) + "\n");
90     }
91    
92 torben 1494
93 torben 1241 sb.append("--- Plugins ---\n");
94     for (Plugin plugin : server.getPluginManager().getPlugins()) {
95     sb.append( plugin.getDescription().getName() + " " + plugin.getDescription().getVersion() + "\n");
96     }
97    
98     event.setResponse(sb.toString());
99     event.setActionTaken(true);
100     }
101     }
102    
103     }

  ViewVC Help
Powered by ViewVC 1.1.20