【问题标题】:Is there a way to make my prefix non case sensitive (Discord.js)有没有办法让我的前缀不区分大小写(Discord.js)
【发布时间】:2020-03-17 16:10:29
【问题描述】:

我正在制作一个不和谐的机器人,我的前缀是 xok,我当前使用的代码使它成为,所以 xok 总是必须写为“xok”,我认为如果我能够的话,这将是一个巨大的生活质量改善更改它,但我真的看不出如何使用当前代码,感谢任何帮助!

(message.content.indexOf(client.config.prefix) !== 0) 返回;

我的前缀“config.json”文件vv中的代码

{ "令牌": "*我的令牌", “前缀”:“xok” }

【问题讨论】:

  • 这样message.content.indexOf() 会找到XokxOK 等?您可以先将整个消息小写,例如message.content.toLowerCase().indexOf(...),这样您就始终针对xok进行测试

标签: javascript discord discord.js


【解决方案1】:

只测试小写的消息内容,而不是改变大小写的内容:

if(!message.content.toLowerCase().startsWith(client.config.prefix)) return;

这样,无论前缀是用什么大小写输入的,它总是会进入函数的其余部分。

【讨论】:

    【解决方案2】:

    试试这个:

    (message.content.toLowerCase().indexOf(client.config.prefix) !== 0) return;
    

    这会将您的消息推送到小写字母,忽略大小写。

    对于我的机器人,我使用:

    var commandPrefix = xok
    
    const command = args.shift().slice(commandPrefix.toLowerCase().length).toLowerCase();
    

    这会将消息转换为数组,检查前缀,并将命令推送为小写。

    这样我就可以做这样的事情:

    if (command === "ping") {
        message.channel.send("pong");
    };
    

    这样它会寻找前缀,如果消息没有前缀,它会忽略它。如果是,它会查找相应的命令。这样,它不会同时检查前缀和命令。简化添加命令的过程。

    【讨论】:

    • -1:不能解决问题。如果message.content == "XOKhelp"client.config.prefix == "xok",小写前缀不会使其匹配message.content。
    • 前缀已经定义并且正在被推为小写。您不应该将 message.content 用于命令,因为它们会检查整个消息。
    • 你可以做类似 If (message.content.includes(prefix) && message.content.includes("ping")) { return message.channel.send("pong");};
    • 前缀已经定义为小写,调用 .toLowerCase() 什么都不做:"XOKhelp".indexOf("xok".toLowerCase()) 将是-1,即使它以前缀开头。正确的代码是if(!message.content.toLowerCase().startsWith(client.config.prefix)) return;
    • 如果那是正确的代码,请作为答案发布并等待它被标记。
    猜你喜欢
    • 2017-01-20
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 2023-03-21
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    相关资源
    最近更新 更多