From 6ab6bc9fc670777632229728f81603947edaec52 Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Sat, 22 Oct 2016 01:59:58 +0200 Subject: [PATCH] CommandListener almost done --- .../discordplugin/CommandListener.java | 28 ++++++++++++++++--- .../discordplugin/DiscordPlugin.java | 4 ++- .../commands/DiscordCommandBase.java | 7 +++++ 3 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 src/main/java/buttondevteam/discordplugin/commands/DiscordCommandBase.java diff --git a/src/main/java/buttondevteam/discordplugin/CommandListener.java b/src/main/java/buttondevteam/discordplugin/CommandListener.java index 5186926..559dee5 100644 --- a/src/main/java/buttondevteam/discordplugin/CommandListener.java +++ b/src/main/java/buttondevteam/discordplugin/CommandListener.java @@ -1,13 +1,33 @@ package buttondevteam.discordplugin; import sx.blah.discord.api.events.IListener; +import sx.blah.discord.handle.impl.events.MentionEvent; import sx.blah.discord.handle.impl.events.MessageReceivedEvent; +import sx.blah.discord.handle.obj.IChannel; +import sx.blah.discord.handle.obj.IMessage; -public class CommandListener implements IListener { +public class CommandListener { - @Override - public void handle(MessageReceivedEvent event) { - System.out.println(event.getMessage().getContent()); + public static IListener[] getListeners() { + return new IListener[] { new IListener() { + @Override + public void handle(MentionEvent event) { + final IChannel channel = event.getMessage().getChannel(); + if (!channel.getID().equals(DiscordPlugin.botchannel.getID()) && !channel.isPrivate()) + return; + runCommand(event.getMessage()); + } + }, new IListener() { + @Override + public void handle(MessageReceivedEvent event) { + if (!event.getMessage().getChannel().isPrivate()) + return; + runCommand(event.getMessage()); + } + } }; } + private static void runCommand(IMessage message) { + System.out.println(message.getContent()); // TODO: Resolve mentions + } } diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java index df99677..54148c9 100644 --- a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java @@ -45,7 +45,9 @@ public class DiscordPlugin extends JavaPlugin implements IListener { cb.withToken(Files.readFirstLine(new File("TBMC", "Token.txt"), StandardCharsets.UTF_8)); dc = cb.login(); dc.getDispatcher().registerListener(this); - dc.getDispatcher().registerListener(new CommandListener()); + for (IListener listener : CommandListener.getListeners()) + dc.getDispatcher().registerListener(listener); + Bukkit.getPluginManager().registerEvents(new MCListener(), this); } catch (Exception e) { e.printStackTrace(); Bukkit.getPluginManager().disablePlugin(this); diff --git a/src/main/java/buttondevteam/discordplugin/commands/DiscordCommandBase.java b/src/main/java/buttondevteam/discordplugin/commands/DiscordCommandBase.java new file mode 100644 index 0000000..2c4d685 --- /dev/null +++ b/src/main/java/buttondevteam/discordplugin/commands/DiscordCommandBase.java @@ -0,0 +1,7 @@ +package buttondevteam.discordplugin.commands; + +public abstract class DiscordCommandBase { + public abstract String getCommandName(); + + public abstract void Run(); +}