diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java index da1665ec..867b0a96 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java @@ -61,7 +61,6 @@ public class HTTPDaemon extends FreedomService module("activitylog", Module_activitylog.class, true); module("admins", Module_admins.class, true); module("bans", Module_bans.class, true); - module("file", Module_file.class, true); module("help", Module_help.class, false); module("list", Module_list.class, false); module("logfile", Module_logfile.class, true); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_activitylog.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_activitylog.java index a0a088d0..62dc2466 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_activitylog.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_activitylog.java @@ -3,6 +3,7 @@ package me.totalfreedom.totalfreedommod.httpd.module; import java.io.File; import me.totalfreedom.totalfreedommod.TotalFreedomMod; import me.totalfreedom.totalfreedommod.admin.ActivityLog; +import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon; import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD; @@ -17,6 +18,13 @@ public class Module_activitylog extends HTTPDModule @Override public NanoHTTPD.Response getResponse() { + final String remoteAddress = socket.getInetAddress().getHostAddress(); + + if (!isAuthorized(remoteAddress)) + { + return new NanoHTTPD.Response(NanoHTTPD.Response.Status.NOT_FOUND, NanoHTTPD.MIME_PLAINTEXT, + "You may not view the activity log. Your IP, " + remoteAddress + ", is not registered to an admin on the server."); + } File activityLogFile = new File(plugin.getDataFolder(), ActivityLog.FILENAME); if (activityLogFile.exists()) { @@ -28,4 +36,10 @@ public class Module_activitylog extends HTTPDModule "Error 404: Not Found - The requested resource was not found on this server."); } } + + private boolean isAuthorized(String remoteAddress) + { + Admin entry = plugin.al.getEntryByIp(remoteAddress); + return entry != null && entry.isActive(); + } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_admins.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_admins.java index bee811c3..52da8ec6 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_admins.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_admins.java @@ -24,7 +24,7 @@ public class Module_admins extends HTTPDModule if (!isAuthorized(remoteAddress)) { return new NanoHTTPD.Response(NanoHTTPD.Response.Status.NOT_FOUND, NanoHTTPD.MIME_PLAINTEXT, - "You may not view the admin list, Your IP, " + remoteAddress + ", is not registered to an admin on the server."); + "You may not view the admin list. Your IP, " + remoteAddress + ", is not registered to an admin on the server."); } else { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_bans.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_bans.java index e51dfb2f..dcd3a6b3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_bans.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_bans.java @@ -25,7 +25,7 @@ public class Module_bans extends HTTPDModule if (!isAuthorized(remoteAddress)) { return new NanoHTTPD.Response(NanoHTTPD.Response.Status.NOT_FOUND, NanoHTTPD.MIME_PLAINTEXT, - "You may not view the ban list, Your IP, " + remoteAddress + ", is not registered to an admin on the server."); + "You may not view the ban list, Your IP. " + remoteAddress + ", is not registered to an admin on the server."); } else { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java index 80087c95..f0071752 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java @@ -2,9 +2,15 @@ package me.totalfreedom.totalfreedommod.httpd.module; import java.util.Collection; import me.totalfreedom.totalfreedommod.TotalFreedomMod; +import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD; +import me.totalfreedom.totalfreedommod.util.FLog; +import me.totalfreedom.totalfreedommod.util.FUtil; import org.bukkit.Bukkit; import org.bukkit.entity.Player; +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; public class Module_list extends HTTPDModule { @@ -15,30 +21,127 @@ public class Module_list extends HTTPDModule } @Override - public String getBody() + public NanoHTTPD.Response getResponse() { - final StringBuilder body = new StringBuilder(); - - final Collection extends Player> onlinePlayers = Bukkit.getOnlinePlayers(); - - body.append("
There are ").append(onlinePlayers.size()).append("/").append(Bukkit.getMaxPlayers()).append(" players online:
\r\n"); - - body.append("There are ").append(onlinePlayers.size()).append("/").append(Bukkit.getMaxPlayers()).append(" players online:
\r\n"); + + body.append("