diff options
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.java | 48 |
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"); + } + + } +} |