From ae0603435a6639df73d4dca61f8ec314e871ac56 Mon Sep 17 00:00:00 2001
From: Chris Kearney <chris@kearneymail.com>
Date: Thu, 23 Apr 2015 22:44:33 -0700
Subject: [PATCH] added a help command

---
 .../java/com/comandante/creeper/Main.java     |  2 +
 .../server/CreeperCommandRegistry.java        |  9 +++--
 .../creeper/server/command/HelpCommand.java   | 37 +++++++++++++++++++
 3 files changed, 45 insertions(+), 3 deletions(-)
 create mode 100644 src/main/java/com/comandante/creeper/server/command/HelpCommand.java

diff --git a/src/main/java/com/comandante/creeper/Main.java b/src/main/java/com/comandante/creeper/Main.java
index 7e264d53..b63335d2 100644
--- a/src/main/java/com/comandante/creeper/Main.java
+++ b/src/main/java/com/comandante/creeper/Main.java
@@ -113,6 +113,8 @@ public class Main {
         creeperCommandRegistry.addCommand(new BuildCommand(gameManager));
         creeperCommandRegistry.addCommand(new MapCommand(gameManager));
         creeperCommandRegistry.addCommand(new AreaCommand(gameManager));
+        creeperCommandRegistry.addCommand(new HelpCommand(gameManager));
+
 
 
         CreeperServer creeperServer = new CreeperServer(PORT, db);
diff --git a/src/main/java/com/comandante/creeper/server/CreeperCommandRegistry.java b/src/main/java/com/comandante/creeper/server/CreeperCommandRegistry.java
index 929dcd8a..069be058 100644
--- a/src/main/java/com/comandante/creeper/server/CreeperCommandRegistry.java
+++ b/src/main/java/com/comandante/creeper/server/CreeperCommandRegistry.java
@@ -2,9 +2,7 @@ package com.comandante.creeper.server;
 
 import com.comandante.creeper.server.command.Command;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 public class CreeperCommandRegistry {
 
@@ -31,4 +29,9 @@ public class CreeperCommandRegistry {
         }
         return unknownCommand;
     }
+
+    public Set<Command> getCreeperCommands() {
+        Set<Command> creeperCommandUniq = new HashSet<Command>(creeperCommands.values());
+        return creeperCommandUniq;
+    }
 }
diff --git a/src/main/java/com/comandante/creeper/server/command/HelpCommand.java b/src/main/java/com/comandante/creeper/server/command/HelpCommand.java
new file mode 100644
index 00000000..053e79f2
--- /dev/null
+++ b/src/main/java/com/comandante/creeper/server/command/HelpCommand.java
@@ -0,0 +1,37 @@
+package com.comandante.creeper.server.command;
+
+
+import com.comandante.creeper.Main;
+import com.comandante.creeper.managers.GameManager;
+import com.comandante.creeper.world.Area;
+import com.google.common.collect.Sets;
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.jboss.netty.channel.MessageEvent;
+
+import java.util.*;
+
+public class HelpCommand extends Command {
+    final static List<String> validTriggers = Arrays.asList("h", "help");
+    final static String description = "This help command.";
+
+    public HelpCommand(GameManager gameManager) {
+        super(gameManager, validTriggers, description);
+    }
+
+    @Override
+    public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
+        configure(e);
+        try {
+            Set<Command> creeperCommands = Main.creeperCommandRegistry.getCreeperCommands();
+            for (Command command : creeperCommands) {
+                List<String> validTriggers1 = command.validTriggers;
+                for (String s: validTriggers1) {
+                    write(s + " ");
+                }
+                write(": " + command.description + "\r\n");
+            }
+        } finally {
+            super.messageReceived(ctx, e);
+        }
+    }
+}
-- 
GitLab