Improved help and actually added it to cmds
This commit is contained in:
parent
6a4b776c37
commit
8c5dd3b320
5 changed files with 52 additions and 8 deletions
|
@ -36,10 +36,16 @@ public class CommandListener {
|
||||||
String cmdwithargs = message.getContent();
|
String cmdwithargs = message.getContent();
|
||||||
final String mention = DiscordPlugin.dc.getOurUser().mention(false);
|
final String mention = DiscordPlugin.dc.getOurUser().mention(false);
|
||||||
final String mentionNick = DiscordPlugin.dc.getOurUser().mention(true);
|
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
|
if (message.getContent().startsWith(mention)) // TODO: Resolve mentions: Compound arguments, either a mention or text
|
||||||
cmdwithargs = cmdwithargs.substring(mention.length() + 1);
|
if (cmdwithargs.length() > mention.length() + 1)
|
||||||
if (message.getContent().startsWith(mentionNick) && cmdwithargs.length() > mentionNick.length() + 1)
|
cmdwithargs = cmdwithargs.substring(mention.length() + 1);
|
||||||
cmdwithargs = cmdwithargs.substring(mentionNick.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(' ');
|
int index = cmdwithargs.indexOf(' ');
|
||||||
String cmd;
|
String cmd;
|
||||||
String args;
|
String args;
|
||||||
|
|
|
@ -65,4 +65,13 @@ public class ConnectCommand extends DiscordCommandBase {
|
||||||
+ message.getAuthor().getDiscriminator() + " do /discord accept");
|
+ 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 <Minecraftname>" //
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,18 +11,21 @@ public abstract class DiscordCommandBase {
|
||||||
|
|
||||||
public abstract void run(IMessage message, String args);
|
public abstract void run(IMessage message, String args);
|
||||||
|
|
||||||
|
public abstract String[] getHelpText();
|
||||||
|
|
||||||
static final HashMap<String, DiscordCommandBase> commands = new HashMap<String, DiscordCommandBase>();
|
static final HashMap<String, DiscordCommandBase> commands = new HashMap<String, DiscordCommandBase>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
commands.put("connect", new ConnectCommand()); // TODO: API for adding commands?
|
commands.put("connect", new ConnectCommand()); // TODO: API for adding commands?
|
||||||
commands.put("userinfo", new UserinfoCommand());
|
commands.put("userinfo", new UserinfoCommand());
|
||||||
|
commands.put("help", new HelpCommand());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void runCommand(String cmd, String args, IMessage message) {
|
public static void runCommand(String cmd, String args, IMessage message) {
|
||||||
DiscordCommandBase command = commands.get(cmd);
|
DiscordCommandBase command = commands.get(cmd);
|
||||||
if (command == null) {
|
if (command == null) {
|
||||||
// TODO: Help command
|
DiscordPlugin.sendMessageToChannel(message.getChannel(),
|
||||||
DiscordPlugin.sendMessageToChannel(message.getChannel(), "Unknown command: " + cmd + " with args: " + args);
|
"Unknown command: " + cmd + " with args: " + args + "\nDo @ChromaBot help for help");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package buttondevteam.discordplugin.commands;
|
package buttondevteam.discordplugin.commands;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import buttondevteam.discordplugin.DiscordPlugin;
|
import buttondevteam.discordplugin.DiscordPlugin;
|
||||||
|
@ -14,8 +15,24 @@ public class HelpCommand extends DiscordCommandBase {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(IMessage message, String args) {
|
public void run(IMessage message, String args) {
|
||||||
DiscordPlugin.sendMessageToChannel(message.getChannel(), "Available commands:\n" + DiscordCommandBase.commands
|
DiscordCommandBase argdc;
|
||||||
.values().stream().map(dc -> dc.getCommandName()).collect(Collectors.joining("\n")));
|
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]"//
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)!");
|
"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 <Discordname>" //
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue