我的不和谐机器人不会响应我设置的前缀

时间:2020-10-09 23:57:33

标签: javascript node.js discord discord.js

所以基本上,我现在已经为朋友的服务器使用此机器人工作了2天,因此它可以完成他希望它执行的一般操作。但是我无法让它响应我为其设置的前缀。

代码如下:

const Discord = require("discord.js");

const client = new Discord.Client();

const prefix = "$";

client.once("ready", () => {
    console.log("Bot is on!");
});

client.on("message", (message) => {
    if ($message.content.startWith(prefix) || message.author.bot) return;

    const args = message.content.slice(prefix.length).split(/ +/);
    const command = args.shift().toLowerCase();

    if (command === "test") {
        message.channel.send("test!");
    } else if (command == "youtube test") {
        message.channel.send("youtube test!");
    }
});

令牌位于代码的底部,但我没有将其粘贴在此处。

2 个答案:

答案 0 :(得分:0)

您将message称为$message,这将不起作用,并且正确的函数名称是startsWith()而不是startWith()。另外,您可能要确保邮件与前缀不匹配,因此应使用!

将其更改为:

if(!message.content.startsWith(prefix) || message.author.bot) return;

答案 1 :(得分:0)

除了@Dwosk答案,您的问题还包括错别字

使用$message代替message

如果您使用的口译员/ linter不好,这是很常见且很难注意的。

此外,似乎您的逻辑没有按照您的意愿做。

使用!检查不是以前缀开头的消息以破坏功能。 if(!message.content.startsWith(prefix) || message.author.bot) return;
否则,您将丢掉所有以您的前缀开头的消息;)

不要为此感到羞耻,这些错别字错误就像试图在自己的文本上找到语法错​​误一样,您就会失明。

这就是为什么推荐一个优秀的linter的原因,我建议您尝试Visual Studio Code,它是一个免费的开源IDE,它带有针对js语言的不错的linter,您可以随时使用社区扩展对其进行扩展,以为您提供更好的体验