Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const {
- SlashCommandBuilder,
- PermissionFlagsBits,
- EmbedBuilder,
- } = require("discord.js");
- module.exports = {
- data: new SlashCommandBuilder()
- .setName("role-all")
- .setDescription(
- "[Moderação] Adiciona um cargo a todos os membros do servidor"
- )
- .setDefaultMemberPermissions(PermissionFlagsBits.ManageRoles)
- .setDMPermission(false)
- .addSubcommand((subcommand) =>
- subcommand
- .setName("give")
- .setDescription("Adiciona um cargo a todos os membros do servidor")
- .addRoleOption((option) =>
- option
- .setName("cargo")
- .setDescription(
- "Selecione o cargo a ser adicionado a todos os membros"
- )
- .setRequired(true)
- )
- )
- .addSubcommand((subcommand) =>
- subcommand
- .setName("remove")
- .setDescription("Remove um cargo de todos os membros do servidor")
- .addRoleOption((option) =>
- option
- .setName("cargo")
- .setDescription(
- "Selecione o cargo a ser removido de todos os membros"
- )
- .setRequired(true)
- )
- ),
- /**
- *
- * @param {Interaction} interaction
- * @param {Client} client
- */
- async execute(interaction, client) {
- const { options, guild } = interaction;
- const member = await guild.members.fetch();
- const role = options.getRole("cargo");
- const successEmbed = new EmbedBuilder().setColor("Green");
- const warningEmbed = new EmbedBuilder().setColor("Yellow");
- await interaction.deferReply({ ephemeral: true });
- const members = await guild.members.fetch();
- if (options.getSubcommand() === "give") {
- await interaction.editReply({
- embeds: [
- warningEmbed.setDescription(
- `⏳ Adicionado o cargo ${role} a todos os membros do servidor, isso pode demorar um pouco...`
- ),
- ],
- ephemeral: true,
- });
- let num = 0;
- setTimeout(() => {
- member.forEach(async (member) => {
- await member.roles.add(role).catch((err) => {
- return;
- });
- num++;
- if (num === members.size) {
- await interaction.editReply({
- embeds: [
- successEmbed.setDescription(
- `✅ O cargo ${role} foi adicionado a todos os membros do servidor`
- ),
- ],
- ephemeral: true,
- });
- } else {
- await interaction.editReply({
- embeds: [
- warningEmbed.setDescription(
- `⏳ O cargo ${role} foi adicionado a ${num}/${members.size} membros`
- ),
- ],
- ephemeral: true,
- });
- }
- });
- }, 500);
- } else if (options.getSubcommand() === "remove") {
- await interaction.editReply({
- embeds: [
- warningEmbed.setDescription(
- `⏳ Removendo o cargo ${role} a todos os membros do servidor, isso pode demorar um pouco...`
- ),
- ],
- ephemeral: true,
- });
- let num = 0;
- setTimeout(() => {
- member.forEach(async (member) => {
- await member.roles.remove(role).catch((err) => {
- return;
- });
- num++;
- if (num === members.size) {
- await interaction.editReply({
- embeds: [
- successEmbed.setDescription(
- `✅ O cargo ${role} foi removido de todos os membros do servidor`
- ),
- ],
- ephemeral: true,
- });
- } else {
- await interaction.editReply({
- embeds: [
- warningEmbed.setDescription(
- `⏳ O cargo ${role} foi removido de ${num}/${members.size} membros`
- ),
- ],
- ephemeral: true,
- });
- }
- });
- }, 500);
- }
- },
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement