diff --git a/pom.xml b/pom.xml index c77db22..8fc48d9 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,7 @@ net.dv8tion JDA - 4.1.1_110 + 4.1.1_113 org.json @@ -142,7 +142,7 @@ maven-site-plugin - 3.8.2 + 3.9.0 maven-project-info-reports-plugin diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 57a7cb0..0d93dd7 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -126,7 +126,8 @@ public class Hadder { new EchoCommand(), new ServerStatsCommand(), new ProfileCommand(), - new CodeCommand()), config, helpCommand); + new CodeCommand(), + new MoveAllCommand()), config, helpCommand); builder.addEventListeners( new MentionListener(rethink), diff --git a/src/main/java/com/bbn/hadder/commands/misc/MoveAllCommand.java b/src/main/java/com/bbn/hadder/commands/misc/MoveAllCommand.java new file mode 100644 index 0000000..5d26277 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/misc/MoveAllCommand.java @@ -0,0 +1,50 @@ +/* + * @author Hax / Hax6775 / Schlauer_Hax + */ + +package com.bbn.hadder.commands.misc; + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; +import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.Member; + +import java.util.ArrayList; +import java.util.Objects; + +public class MoveAllCommand implements Command { + + @Perms(Perm.VOICE_MOVE_OTHERS) + @Override + public void executed(String[] args, CommandEvent e) { + if (args.length == 2) { + Objects.requireNonNull(e.getGuild().getVoiceChannelById(args[0])).getMembers().forEach( + member -> e.getGuild().moveVoiceMember(member, e.getGuild().getVoiceChannelById(args[1])).queue() + ); + } else { + e.getHelpCommand().sendHelp(this, e); + } + } + + @Override + public String[] labels() { + return new String[]{"moveall", "move-all"}; + } + + @Override + public String description() { + return "Moves All users in channel1 to channel2"; + } + + @Override + public String usage() { + return "[channel1] [channel2]"; + } + + @Override + public String example() { + return "452806287307046923 452858405212782623"; + } +} diff --git a/src/main/java/com/bbn/hadder/core/Perm.java b/src/main/java/com/bbn/hadder/core/Perm.java index 0eea910..2c5b4bb 100644 --- a/src/main/java/com/bbn/hadder/core/Perm.java +++ b/src/main/java/com/bbn/hadder/core/Perm.java @@ -26,54 +26,60 @@ public enum Perm { public boolean check(CommandEvent e) { return e.getConfig().getOwners().contains(e.getAuthor().getIdLong()); } - }, + }, MANAGE_MESSAGES { @Override public boolean check(CommandEvent e) { return e.getMember().hasPermission(Permission.MESSAGE_MANAGE) || e.getConfig().getOwners().contains(e.getAuthor().getIdLong()); } - }, + }, BAN_MEMBERS { @Override public boolean check(CommandEvent e) { return e.getMember().hasPermission(Permission.BAN_MEMBERS) || e.getConfig().getOwners().contains(e.getAuthor().getIdLong()); } - }, + }, KICK_MEMBERS { @Override public boolean check(CommandEvent e) { return e.getMember().hasPermission(Permission.KICK_MEMBERS) || e.getConfig().getOwners().contains(e.getAuthor().getIdLong()); } - }, + }, MANAGE_SERVER { @Override public boolean check(CommandEvent e) { return e.getMember().hasPermission(Permission.MANAGE_SERVER) || e.getConfig().getOwners().contains(e.getAuthor().getIdLong()); } - }, + }, MANAGE_ROLES { @Override public boolean check(CommandEvent e) { return e.getMember().hasPermission(Permission.MANAGE_ROLES) || e.getConfig().getOwners().contains(e.getAuthor().getIdLong()); } - }, + }, MANAGE_NICKNAMES { @Override public boolean check(CommandEvent e) { return e.getMember().hasPermission(Permission.NICKNAME_MANAGE) || e.getConfig().getOwners().contains(e.getAuthor().getIdLong()); } - }, + }, ADMINISTRATOR { @Override public boolean check(CommandEvent e) { return e.getMember().hasPermission(Permission.ADMINISTRATOR) || e.getConfig().getOwners().contains(e.getAuthor().getIdLong()); } - }, + }, MANAGE_WEBHOOKS { @Override public boolean check(CommandEvent e) { return e.getMember().hasPermission(Permission.MANAGE_WEBHOOKS) || e.getConfig().getOwners().contains(e.getAuthor().getIdLong()); } + }, + VOICE_MOVE_OTHERS { + @Override + public boolean check(CommandEvent e) { + return e.getMember().hasPermission(Permission.VOICE_MOVE_OTHERS) || e.getConfig().getOwners().contains(e.getAuthor().getIdLong()); + } }; public abstract boolean check(CommandEvent e); diff --git a/src/main/java/com/bbn/hadder/listener/CommandListener.java b/src/main/java/com/bbn/hadder/listener/CommandListener.java index aeb8615..286d320 100644 --- a/src/main/java/com/bbn/hadder/listener/CommandListener.java +++ b/src/main/java/com/bbn/hadder/listener/CommandListener.java @@ -25,6 +25,7 @@ import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import net.dv8tion.jda.api.exceptions.ErrorResponseException; import net.dv8tion.jda.api.hooks.ListenerAdapter; import java.awt.*; @@ -64,13 +65,17 @@ public class CommandListener extends ListenerAdapter { } } } else { - e.getAuthor().openPrivateChannel().complete().sendMessage(new EmbedBuilder() - .setTitle("No permission") - .setDescription("I need the `MESSAGE EMBED LINKS` permission in order to work!") - .setColor(Color.RED) - .setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png") - .setTimestamp(Instant.now()) - .build()).queue(); + try { + e.getAuthor().openPrivateChannel().complete().sendMessage(new EmbedBuilder() + .setTitle("No permission") + .setDescription("I need the `MESSAGE EMBED LINKS` permission in order to work!") + .setColor(Color.RED) + .setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png") + .setTimestamp(Instant.now()) + .build()).queue(); + } catch (ErrorResponseException ex) { + e.getTextChannel().sendMessage("I need the `MESSAGE EMBED LINKS` permission in order to work!").queue(); + } } } else { e.getAuthor().openPrivateChannel().complete().sendMessage(new EmbedBuilder()