错误 [BAN_RESOLVE_ID]:无法将用户 ID 解析为解禁

2022-01-10 00:00:00 command javascript discord.js

我正在尝试创建自己的 discord 机器人并现在创建一个 unban 命令.我的代码如下.我禁止了一个朋友并尝试通过输入 -unban 271375814384287744 testing 来解禁.然后它给我一个错误说 Error [BAN_RESOLVE_ID]: Couldn't resolve the user ID to unban. 任何帮助将不胜感激.

I am trying to create my own discord bot and creating an unban command now. My code is below. I banned a friend and tried to unban by typing -unban 271375814384287744 testing. It then gives me an error saying Error [BAN_RESOLVE_ID]: Couldn't resolve the user ID to unban. Any help would be appreciated.

const Discord = require('discord.js');
const client = new Discord.Client();

const embed = new Discord.MessageEmbed()
.setColor('#39de33')

module.exports = {
  name: 'unban',
  description: "This unbans a user",
  execute(message, args){
      if (message.member.permissions.has("BAN_MEMBERS")){
          if (!isNaN(args[0])) {
            const bannedMember =  client.users.fetch(args[0]);
            var reason = args.slice(1).join(" ");
            if(!reason) {
              reason = "No reason given!"
            }
            if (bannedMember) {
              bannedMember
                message.guild.members.unban(bannedMember, reason)
                .then(() => {
                  embed.setDescription(`Successfully unbanned **${user.tag}**`);
                  message.channel.send(embed);
                })
                .catch(err => {
                  embed.setDescription('I was unable to unban the member');
                  message.channel.send(embed);
                  console.error(err);
                });
            } else {
              embed.setDescription("That user isn't in this guild!");
              message.channel.send(embed);
            }
          } else {
            embed.setDescription("You need to provide an user ID to unban");
            message.channel.send(embed);
          }
      } else {
        embed.setDescription("You do not have `BAN_MEMBERS` permissions to unban this member");
        message.channel.send(embed);
      }
  }
}

推荐答案

我试过了,也遇到了同样的错误.

I tried this out and got the same error.

Promise {
  <rejected> Error [BAN_RESOLVE_ID]: Couldn't resolve the user ID to unban.
      at GuildMemberManager.unban (/home/kayuimineko/Arc-Neko/node_modules/discord.js/src/managers/GuildMemberManager.js:240:36)
      at eval (eval at <anonymous> (/home/kayuimineko/Arc-Neko/cmdhandler/eval.js:49:26), <anonymous>:1:23)
      at /home/kayuimineko/Arc-Neko/cmdhandler/eval.js:49:26
      at /home/kayuimineko/Arc-Neko/node_modules/mongoose/lib/model.js:4838:16
      at /home/kayuimineko/Arc-Neko/node_modules/mongoose/lib/model.js:4838:16
      at /home/kayuimineko/Arc-Neko/node_modules/mongoose/lib/helpers/promiseOrCallback.js:24:16
      at /home/kayuimineko/Arc-Neko/node_modules/mongoose/lib/model.js:4861:21
      at /home/kayuimineko/Arc-Neko/node_modules/mongoose/lib/query.js:4407:11
      at /home/kayuimineko/Arc-Neko/node_modules/kareem/index.js:135:16
      at processTicksAndRejections (internal/process/task_queues.js:79:11) {
    [Symbol(code)]: 'BAN_RESOLVE_ID'
  }
}

运行时

message.guild.members.unban(client.users.fetch(config.admin.owner.id), "reason")
// Ignore the config part it's fine

<小时>事实证明,您应该只通过他们的 ID 而不是他们的用户属性来解禁这些人.因此,要取消禁止被禁止的成员,请改用以下代码:


Turns out, you should just unban the people by their IDs instead of their user property. So, to unban the banned member use this code instead:

const Discord = require('discord.js');
const client = new Discord.Client();

const embed = new Discord.MessageEmbed()
.setColor('#39de33')

module.exports = {
  name: 'unban',
  description: "This unbans a user",
  execute(message, args){
      if (message.member.permissions.has("BAN_MEMBERS")){
          if (!isNaN(args[0])) {
            const bannedMember = message.guild.members.cache.get(args[0]) // Get the `member` property instead to recall later.
            var reason = args.slice(1).join(" ");
            if(!reason) {
              reason = "No reason given!"
            }
            if (bannedMember) {
              bannedMember
                message.guild.members.unban(bannedMember.id, reason)
                .then(() => {
                  embed.setDescription(`Successfully unbanned **${bannedMember.user.tag}**`); // `user` is undefined.
                  message.channel.send(embed);
                })
                .catch(err => {
                  embed.setDescription('I was unable to unban the member');
                  message.channel.send(embed);
                  console.error(err);
                });
            } else {
              embed.setDescription("That user isn't in this guild!");
              message.channel.send(embed);
            }
          } else {
            embed.setDescription("You need to provide an user ID to unban");
            message.channel.send(embed);
          }
      } else {
        embed.setDescription("You do not have `BAN_MEMBERS` permissions to unban this member");
        message.channel.send(embed);
      }
  }
}

相关文章