Javascript Discord.js打印出引用错误:未定义命令
我对编程还很陌生,我想我会胡闹一下,试着用discord.js编写一个discord机器人来搞乱我的朋友。 不幸的是,虽然我收到了一些错误,但下面附加了完整的日志(未处理的PromisejectionWarning:ReferenceError:command未定义) 以下是完整的代码:Javascript Discord.js打印出引用错误:未定义命令,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我对编程还很陌生,我想我会胡闹一下,试着用discord.js编写一个discord机器人来搞乱我的朋友。 不幸的是,虽然我收到了一些错误,但下面附加了完整的日志(未处理的PromisejectionWarning:ReferenceError:command未定义) 以下是完整的代码: const BotName = "name"; // Name const Token = "token"; // Token const SpamMessage = "hello"; // Message c
const BotName = "name"; // Name
const Token = "token"; // Token
const SpamMessage = "hello"; // Message
const YourDiscordID = 398561449078685717; // My discord ID
// Actual bot code
const Discord = require("discord.js");
const prefix = "-";
const bot = new Discord.Client({disableEveryone: true});
bot.on("ready", async () => {
bot.user.setActivity("Getting Things Ready", "https://twitch.tv/")
console.log(`${BotName} Loaded!`);
try {
let link = await bot.generateInvite(["ADMINISTRATOR"]);
console.log(link);
} catch(e) {
console.log(e);
};
});
bot.on("message", async message => {
if(message.author.bot) return;
if(!command.startsWith(prefix)) return;
if(command === `${prefix}spam`) {
if(!message.author.id === YourDiscordID) return;
let Ping = message.mentions.users.first();
setInterval(function(){
Ping.send(SpamMessage)
},
1200
);
};
});
bot.login(Token);
我希望在让bot加入我的服务器后,在控制台中收到“Ready!”,而不是在带有登录URL的消息上,如果我在discord上键入命令(-spam),我会得到下面列出的错误
当您的bot接收到消息类型的事件时,它会调用您的回调,并且在回调中您只会收到
消息
,因此命令
当然是未定义的。通过一些例子,我认为应该是这样的:
const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();
是完整的示例,我建议查看。因此,虽然这确实解决了问题,但不幸的是,它带来了一个新的问题。我将您建议的代码片段粘贴在我的其他常量下(将消息更改为垃圾邮件消息)。我现在收到的错误是:
const args=SpamMessage.content.slice(config.prefix.length).trim().split(+/+/g);^TypeError:无法读取undefined at对象的属性“slice”。
此错误表示您的SpamMessage.content
返回undefined
,调试它以查看返回的内容。在进行切片和尝试一次性完成所有操作之前,请尝试接收任何消息,然后尝试发送随机消息,然后从那里开始,一步一步地进行,而不是在第一次游泳时跳入深水,希望这会有所帮助!