Discord.js 中的前缀问题(包括 .toUpperCase())

Posted

技术标签:

【中文标题】Discord.js 中的前缀问题(包括 .toUpperCase())【英文标题】:Problem with Prefix in Discord.js (including .toUpperCase()) 【发布时间】:2020-07-02 05:07:50 【问题描述】:

基本上,我已经使用 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;
    
)

【问题讨论】:

有什么问题? 【参考方案1】:

discord.js 教程涵盖了与您正在尝试做的事情极为相似的问题。我建议你检查一下。我具体链接的页面与您做了非常相似的事情,但如果您还没有这样做,那么值得一读整个内容。一般来说,我会在您建立 args 的位置上方添加以下行。

如果 (!message.content.startsWith(PREFIX)) 返回;

我在这里所做的是,如果消息不以前缀开头,则停止运行,直到发送新消息。我可能会遗漏一些东西,但一定要查看教程。写的真好。

https://discordjs.guide/creating-your-bot/commands-with-user-input.html#basic-arguments

【讨论】:

以上是关于Discord.js 中的前缀问题(包括 .toUpperCase())的主要内容,如果未能解决你的问题,请参考以下文章

Discord bot 更改前缀命令出错 (discord.js)

Discord.js - 在前缀和命令之后获取信息

MessageCreate.js 数据库前缀问题 - Discord.js v13/MongoDB

Discord.js 如何使用机器人提及和设置前缀作为前缀

如果消息以前缀 + 使用 discord.js 的命令开头,如何使 if 语句起作用

Discord.js - 如何实现前缀以避免错误触发命令响应?