summaryrefslogtreecommitdiff
path: root/src/main/java/net/tylermurphy/ken/command/music/Pause.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/tylermurphy/ken/command/music/Pause.java')
-rw-r--r--src/main/java/net/tylermurphy/ken/command/music/Pause.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/ken/command/music/Pause.java b/src/main/java/net/tylermurphy/ken/command/music/Pause.java
new file mode 100644
index 0000000..5077e2a
--- /dev/null
+++ b/src/main/java/net/tylermurphy/ken/command/music/Pause.java
@@ -0,0 +1,48 @@
+package net.tylermurphy.ken.command.music;
+
+import com.sedmelluq.discord.lavaplayer.player.AudioPlayer;
+import net.dv8tion.jda.api.entities.AudioChannel;
+import net.dv8tion.jda.api.entities.Guild;
+import net.dv8tion.jda.api.entities.Member;
+import net.dv8tion.jda.api.managers.AudioManager;
+import net.tylermurphy.ken.Ken;
+import net.tylermurphy.ken.command.Command;
+import net.tylermurphy.ken.command.Response;
+import net.tylermurphy.ken.music.GuildMusicManager;
+import net.tylermurphy.ken.music.MusicPermissions;
+import net.tylermurphy.ken.music.PlayerManager;
+
+public class Pause {
+
+ @Command(name="pause", description="Pauses the current track")
+ public Response execute(Member sender, Guild guild) {
+
+ AudioManager audioManager = guild.getAudioManager();
+ PlayerManager playerManager = Ken.getInstance().getPlayerManager();
+ GuildMusicManager musicManager = playerManager.getGuildMusicManager(guild);
+ AudioPlayer player = musicManager.player;
+
+ if (player.getPlayingTrack() == null) {
+ return Response.error("Nothing is currently playing");
+ }
+
+ if (player.isPaused()) {
+ return Response.error("Track is already paused");
+ }
+
+ AudioChannel audioChannel = audioManager.getConnectedChannel();
+
+ assert audioChannel != null;
+ if (!audioChannel.getMembers().contains(sender)) {
+ return Response.error("You have to be in the same voice channel as me to use this command");
+ }
+
+ if(MusicPermissions.hasPermission(sender, audioChannel)) {
+ player.setPaused(true);
+ return Response.success(":pause_button: Paused current track");
+ } else {
+ return Response.error("You must be the only person in the VC or have the `DJ` role to do this");
+ }
+
+ }
+}