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

  ViewVC Help
Powered by ViewVC 1.1.20