From 35f932c3773c95fcd70117fb77362a4c184d347e Mon Sep 17 00:00:00 2001 From: Schlauer-Hax Date: Fri, 13 Mar 2020 21:44:01 +0100 Subject: [PATCH] moveall command --- src/main/java/com/bbn/hadder/Hadder.java | 3 +- .../hadder/commands/misc/MoveAllCommand.java | 50 +++++++++++++++++++ src/main/java/com/bbn/hadder/core/Perm.java | 22 +++++--- 3 files changed, 66 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/bbn/hadder/commands/misc/MoveAllCommand.java 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);