Advertisement
NoaLeGeek68

code

Aug 5th, 2021
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.90 KB | None | 0 0
  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. if (event.getAuthor().isBot()) return;
  35. String[] args = event.getArgs().split("\\s+");
  36. if (args.length > 2) {
  37. event.replyError(MessageHelper.syntaxError(event.getAuthor(), this) + "Mettre une raison n'est pas obligatoire.");
  38. return;
  39. }
  40. Main.getJda().retrieveUserById(args[0].replaceAll("\\D+", "")).queue(user ->
  41. event.getGuild().retrieveMember(user).queue(member -> {
  42. if (!event.getSelfMember().canInteract(member)) {
  43. event.replyError(MessageHelper.formattedMention(event.getAuthor()) + "Le bot n'a pas les permissions de faire cela.");
  44. return;
  45. }
  46. if (!event.getMember().canInteract(member)) {
  47. event.replyError(MessageHelper.formattedMention(event.getAuthor()) + "Vous n'avez pas la permission de mute ce membre.");
  48. return;
  49. }
  50. if (Main.getServerConfig().mutedRole.containsValue(event.getGuild().getId()) && event.getGuild().getRoleById(Main.getServerConfig().mutedRole.get(event.getGuild().getId())) != null) {
  51. if (args.length == 1) {
  52. mute(event, member, null);
  53. } else {
  54. mute(event, member, args[1]);
  55. }
  56. } else {
  57. RestAction.allOf(
  58. event.getGuild().createRole().setName("Muted Role").setColor(0x010101).map(mutedRole -> Main.getServerConfig().mutedRole.put(event.getGuild().getId(), mutedRole.getId())))
  59. .queue(unused -> {
  60. List<RestAction<?>> restActionList = new ArrayList<>();
  61. for (GuildChannel guildChannel : event.getGuild().getChannels()) {
  62. restActionList.add(guildChannel.putPermissionOverride(event.getGuild().getRoleById(Main.getServerConfig().mutedRole.get(event.getGuild().getId()))).setDeny(Permission.MESSAGE_WRITE));
  63. }
  64. RestAction.allOf(restActionList).queue(unused1 -> {
  65. if (args.length == 1) {
  66. mute(event, member, null);
  67. } else {
  68. mute(event, member, args[1]);
  69. }
  70. }
  71. );
  72. });
  73. try {
  74. Listener.saveConfigs();
  75. } catch (IOException e) {
  76. e.printStackTrace();
  77. }
  78. event.replyWarning(MessageHelper.formattedMention(event.getAuthor()) + ":warning: Le rôle configuré par défaut n'est pas présent donc j'ai créé un nouveau rôle nommé \"Muted Role\".");
  79. }
  80. }, memberNull -> event.replyError(MessageHelper.formattedMention(event.getAuthor()) + "Vous devez spécifié une personne présente sur le serveur.")), userNull -> event.replyError(MessageHelper.formattedMention(event.getAuthor()) + "Vous devez spécifié une personne existante."));
  81. }
  82.  
  83. public static void mute(CommandEvent event, Member targetMember, String reason) {
  84. if (targetMember.getRoles().contains(event.getGuild().getRoleById(Main.getServerConfig().mutedRole.get(event.getGuild().getId())))) { // Unmute the target
  85. targetMember.getRoles().remove(event.getGuild().getRoleById(Main.getServerConfig().mutedRole.get(event.getGuild().getId())));
  86. if (reason != null) {
  87. event.replySuccess(MessageHelper.formattedMention(event.getAuthor()) + targetMember.getEffectiveName() + " a bien été démuter pour la raison " + reason + ".");
  88. return;
  89. }
  90. event.replySuccess(MessageHelper.formattedMention(event.getAuthor()) + targetMember.getEffectiveName() + " a bien été démuter.");
  91. } else { // Mute the target
  92. event.getGuild().addRoleToMember(targetMember, event.getGuild().getRoleById(Main.getServerConfig().mutedRole.get(event.getGuild().getId()))).queue();
  93. if (reason != null) {
  94. event.replySuccess(MessageHelper.formattedMention(event.getAuthor()) + targetMember.getEffectiveName() + " a bien été muter pour la raison " + reason + ".");
  95. return;
  96. }
  97. event.replySuccess(MessageHelper.formattedMention(event.getAuthor()) + targetMember.getEffectiveName() + " a bien été muter.");
  98. }
  99. }
  100. }
  101.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement