NoaLeGeek68

code

Aug 5th, 2021
1,044
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package fr.noalegeek.pepite_dor_bot.commands.moderation;
  2.  
  3. import com.jagrosh.jdautilities.command.Command;
  4. import com.jagrosh.jdautilities.command.CommandEvent;
  5. import fr.noalegeek.pepite_dor_bot.Main;
  6. import fr.noalegeek.pepite_dor_bot.enums.CommandCategories;
  7. import fr.noalegeek.pepite_dor_bot.listener.Listener;
  8. import fr.noalegeek.pepite_dor_bot.utils.helpers.MessageHelper;
  9. import net.dv8tion.jda.api.Permission;
  10. import net.dv8tion.jda.api.entities.*;
  11. import net.dv8tion.jda.api.requests.RestAction;
  12. import net.dv8tion.jda.api.requests.restaction.RoleAction;
  13.  
  14. import java.io.IOException;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17.  
  18. public class MuteCommand extends Command {
  19.     public MuteCommand() {
  20.         this.category = CommandCategories.STAFF.category;
  21.         this.aliases = new String[]{"m", "mu", "mut"};
  22.         this.name = "mute";
  23.         this.arguments = "<identifiant/mention du membre> [raison]";
  24.         this.help = "Mute définitivement un membre avec une raison ou non. Unmute si la personne est déjà mute.";
  25.         this.cooldown = 5;
  26.         this.example = "@NoaLeGeek spam";
  27.         this.userPermissions = new Permission[]{Permission.MESSAGE_MANAGE};
  28.         this.botPermissions = new Permission[]{Permission.MESSAGE_MANAGE};
  29.         this.guildOnly = true;
  30.     }
  31.  
  32.     @Override
  33.     protected void execute(CommandEvent event) {
  34.         User author = event.getAuthor();
  35.         if (author.isBot()) return;
  36.         String[] args = event.getArgs().split("\\s+");
  37.         if (args.length > 2) {
  38.             event.replyError(MessageHelper.syntaxError(author, this) + "Mettre une raison n'est pas obligatoire.");
  39.             return;
  40.         }
  41.         Guild guild = event.getGuild();
  42.         Main.getJda().retrieveUserById(args[0].replaceAll("\\D+", "")).queue(user ->
  43.                 guild.retrieveMember(user).queue(member -> {
  44.             if (!event.getSelfMember().canInteract(member)) {
  45.                 event.replyError(MessageHelper.formattedMention(author) + "Le bot n'a pas les permissions de faire cela.");
  46.                 return;
  47.             }
  48.             if (!event.getMember().canInteract(member)) {
  49.                 event.replyError(MessageHelper.formattedMention(author) + "Vous n'avez pas la permission de mute ce membre.");
  50.                 return;
  51.             }
  52.             String mutedRoleId = Main.getServerConfig().mutedRole.get(event.getGuild().getId());
  53.             if (mutedRoleId == null || event.getGuild().getRoleById(mutedRoleId) == null) {
  54.                 if (args.length == 1) {
  55.                     mute(event, member, null);
  56.                 } else {
  57.                     mute(event, member, args[1]);
  58.                 }
  59.             } else {
  60.                 RestAction.allOf(
  61.                                 guild.createRole().setName("Muted Role").setColor(0x010101).map(mutedRole -> Main.getServerConfig().mutedRole.put(guild.getId(), mutedRole.getId())))
  62.                         .queue(unused -> {
  63.                             List<RestAction<?>> restActionList = new ArrayList<>();
  64.                             for (GuildChannel guildChannel : guild.getChannels()) {
  65.                                 restActionList.add(guildChannel.putPermissionOverride(guild.getRoleById(Main.getServerConfig().mutedRole.get(guild.getId()))).setDeny(Permission.MESSAGE_WRITE));
  66.                             }
  67.                             RestAction.allOf(restActionList).queue(unused1 -> {
  68.                                         if (args.length == 1) {
  69.                                             mute(event, member, null);
  70.                                         } else {
  71.                                             mute(event, member, args[1]);
  72.                                         }
  73.                                     }
  74.                             );
  75.                         });
  76.                 event.replyWarning(MessageHelper.formattedMention(author) + ":warning: Le rôle configuré par défaut n'est pas présent donc j'ai créé un nouveau rôle nommé \"Muted Role\".");
  77.             }
  78.         }, memberNull -> event.replyError(MessageHelper.formattedMention(author) + "Vous devez spécifié une personne présente sur le serveur.")), userNull -> event.replyError(MessageHelper.formattedMention(author) + "Vous devez spécifié une personne existante."));
  79.     }
  80.  
  81.     public static void mute(CommandEvent event, Member targetMember, String reason) {
  82.         Guild guild = event.getGuild();
  83.         User author = event.getAuthor();
  84.         if (targetMember.getRoles().contains(guild.getRoleById(Main.getServerConfig().mutedRole.get(guild.getId())))) { // Unmute the target
  85.             targetMember.getRoles().remove(guild.getRoleById(Main.getServerConfig().mutedRole.get(guild.getId())));
  86.             if (reason != null) {
  87.                 event.replySuccess(MessageHelper.formattedMention(author) + targetMember.getEffectiveName() + " a bien été démuter pour la raison " + reason + ".");
  88.                 return;
  89.             }
  90.             event.replySuccess(MessageHelper.formattedMention(author) + targetMember.getEffectiveName() + " a bien été démuter.");
  91.         } else { // Mute the target
  92.             guild.addRoleToMember(targetMember, guild.getRoleById(Main.getServerConfig().mutedRole.get(guild.getId()))).queue();
  93.             if (reason != null) {
  94.                 event.replySuccess(MessageHelper.formattedMention(author) + targetMember.getEffectiveName() + " a bien été muter pour la raison " + reason + ".");
  95.                 return;
  96.             }
  97.             event.replySuccess(MessageHelper.formattedMention(author) + targetMember.getEffectiveName() + " a bien été muter.");
  98.         }
  99.     }
  100. }
  101.  
RAW Paste Data