diff options
-rw-r--r-- | src/main/java/soundchan/BotListener.java | 68 | ||||
-rw-r--r-- | src/main/java/soundchan/BotListenerHelpers.java | 20 | ||||
-rw-r--r-- | src/main/java/soundchan/Commands.java | 14 |
3 files changed, 74 insertions, 28 deletions
diff --git a/src/main/java/soundchan/BotListener.java b/src/main/java/soundchan/BotListener.java index d1d1d81..8e43ca9 100644 --- a/src/main/java/soundchan/BotListener.java +++ b/src/main/java/soundchan/BotListener.java @@ -77,17 +77,12 @@ public class BotListener extends ListenerAdapter{ @Override public void onMessageReceived(MessageReceivedEvent event) { String[] command = event.getMessage().getContentRaw().split(" ", 2); + BotListenerHelpers helper = new BotListenerHelpers(); + Guild guild = event.getGuild(); - MessageChannel channel = null; - - // This means SoundChan was DM'd - if (guild == null){ - channel = event.getPrivateChannel(); - }else{ - // This means SoundChan was referred to in a TextChannel - channel = event.getTextChannel(); - } + MessageChannel channel = helper.GetReplyChannel(event); + // If we haven't set the Monitored Guild yet, set the value if(monitoredGuildId == -1 && guild != null){ monitoredGuildId = Long.parseLong(guild.getId()); monitoredGuild = guild; @@ -106,26 +101,43 @@ public class BotListener extends ListenerAdapter{ } } - // "~" Signifies that you're looking to play a song/sound from a url - if(command[0].startsWith("~") && command[0].length() > 1){ - if ("~play".equals(command[0]) && command.length == 2) { - loadAndPlay(channel, command[1]); - } else if ("~skip".equals(command[0])) { - skipTrack(channel); - } else if ("~volume".equals(command[0]) && command.length == 2) { - changeVolume(channel, command[1]); - } else if ("~pause".equals(command[0])) { - pauseTrack(channel); - } else if ("~unpause".equals(command[0])) { - unpauseTrack(channel); - } else if ("~list".equals(command[0])) { - if(command.length == 2){ - if(command[1].equals("queue")){ - listTracks(channel); - } - else if(command[1].equals("sounds")){ - localManager.ListSounds(channel); + if(command[0].startsWith("~")){ + switch (Commands.valueOf(command[0].substring(1))){ + case play: { + if(command.length == 2) + loadAndPlay(channel, command[1]); + break; + } + case skip: { + skipTrack(channel); + break; + } + case volume: { + if(command.length == 2) + changeVolume(channel, command[1]); + break; + } + case list: { + if(command.length == 2){ + if(command[1].equals("queue")){ + listTracks(channel); + } + else if(command[1].equals("sounds")){ + localManager.ListSounds(channel); + } } + break; + } + case pause: { + pauseTrack(channel); + break; + } + case unpause: { + unpauseTrack(channel); + break; + } + case playingnow: { + break; } } } diff --git a/src/main/java/soundchan/BotListenerHelpers.java b/src/main/java/soundchan/BotListenerHelpers.java new file mode 100644 index 0000000..600e4b0 --- /dev/null +++ b/src/main/java/soundchan/BotListenerHelpers.java @@ -0,0 +1,20 @@ +package soundchan; + +import net.dv8tion.jda.core.entities.Guild; +import net.dv8tion.jda.core.entities.MessageChannel; +import net.dv8tion.jda.core.events.message.MessageReceivedEvent; + +public class BotListenerHelpers { + + /** + * Given a MessageReceivedEvent, determines the correct reply channel for SoundChan. + * @param event a MessageReceivedEvent from the JDA ListenerAdapter + * @return Either a PrivateChannel (if SoundChan was DM'd) or a TextChannel (If SoundChan was commanded in one) + */ + public MessageChannel GetReplyChannel(MessageReceivedEvent event){ + Guild guild = event.getGuild(); + return (guild == null) ? event.getPrivateChannel() : event.getTextChannel(); + } + + +} diff --git a/src/main/java/soundchan/Commands.java b/src/main/java/soundchan/Commands.java new file mode 100644 index 0000000..3f96d37 --- /dev/null +++ b/src/main/java/soundchan/Commands.java @@ -0,0 +1,14 @@ +package soundchan; + +/** + * An enum representing the possible commands SoundChan might receive + */ +public enum Commands { + play, + volume, + pause, + unpause, + skip, + list, + playingnow +} |