我对编程还是个新手,我想我应该尝试用discord.js编写一个discord bot来惹我的朋友们。不幸的是,虽然我收到了一些错误,但下面附上了完整的日志(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);
我期待收到“准备好了!”在控制台中,让bot加入我的服务器后,它却卡在带有log in URL的消息上,如果我在discord上键入命令(-spam),我会得到下面列出的错误。
完整控制台日志
当bot收到消息类型的事件时,它会调用回调,而在回调中,您只会收到消息
,因此,命令
当然是未定义的。翻看一些例子,相信应该是这样的:
const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();
这里是完整的例子,我建议检查一下。