Added code to actually run commands
Also made it not respond to bots...
This commit is contained in:
parent
01ee8d7e94
commit
c6b831e035
2 changed files with 29 additions and 6 deletions
|
@ -1,5 +1,6 @@
|
|||
package buttondevteam.discordplugin;
|
||||
|
||||
import buttondevteam.discordplugin.commands.DiscordCommandBase;
|
||||
import sx.blah.discord.api.events.IListener;
|
||||
import sx.blah.discord.handle.impl.events.MentionEvent;
|
||||
import sx.blah.discord.handle.impl.events.MessageReceivedEvent;
|
||||
|
@ -12,6 +13,8 @@ public class CommandListener {
|
|||
return new IListener[] { new IListener<MentionEvent>() {
|
||||
@Override
|
||||
public void handle(MentionEvent event) {
|
||||
if (event.getMessage().getAuthor().isBot())
|
||||
return;
|
||||
final IChannel channel = event.getMessage().getChannel();
|
||||
if (!channel.getID().equals(DiscordPlugin.botchannel.getID()) && !channel.isPrivate())
|
||||
return;
|
||||
|
@ -22,12 +25,28 @@ public class CommandListener {
|
|||
public void handle(MessageReceivedEvent event) {
|
||||
if (!event.getMessage().getChannel().isPrivate())
|
||||
return;
|
||||
if (event.getMessage().getAuthor().isBot())
|
||||
return;
|
||||
runCommand(event.getMessage());
|
||||
}
|
||||
} };
|
||||
}
|
||||
|
||||
private static void runCommand(IMessage message) {
|
||||
System.out.println(message.getContent()); // TODO: Resolve mentions
|
||||
String cmdwithargs = message.getContent();
|
||||
final String mention = DiscordPlugin.dc.getOurUser().mention();
|
||||
if (message.getContent().startsWith(mention)) // TODO: Resolve mentions: Compound arguments, either a mention or text
|
||||
cmdwithargs = cmdwithargs.substring(mention.length());
|
||||
int index = cmdwithargs.indexOf(' ');
|
||||
String cmd;
|
||||
String args;
|
||||
if (index == -1) {
|
||||
cmd = cmdwithargs;
|
||||
args = "";
|
||||
} else {
|
||||
cmd = cmdwithargs.substring(0, index);
|
||||
args = cmdwithargs.substring(index);
|
||||
}
|
||||
DiscordCommandBase.runCommand(cmd, args, message);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package buttondevteam.discordplugin.commands;
|
|||
|
||||
import java.util.HashMap;
|
||||
|
||||
import buttondevteam.discordplugin.DiscordPlugin;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
|
||||
public abstract class DiscordCommandBase {
|
||||
|
@ -11,14 +12,17 @@ public abstract class DiscordCommandBase {
|
|||
|
||||
private static final HashMap<String, DiscordCommandBase> commands = new HashMap<String, DiscordCommandBase>();
|
||||
|
||||
protected void respond(IMessage message, String messagetosend) {
|
||||
}
|
||||
|
||||
static {
|
||||
commands.put("connect", new ConnectCommand()); // TODO: API for adding commands?
|
||||
}
|
||||
|
||||
public static final void runCommand(IMessage message) {
|
||||
|
||||
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);
|
||||
return;
|
||||
}
|
||||
command.run(message, args);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue