diff --git a/src/me/StevenLawson/TotalFreedomMod/HTTPD/HTMLGenerationTools.java b/src/me/StevenLawson/TotalFreedomMod/HTTPD/HTMLGenerationTools.java
index f4e40979..d970b949 100644
--- a/src/me/StevenLawson/TotalFreedomMod/HTTPD/HTMLGenerationTools.java
+++ b/src/me/StevenLawson/TotalFreedomMod/HTTPD/HTMLGenerationTools.java
@@ -18,6 +18,11 @@ public class HTMLGenerationTools
return "
" + escapeHtml4(data) + "
\r\n";
}
+ public static String heading(String data, int level)
+ {
+ return "" + escapeHtml4(data) + "\r\n";
+ }
+
public static String list(Map map)
{
StringBuilder output = new StringBuilder();
diff --git a/src/me/StevenLawson/TotalFreedomMod/HTTPD/Module_help.java b/src/me/StevenLawson/TotalFreedomMod/HTTPD/Module_help.java
index d5bbc94a..79e3fa30 100644
--- a/src/me/StevenLawson/TotalFreedomMod/HTTPD/Module_help.java
+++ b/src/me/StevenLawson/TotalFreedomMod/HTTPD/Module_help.java
@@ -13,6 +13,8 @@ import org.bukkit.command.CommandMap;
import org.bukkit.command.PluginIdentifiableCommand;
import static me.StevenLawson.TotalFreedomMod.HTTPD.HTMLGenerationTools.*;
+import static org.apache.commons.lang3.StringEscapeUtils.*;
+import org.apache.commons.lang3.StringUtils;
public class Module_help extends TFM_HTTPD_Module
{
@@ -34,6 +36,8 @@ public class Module_help extends TFM_HTTPD_Module
return paragraph("Error loading commands.");
}
+ responseBody.append(heading("Command Help Index", 1));
+
final Map> commandsByPlugin = new HashMap>();
final Iterator> itKnownCommands = knownCommands.entrySet().iterator();
@@ -74,15 +78,30 @@ public class Module_help extends TFM_HTTPD_Module
}
});
- List descriptions = new ArrayList();
+ responseBody.append(heading(pluginName, 2)).append("\r\n");
+
for (Command command : commands)
{
- descriptions.add(command.getName() + " (" + command.getUsage().replace("", command.getName()).trim() + "): " + command.getDescription());
+ responseBody
+ .append("")
+ .append(escapeHtml4(command.getName()))
+ .append(" - Usage: ")
+ .append(escapeHtml4(command.getUsage().replace("", command.getName()).trim()))
+ .append("");
+
+ if (!command.getAliases().isEmpty())
+ {
+ responseBody.append(" - Aliases: ")
+ .append(escapeHtml4(StringUtils.join(command.getAliases(), ", ")))
+ .append("");
+ }
+
+ responseBody.append("
")
+ .append(escapeHtml4(command.getDescription()))
+ .append("
\r\n");
}
- responseBody
- .append(paragraph(pluginName))
- .append(list(descriptions));
+ responseBody.append("
\r\n");
}
return responseBody.toString();
@@ -93,4 +112,10 @@ public class Module_help extends TFM_HTTPD_Module
{
return "TotalFreedomMod :: WebHelp";
}
+
+ @Override
+ public String getStyle()
+ {
+ return ".commandName{font-weight:bold;}.commandDescription{padding-left:15px;}li{margin:.15em;padding:.15em;}";
+ }
}
diff --git a/src/me/StevenLawson/TotalFreedomMod/HTTPD/TFM_HTTPD_Module.java b/src/me/StevenLawson/TotalFreedomMod/HTTPD/TFM_HTTPD_Module.java
index d0b728e8..2c2caa3a 100644
--- a/src/me/StevenLawson/TotalFreedomMod/HTTPD/TFM_HTTPD_Module.java
+++ b/src/me/StevenLawson/TotalFreedomMod/HTTPD/TFM_HTTPD_Module.java
@@ -24,8 +24,13 @@ public abstract class TFM_HTTPD_Module
public abstract String getTitle();
+ public String getStyle()
+ {
+ return "";
+ }
+
public final Response getResponse()
{
- return new TFM_HTTPD_PageBuilder(getBody(), getTitle()).getResponse();
+ return new TFM_HTTPD_PageBuilder(getBody(), getTitle(), getStyle()).getResponse();
}
}
diff --git a/src/me/StevenLawson/TotalFreedomMod/HTTPD/TFM_HTTPD_PageBuilder.java b/src/me/StevenLawson/TotalFreedomMod/HTTPD/TFM_HTTPD_PageBuilder.java
index ea34b0b5..99ff58fb 100644
--- a/src/me/StevenLawson/TotalFreedomMod/HTTPD/TFM_HTTPD_PageBuilder.java
+++ b/src/me/StevenLawson/TotalFreedomMod/HTTPD/TFM_HTTPD_PageBuilder.java
@@ -5,26 +5,29 @@ import me.StevenLawson.TotalFreedomMod.HTTPD.NanoHTTPD.Response;
public class TFM_HTTPD_PageBuilder
{
private static final String TEMPLATE =
- "\n"
- + "\n"
- + "\n"
- + "{$TITLE}\n"
- + "\n"
- + "\n"
- + "{$BODY}\n"
- + "\n";
+ "\r\n"
+ + "\r\n"
+ + "\r\n"
+ + "{$TITLE}\r\n"
+ + "\r\n"
+ + "\r\n"
+ + "\r\n"
+ + "{$BODY}\r\n"
+ + "\r\n";
//
- private String body;
- private String title;
+ private String body = "";
+ private String title = "";
+ private String style = "";
public TFM_HTTPD_PageBuilder()
{
}
- public TFM_HTTPD_PageBuilder(String body, String title)
+ public TFM_HTTPD_PageBuilder(String body, String title, String style)
{
this.body = body;
this.title = title;
+ this.style = style;
}
public void setBody(String body)
@@ -37,8 +40,19 @@ public class TFM_HTTPD_PageBuilder
this.title = title;
}
+ public void setStyle(String style)
+ {
+ this.style = style;
+ }
+
public Response getResponse()
{
- return new Response(TEMPLATE.replace("{$TITLE}", title).replace("{$BODY}", body));
+ return new Response(this.toString());
+ }
+
+ @Override
+ public String toString()
+ {
+ return TEMPLATE.replace("{$BODY}", body).replace("{$TITLE}", title).replace("{$STYLE}", style);
}
}