javascript - ReferenceError:前缀未定义
问题描述
我正在编写一个不和谐的机器人,并且一直在实施一个禁令命令:启动机器人工作正常,但是一旦我运行“/ban”,我就会在控制台中收到错误。有什么修复吗?代码:
module.exports = {
name: "ban",
description: "Bans a member from the server",
execute(message) {
if(!message.member.hasPermission("BAN_MEMBERS")) return message.channel.send('You can\'t use that!');
if(!message.guild.me.hasPermission("BAN_MEMBERS")) return message.channel.send('I don\'t have the right permissions.');
const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
if (!args[0]) {
return message.channel.send('Please specify a user!');
}
if (!member) {
return message.channel.send('Cant find that user');
}
if (!member.bannable) {
return message.channel.send('Cant ban that user');
}
let reason = args.slice(1).join(" ");
if (!reason) {
reason = 'Unspecified';
}
member.ban({ days: 7, reason: '${reason}' }).catch(err => {
message.channel.send('Something went wrong');
console.log(err);
});
const banembed = new Discord.MessageEmbed()
.setTitle('Member Banned')
.setThumbnail(member.user.displayAvatarURL())
.addField('User Banned', member)
.addField('Kicked by', message.author)
.addField('Reason', reason)
.setFooter('Time kicked', client.user.displayAvatarURL())
.setTimestamp();
message.channel.send(banembed);
}
};
这是错误:
ReferenceError: args is not defined
at Object.execute (C:\Users\aweso\Documents\Projects\Vatox-BOT\commands\ban2.js:8:92)
at Client.<anonymous> (C:\Users\aweso\Documents\Projects\Vatox-BOT\index.js:67:11)
at Client.emit (node:events:327:20)
at MessageCreateAction.handle (C:\Users\aweso\Documents\Projects\Vatox-BOT\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\aweso\Documents\Projects\Vatox-BOT\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\aweso\Documents\Projects\Vatox-BOT\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:\Users\aweso\Documents\Projects\Vatox-BOT\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\aweso\Documents\Projects\Vatox-BOT\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\aweso\Documents\Projects\Vatox-BOT\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (node:events:327:20)
我知道明显的解决方法是定义“args”,但这是从已经定义 args 的 Index.js 执行的。
解决方案
尝试在此处添加 args,并在 index.js 中的 parentesis 中添加:execute(message, args)
推荐阅读
- android - 当我按下返回时导航片段的问题
- f# - Dapper generic typehandler for F# Union types
- javascript - 在 React 中,在类上拥有静态属性与在文件中将其作为常量有什么好处甚至区别?
- android - 将 Android Studio 更新到 3.5 版后无法使用 ADB
- pandas - 将数据框导出到 excel 但我遇到了打印问题
- c# - 如何在没有第三方工具的情况下加密 localdb mdf 文件?
- python - 如何解析多个xml文件并将属性传递给csv?
- redirect - 显示从旧域重定向到新域的弹出窗口
- sql-server - SQL Server 插入语句部分插入数据。并非所有给定数据都被插入
- javascript - Why is this decoding/encoding process giving a different buffer array?