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