diff --git a/src/main/java/buttondevteam/discordplugin/CommandListener.java b/src/main/java/buttondevteam/discordplugin/CommandListener.java index 724d9f1..054394d 100644 --- a/src/main/java/buttondevteam/discordplugin/CommandListener.java +++ b/src/main/java/buttondevteam/discordplugin/CommandListener.java @@ -36,10 +36,16 @@ public class CommandListener { String cmdwithargs = message.getContent(); final String mention = DiscordPlugin.dc.getOurUser().mention(false); final String mentionNick = DiscordPlugin.dc.getOurUser().mention(true); - if (message.getContent().startsWith(mention) && cmdwithargs.length() > mention.length() + 1) // TODO: Resolve mentions: Compound arguments, either a mention or text - cmdwithargs = cmdwithargs.substring(mention.length() + 1); - if (message.getContent().startsWith(mentionNick) && cmdwithargs.length() > mentionNick.length() + 1) - cmdwithargs = cmdwithargs.substring(mentionNick.length() + 1); + if (message.getContent().startsWith(mention)) // TODO: Resolve mentions: Compound arguments, either a mention or text + if (cmdwithargs.length() > mention.length() + 1) + cmdwithargs = cmdwithargs.substring(mention.length() + 1); + else + cmdwithargs = "help"; + if (message.getContent().startsWith(mentionNick)) + if (cmdwithargs.length() > mentionNick.length() + 1) + cmdwithargs = cmdwithargs.substring(mentionNick.length() + 1); + else + cmdwithargs = "help"; int index = cmdwithargs.indexOf(' '); String cmd; String args; diff --git a/src/main/java/buttondevteam/discordplugin/commands/ConnectCommand.java b/src/main/java/buttondevteam/discordplugin/commands/ConnectCommand.java index a2b149d..09f3fbf 100644 --- a/src/main/java/buttondevteam/discordplugin/commands/ConnectCommand.java +++ b/src/main/java/buttondevteam/discordplugin/commands/ConnectCommand.java @@ -65,4 +65,13 @@ public class ConnectCommand extends DiscordCommandBase { + message.getAuthor().getDiscriminator() + " do /discord accept"); } + @Override + public String[] getHelpText() { + return new String[] { // + "---- Connect command ----", // + "This commands let's you connect your acoount with a Minecraft account. This'd allow using the Minecraft chat and other things.", // + "Usage: connect " // + }; + } + } diff --git a/src/main/java/buttondevteam/discordplugin/commands/DiscordCommandBase.java b/src/main/java/buttondevteam/discordplugin/commands/DiscordCommandBase.java index 3e52cb3..df1846c 100644 --- a/src/main/java/buttondevteam/discordplugin/commands/DiscordCommandBase.java +++ b/src/main/java/buttondevteam/discordplugin/commands/DiscordCommandBase.java @@ -10,19 +10,22 @@ public abstract class DiscordCommandBase { public abstract String getCommandName(); public abstract void run(IMessage message, String args); + + public abstract String[] getHelpText(); static final HashMap commands = new HashMap(); static { commands.put("connect", new ConnectCommand()); // TODO: API for adding commands? commands.put("userinfo", new UserinfoCommand()); + commands.put("help", new HelpCommand()); } public static void runCommand(String cmd, String args, IMessage message) { DiscordCommandBase command = commands.get(cmd); if (command == null) { - // TODO: Help command - DiscordPlugin.sendMessageToChannel(message.getChannel(), "Unknown command: " + cmd + " with args: " + args); + DiscordPlugin.sendMessageToChannel(message.getChannel(), + "Unknown command: " + cmd + " with args: " + args + "\nDo @ChromaBot help for help"); return; } try { diff --git a/src/main/java/buttondevteam/discordplugin/commands/HelpCommand.java b/src/main/java/buttondevteam/discordplugin/commands/HelpCommand.java index 4c02475..f4b1cb5 100644 --- a/src/main/java/buttondevteam/discordplugin/commands/HelpCommand.java +++ b/src/main/java/buttondevteam/discordplugin/commands/HelpCommand.java @@ -1,5 +1,6 @@ package buttondevteam.discordplugin.commands; +import java.util.Arrays; import java.util.stream.Collectors; import buttondevteam.discordplugin.DiscordPlugin; @@ -14,8 +15,24 @@ public class HelpCommand extends DiscordCommandBase { @Override public void run(IMessage message, String args) { - DiscordPlugin.sendMessageToChannel(message.getChannel(), "Available commands:\n" + DiscordCommandBase.commands - .values().stream().map(dc -> dc.getCommandName()).collect(Collectors.joining("\n"))); + DiscordCommandBase argdc; + if (args.length() == 0) + DiscordPlugin.sendMessageToChannel(message.getChannel(), + "Available commands:\n" + DiscordCommandBase.commands.values().stream() + .map(dc -> dc.getCommandName()).collect(Collectors.joining("\n"))); + else + DiscordPlugin.sendMessageToChannel(message.getChannel(), + (argdc = DiscordCommandBase.commands.get(args)) == null ? "Command not found: " + args + : Arrays.stream(argdc.getHelpText()).collect(Collectors.joining("\n"))); + } + + @Override + public String[] getHelpText() { + return new String[] { // + "---- Help command ----", // + "Shows some info about a command or lists the available commands.", // + "Usage: help [command]"// + }; } } diff --git a/src/main/java/buttondevteam/discordplugin/commands/UserinfoCommand.java b/src/main/java/buttondevteam/discordplugin/commands/UserinfoCommand.java index e1fd59d..45de66a 100644 --- a/src/main/java/buttondevteam/discordplugin/commands/UserinfoCommand.java +++ b/src/main/java/buttondevteam/discordplugin/commands/UserinfoCommand.java @@ -82,4 +82,13 @@ public class UserinfoCommand extends DiscordCommandBase { "The user is not found in our system (player has to be on the MC server for now)!"); } + @Override + public String[] getHelpText() { + return new String[] { // + "---- User information ----", // + "Shows some information about users, from Discord, from Minecraft or from Reddit if they have these accounts connected.", // + "Usage: userinfo " // + }; + } + }