【问题标题】:Discord.js Unban all usersDiscord.js 解禁所有用户
【发布时间】:2020-11-19 09:50:54
【问题描述】:

您好,我正在尝试在 discord.js 中创建一个命令来取消禁止所有被禁止的用户,但是当我执行 ub all 命令时,它说取消禁止所有但没有取消禁止任何人,这是我目前的代码

    bot.on('message', message =>{
    const member = message.member; 
    switch(message.content.toLowerCase()){
        case (PREFIX + "ub all"):
    if(member.hasPermission('ADMINISTRATOR')){ 
        async function ubAll(){
        const users = await message.guild.fetchBans()
        for (const user of users.array()) {
        await message.guild.unban(user)
        }
    }
message.reply("Unbanned all users from the server.")
        }
    if(!member.hasPermission('ADMINISTRATOR')){
        message.reply("You do not have enough permissions for this command!")
    }
    }
})

【问题讨论】:

  • 您使用的是哪个版本的 Discord JS?您可以在package.json 中查看。
  • 我正在使用 discord.js: 12.2.0

标签: javascript discord discord.js


【解决方案1】:

unban 不是guild 的方法。您需要使用guild.members.unban()


bot.on("message", message => {
    switch(message.content.toLowerCase()) {
        case (PREFIX + "ub all"):
            if (message.member.hasPermission("ADMINISTRATOR")) {
                message.guild.fetchBans().then(bans => {
                    if (bans.size == 0) {message.reply("There are no banned users."); throw "No members to unban."};
                    bans.forEach(ban => {
                        message.guild.members.unban(ban.user.id);
                    });
                }).then(() => message.reply("Unbanned all users.")).catch(e => console.log(e))
            } else {message.reply("You do not have enough permissions for this command.")}
        break;
    }
});

【讨论】:

    【解决方案2】:
    bot.on('message', message =>{
        const member = message.member; 
        switch(message.content.toLowerCase()){
        case (PREFIX + "ub all"):
            if(member.hasPermission('ADMINISTRATOR')){
                message.guild.fetchBans().forEach((fB)=>{
                    message.guild.members.unban(fB.user.id);
                })
                // All Users get unbanned
            } else {
                // User does not have permission.
            }
        }
    })
    

    我强烈建议您查看 Discord.JS v12 文档。 https://discord.js.org/#/docs/main/stable/general/welcome

    【讨论】:

      【解决方案3】:

      您正在声明ubAll 函数,但实际上并未调用它。 您也可以将最后的if 替换为else

      bot.on("message", async (message) => {
        const member = message.member;
        switch (message.content.toLowerCase()) {
          case PREFIX + "ub all":
            if (member.hasPermission("ADMINISTRATOR")) {
              const users = await message.guild.fetchBans();
              for (const user of users.array()) {
                await message.guild.unban(user);
              }
              message.reply("Unbanned all users from the server.");
            } else
              message.reply("You do not have enough permissions for this command!");
          }
      });
      

      【讨论】:

        猜你喜欢
        • 2021-09-05
        • 2021-04-18
        • 2021-05-24
        • 2021-03-26
        • 2021-01-18
        • 1970-01-01
        • 2019-07-20
        • 2021-01-06
        • 1970-01-01
        相关资源
        最近更新 更多