基本上,我已经使用discord.js库开发了一个机器人已有几个星期,最近又遇到了一个小而关键的问题。本质上,当我声明参数时,我也是这样做的,以便使用.toUpperCase()将消息内容(message.content)大写。从本质上讲,不管您输入的是哪种前缀(符号方式),程序都会将其全部视为有效。
仅作为示例:!help-应该可以,但是,如果我输入.help,它也将被视为有效。
无论如何,这是代码。我感谢所有帮助!
bot.on('message', message =>{
let args = message.content.toUpperCase().substring(PREFIX.length).split(" ");
const sender = message.member;
switch(args[0])
{
case 'HELP':
message.reply("I've sent you some documentation on all the commands that you can use...").then(d_msg => {d_msg.delete(3000); });
message.delete(3000);
const attachment = new Attachment('./UtilityBot_Documentation.txt')
message.author.send('[Education] Bot - Documentation');
message.author.send(attachment);
break;
}
})
答案 0 :(得分:0)
discord.js教程涵盖了与您尝试执行的操作极为相似的问题。我建议您检查一下。我具体链接的页面与您做的事情非常相似,但是如果您还没有这样做,则值得对整个内容进行通读。通常,我将在您建立args的上方添加以下行。
如果(!message.content.startsWith(PREFIX))返回;
我在这里说的是如果消息不是以前缀开头,请停止运行,直到发送新消息。我可能会遗漏一些东西,但是一定要看一下教程。真的写得很好。
https://discordjs.guide/creating-your-bot/commands-with-user-input.html#basic-arguments