使用 discord.js v12 解禁命令
Posted
技术标签:
【中文标题】使用 discord.js v12 解禁命令【英文标题】:unban command with discord.js v12 【发布时间】:2021-03-26 05:58:18 【问题描述】:我正在尝试执行 unban 命令,但收到错误 const member;
ERROR: Missing initializer in const 声明
client.on('message', async message =>
if (message.content.toLowerCase().startsWith(prefix + "unban"))
if (!message.member.hasPermission("BAN_MEMBERS"))
return message.channel.send(`You cant use this command since you're missing "BAN_MEMBERS" perm`)
if (!args[0]) return (await message.channel.send('pls enter a users id to unban.')).then(msg => msg.delete(timeout: 5000))
const member;
try
member = await client.users.fetch(args[0])
catch (e)
console.log(e)
return message.channel.send(('an error accured'));
const reason = args[1] ? args.slice(1).join(' ') : 'no reason';
const newEmbed = new Discord.MessageEmbed()
.setFooter(`$message.author.tag | $message.author.id`, message.author.displayAvatarURL(dynamic: true))
message.guild.fetchBans().then( bans =>
const user = bans.find(ban => ban.user.id === member.id);
if (user)
newEmbed.setTitle(`Successfully Unbanned $user.user.tag`)
.setColor('#FFFF00')
.addField(name: 'User ID', value: user.user.id, inline: true)
.addField(name: 'User Tag', value: user.user.tag, inline: true)
.addField(name: 'Banned Reason', value: user.reason)
message.channel.send(newEmbed)
))
【问题讨论】:
【参考方案1】:const
表示该变量将是不可变的(常量)。因此,声明一个const
-type 变量而不立即为其赋值是没有意义的,并且在 javascript 中是不允许的。
要创建一个可变变量,而不是const
,您应该使用let
。
因此,在您的代码中,第 7 行应如下所示:
let member;
【讨论】:
如果我把 let member;错误是:args 未定义 这结账了。您尚未在代码中的任何位置定义args
。我假设您希望它们成为命令调用后的参数。为此,您可以将 const args = message.content.trim().split(/ +/g);
放在处理函数的顶部。
感谢您为我付出的努力。尽管如此,只要我将机器人上线,它就会像 30 条“发生错误”消息一样发送垃圾邮件。然后在控制台日志中说 DiscordAPIError: Invalid Form Body user_id: Value "error" is not snowflake.
您能否通过 Pastebin 或类似服务提供完整的错误消息?
https://i.imgur.com/qumhvUO.png以上是关于使用 discord.js v12 解禁命令的主要内容,如果未能解决你的问题,请参考以下文章