我对编程很陌生,我想我会四处乱逛,并尝试使用discord.js编写一个Discord机器人来与我的朋友们搞乱。 不幸的是,尽管我遇到了一些错误,但完整的日志附在下面(UnhandledPromiseRejectionWarning:ReferenceError:命令未定义)
这是完整的代码:
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);
我希望收到“就绪!”在让僵尸程序加入我的服务器后,在控制台中进入僵尸程序,而是将其卡在带有登录URL的消息中,如果我在不和谐状态下键入命令(-spam),则会出现以下错误。
答案 0 :(得分:0)
当您的漫游器收到类型为message的事件时,它将调用您的回调,并且在您的回调内部您仅会收到message
,因此command
当然是未定义的。通过一些例子,我相信应该是这样的:
const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();
Here是完整的示例,建议您检查一下。