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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1935 - (hide annotations) (download)
Wed Mar 20 14:50:00 2013 UTC (11 years, 2 months ago) by torben
File size: 1736 byte(s)
Use com.sun.net.httpserver instead of BukkitApi
1 torben 1803 package dk.thoerup.bukkit.hoeruputils.web;
2    
3 torben 1935 import java.io.IOException;
4 torben 1803 import java.text.SimpleDateFormat;
5     import java.util.Date;
6 torben 1935
7     import org.bukkit.OfflinePlayer;
8 torben 1803 import org.bukkit.Server;
9     import org.bukkit.plugin.Plugin;
10    
11 torben 1935 import com.sun.net.httpserver.HttpExchange;
12     import com.sun.net.httpserver.HttpHandler;
13 torben 1803
14    
15    
16 torben 1935 public class BanListener implements HttpHandler {
17 torben 1803
18     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
19    
20     Server server;
21    
22     long cachedTime = 0;
23     String cachedText = "";
24    
25     public BanListener(Plugin plugin, Server server) {
26    
27     this.server = server;
28     }
29    
30     String formatTime(String input) {
31     return formatTime( Long.parseLong(input) );
32     }
33     String formatTime(long input) {
34     Date d = new Date( input );
35     return format.format(d );
36     }
37    
38 torben 1935
39    
40 torben 1803 @Override
41 torben 1935 public void handle(HttpExchange http) throws IOException {
42     /* if(!event.path[0].equalsIgnoreCase("webstatus")) {
43 torben 1803 return;
44     }*/
45    
46     String text;
47    
48     synchronized(this) { //is this necessary ?
49     long now = System.currentTimeMillis();
50     if ( (now-cachedTime) > 5000) {
51     text = buildText();
52     cachedText = text;
53     cachedTime = now;
54     } else {
55     text = cachedText;
56     }
57     }
58    
59    
60 torben 1935 http.getResponseBody().write( text.getBytes() );
61 torben 1803 }
62    
63     private String buildText() {
64     StringBuilder sb = new StringBuilder();
65    
66     sb.append("<h2>Banned Players</h2>");
67     sb.append("<ul>\n");
68     for(OfflinePlayer player : server.getBannedPlayers() ) {
69     sb.append("<li>").append( player.getName() ).append("</li>\n");
70     }
71     sb.append("</ul>\n");
72    
73    
74     sb.append("<h2>Banned IPs</h2>");
75     sb.append("<ul>\n");
76     for(String ip : server.getIPBans() ) {
77     sb.append("<li>").append( ip ).append("</li>\n");
78     }
79     sb.append("</ul>\n");
80    
81    
82     return sb.toString();
83    
84     }
85    
86 torben 1935
87    
88 torben 1803 }

  ViewVC Help
Powered by ViewVC 1.1.20