Advertisement
Uno2K

role-all command

Sep 21st, 2023
916
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const {
  2.   SlashCommandBuilder,
  3.   PermissionFlagsBits,
  4.   EmbedBuilder,
  5. } = require("discord.js");
  6.  
  7. module.exports = {
  8.   data: new SlashCommandBuilder()
  9.     .setName("role-all")
  10.     .setDescription(
  11.       "[Moderação] Adiciona um cargo a todos os membros do servidor"
  12.     )
  13.     .setDefaultMemberPermissions(PermissionFlagsBits.ManageRoles)
  14.     .setDMPermission(false)
  15.     .addSubcommand((subcommand) =>
  16.       subcommand
  17.         .setName("give")
  18.         .setDescription("Adiciona um cargo a todos os membros do servidor")
  19.         .addRoleOption((option) =>
  20.           option
  21.             .setName("cargo")
  22.             .setDescription(
  23.               "Selecione o cargo a ser adicionado a todos os membros"
  24.             )
  25.             .setRequired(true)
  26.         )
  27.     )
  28.     .addSubcommand((subcommand) =>
  29.       subcommand
  30.         .setName("remove")
  31.         .setDescription("Remove um cargo de todos os membros do servidor")
  32.         .addRoleOption((option) =>
  33.           option
  34.             .setName("cargo")
  35.             .setDescription(
  36.               "Selecione o cargo a ser removido de todos os membros"
  37.             )
  38.             .setRequired(true)
  39.         )
  40.     ),
  41.  
  42.   /**
  43.    *
  44.    * @param {Interaction} interaction
  45.    * @param {Client} client
  46.    */
  47.   async execute(interaction, client) {
  48.     const { options, guild } = interaction;
  49.  
  50.     const member = await guild.members.fetch();
  51.     const role = options.getRole("cargo");
  52.  
  53.     const successEmbed = new EmbedBuilder().setColor("Green");
  54.     const warningEmbed = new EmbedBuilder().setColor("Yellow");
  55.  
  56.     await interaction.deferReply({ ephemeral: true });
  57.  
  58.     const members = await guild.members.fetch();
  59.  
  60.     if (options.getSubcommand() === "give") {
  61.       await interaction.editReply({
  62.         embeds: [
  63.           warningEmbed.setDescription(
  64.             `⏳ Adicionado o cargo ${role} a todos os membros do servidor, isso pode demorar um pouco...`
  65.           ),
  66.         ],
  67.         ephemeral: true,
  68.       });
  69.  
  70.       let num = 0;
  71.       setTimeout(() => {
  72.         member.forEach(async (member) => {
  73.           await member.roles.add(role).catch((err) => {
  74.             return;
  75.           });
  76.           num++;
  77.  
  78.           if (num === members.size) {
  79.             await interaction.editReply({
  80.               embeds: [
  81.                 successEmbed.setDescription(
  82.                   `✅ O cargo ${role} foi adicionado a todos os membros do servidor`
  83.                 ),
  84.               ],
  85.               ephemeral: true,
  86.             });
  87.           } else {
  88.             await interaction.editReply({
  89.               embeds: [
  90.                 warningEmbed.setDescription(
  91.                   `⏳ O cargo ${role} foi adicionado a ${num}/${members.size} membros`
  92.                 ),
  93.               ],
  94.               ephemeral: true,
  95.             });
  96.           }
  97.         });
  98.       }, 500);
  99.     } else if (options.getSubcommand() === "remove") {
  100.       await interaction.editReply({
  101.         embeds: [
  102.           warningEmbed.setDescription(
  103.             `⏳ Removendo o cargo ${role} a todos os membros do servidor, isso pode demorar um pouco...`
  104.           ),
  105.         ],
  106.         ephemeral: true,
  107.       });
  108.  
  109.       let num = 0;
  110.       setTimeout(() => {
  111.         member.forEach(async (member) => {
  112.           await member.roles.remove(role).catch((err) => {
  113.             return;
  114.           });
  115.           num++;
  116.  
  117.           if (num === members.size) {
  118.             await interaction.editReply({
  119.               embeds: [
  120.                 successEmbed.setDescription(
  121.                   `✅ O cargo ${role} foi removido de todos os membros do servidor`
  122.                 ),
  123.               ],
  124.               ephemeral: true,
  125.             });
  126.           } else {
  127.             await interaction.editReply({
  128.               embeds: [
  129.                 warningEmbed.setDescription(
  130.                   `⏳ O cargo ${role} foi removido de ${num}/${members.size} membros`
  131.                 ),
  132.               ],
  133.               ephemeral: true,
  134.             });
  135.           }
  136.         });
  137.       }, 500);
  138.     }
  139.   },
  140. };
  141.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement