/[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 1665 - (show 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 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.OfflinePlayer;
10 import org.bukkit.entity.Player;
11 import org.bukkit.plugin.Plugin;
12
13 import org.bukkit.configuration.file.YamlConfiguration;
14
15 import org.kokakiwi.apicraft.events.ApiEvent;
16 import org.kokakiwi.apicraft.events.ApiListener;
17
18 public class StatusListener extends ApiListener {
19
20 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
21
22 Server server;
23 public StatusListener(Server server) {
24 this.server = server;
25 }
26
27 String formatTime(String input) {
28 return formatTime( Long.parseLong(input) );
29 }
30 String formatTime(long input) {
31 Date d = new Date( input );
32 return format.format(d );
33 }
34
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 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
47 sb.append("--- Online players ---\n");
48 for (Player p : server.getOnlinePlayers()) {
49
50 sb.append( p.getName() + "\n" );
51 }
52 sb.append("\n");
53
54 sb.append("--- Last seen players/offline ---\n");
55 /*
56 File configFile = new File("./plugins/LastSeen/times.yml");
57 if (configFile.exists() ) {
58
59 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 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 sb.append("\n");*/
84 OfflinePlayer playerList[] = server.getOfflinePlayers();
85 for (OfflinePlayer player : playerList) {
86 //long first = p.getFirstPlayed();
87
88 long last = player.getLastPlayed();
89 sb.append(player.getName() + ": " + formatTime(last) + "\n");
90 }
91
92
93 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