From 02c1eab6e3abbe797d231b507852f15a9d3f164a Mon Sep 17 00:00:00 2001 From: anthorob Date: Sat, 20 Aug 2022 19:59:11 -0400 Subject: [PATCH] Adjust permission of music commands --- .../command/music/SkipCommand.java | 14 +++++++++++--- .../command/music/StopCommand.java | 8 +++++++- .../command/music/VolumeCommand.java | 6 +++++- .../java/netneutrality/utils/MusicUtils.java | 17 ++++++++--------- 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/main/java/netneutrality/command/music/SkipCommand.java b/src/main/java/netneutrality/command/music/SkipCommand.java index 09eab88..18a6ae6 100644 --- a/src/main/java/netneutrality/command/music/SkipCommand.java +++ b/src/main/java/netneutrality/command/music/SkipCommand.java @@ -15,6 +15,7 @@ import netneutrality.utils.MusicUtils; import netneutrality.utils.UserFunction; public class SkipCommand extends AbstractMusicCommand { + @Override public boolean isEnabled() { return true; @@ -32,7 +33,14 @@ public class SkipCommand extends AbstractMusicCommand { @Override public CommandUsage getUsage() { - return CommandUsage.create(this, new CommandUsage.Argument(CommandUsage.Argument.Type.OPTIONAL, new String[]{"number"}, "Number of tracks to skip")); + return CommandUsage.create( + this, + new CommandUsage.Argument( + CommandUsage.Argument.Type.OPTIONAL, + new String[]{"number"}, + "Number of tracks to skip" + ) + ); } @Override @@ -47,8 +55,8 @@ public class SkipCommand extends AbstractMusicCommand { if (!MusicUtils.checkIfConnected(player, context)) return; - if (UserFunction.isAdmin(context.getGuildUser())) { - if (context.getArgs().length > 0) { + if (UserFunction.isAdmin(context.getGuildUser()) || MusicUtils.isUserDj(context.getGuildUser())) { + if (UserFunction.isAdmin(context.getGuildUser()) && context.getArgs().length > 0) { try { int skips = Integer.parseInt(context.getArgument(0)); player.skip(skips); diff --git a/src/main/java/netneutrality/command/music/StopCommand.java b/src/main/java/netneutrality/command/music/StopCommand.java index fe0c0e6..89adceb 100644 --- a/src/main/java/netneutrality/command/music/StopCommand.java +++ b/src/main/java/netneutrality/command/music/StopCommand.java @@ -12,6 +12,7 @@ import netneutrality.command.CommandUsage; import netneutrality.core.context.CommandContext; import netneutrality.music.MusicManager; import netneutrality.utils.MusicUtils; +import netneutrality.utils.UserFunction; public class StopCommand extends AbstractMusicCommand { @@ -44,7 +45,12 @@ public class StopCommand extends AbstractMusicCommand { public void execute(CommandContext context) { MusicManager player = MusicManager.get(context.getGuild()); - if (MusicUtils.checkIfConnected(player, context) && MusicUtils.isDj(player, context)) { + if (!MusicUtils.checkIfConnected(player, context)) + return; + + // Need a resume command before + // if (UserFunction.isAdmin(context.getGuildUser()) || MusicUtils.isUserDj(context.getGuildUser())) { + if (UserFunction.isAdmin(context.getGuildUser())) { player.stopTrack(); context.reply("Stopping current track"); } diff --git a/src/main/java/netneutrality/command/music/VolumeCommand.java b/src/main/java/netneutrality/command/music/VolumeCommand.java index cafd404..4010c1a 100644 --- a/src/main/java/netneutrality/command/music/VolumeCommand.java +++ b/src/main/java/netneutrality/command/music/VolumeCommand.java @@ -12,6 +12,7 @@ import netneutrality.command.CommandUsage; import netneutrality.core.context.CommandContext; import netneutrality.music.MusicManager; import netneutrality.utils.MusicUtils; +import netneutrality.utils.UserFunction; public class VolumeCommand extends AbstractMusicCommand { @@ -44,7 +45,10 @@ public class VolumeCommand extends AbstractMusicCommand { public void execute(CommandContext context) { MusicManager player = MusicManager.get(context.getGuild()); - if (MusicUtils.checkIfConnected(player, context) && MusicUtils.isDj(player, context)) { + if (!MusicUtils.checkIfConnected(player, context)) + return; + + if (UserFunction.isAdmin(context.getGuildUser()) || MusicUtils.isUserDj(context.getGuildUser())) { try { int volume = Integer.parseInt(context.getArgument(0)); diff --git a/src/main/java/netneutrality/utils/MusicUtils.java b/src/main/java/netneutrality/utils/MusicUtils.java index b85bbee..a4caf74 100644 --- a/src/main/java/netneutrality/utils/MusicUtils.java +++ b/src/main/java/netneutrality/utils/MusicUtils.java @@ -1,10 +1,12 @@ -package netneutrality.utils;/* +package netneutrality.utils; +/* * Copyright (c) anthorob * * https://xtremcommunity.com/ * https://discord.gg/CdFcyQ */ +import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.VoiceChannel; import netneutrality.core.context.CommandContext; import netneutrality.exceptions.CommandExecutionException; @@ -28,7 +30,7 @@ public class MusicUtils { } VoiceChannel vChannel = context.getGuildUser().getVoiceState().getChannel(); - if (!manager.isConnectedTo(vChannel)) { + if (manager.isNotConnectedTo(vChannel)) { context.reply("The bot isn't in your voice channel"); return false; } @@ -36,14 +38,11 @@ public class MusicUtils { return true; } - public static boolean isDj(MusicManager manager, CommandContext context) { + public static boolean isUserDj(Member member) { + MusicManager manager = MusicManager.get(member.getGuild()); + if (manager.isCurrentlyPlaying()) { - if (UserFunction.isAdmin(context.getGuildUser()) || manager.getRequesterOfCurrentTrack().getId().equals(context.getGuildUser().getId())) { - return true; - } else { - context.reply("You're not powerful enough, scrub"); - return false; - } + return manager.getRequesterOfCurrentTrack().equals(member); } return false;