问题描述
我正在尝试创建自己的 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.*****.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); } } }