/[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 1941 - (hide annotations) (download)
Wed Mar 20 16:44:18 2013 UTC (11 years, 2 months ago) by torben
File size: 2017 byte(s)
Add content-type headers
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     /* if(!event.path[0].equalsIgnoreCase("webstatus")) {
45 torben 1803 return;
46     }*/
47    
48     String text;
49    
50     synchronized(this) { //is this necessary ?
51     long now = System.currentTimeMillis();
52     if ( (now-cachedTime) > 5000) {
53     text = buildText();
54     cachedText = text;
55     cachedTime = now;
56     } else {
57     text = cachedText;
58     }
59     }
60    
61 torben 1938 byte bytes[] = text.getBytes();
62 torben 1941 http.getResponseHeaders().add("Content-Type", "text/plain");
63 torben 1938 http.sendResponseHeaders(HttpURLConnection.HTTP_OK, bytes.length );
64     final OutputStream os = http.getResponseBody();
65     os.write(bytes);
66     os.close();
67 torben 1940 http.close();
68 torben 1938
69 torben 1803 }
70    
71     private String buildText() {
72     StringBuilder sb = new StringBuilder();
73    
74     sb.append("<h2>Banned Players</h2>");
75     sb.append("<ul>\n");
76     for(OfflinePlayer player : server.getBannedPlayers() ) {
77     sb.append("<li>").append( player.getName() ).append("</li>\n");
78     }
79     sb.append("</ul>\n");
80    
81    
82     sb.append("<h2>Banned IPs</h2>");
83     sb.append("<ul>\n");
84     for(String ip : server.getIPBans() ) {
85     sb.append("<li>").append( ip ).append("</li>\n");
86     }
87     sb.append("</ul>\n");
88    
89    
90     return sb.toString();
91    
92     }
93    
94 torben 1935
95    
96 torben 1803 }

  ViewVC Help
Powered by ViewVC 1.1.20