首页 > 解决方案 > 我的不和谐机器人不会响应我设置的前缀

问题描述

所以基本上我已经为一个朋友的服务器在这个机器人上工作了 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!");
    }
});

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

标签: javascriptnode.jsdiscorddiscord.js

解决方案


除了@Dwosk 的回答,你的问题是拼写错误

使用$message而不是message.

如果您没有使用好的解释器/linter,这是非常常见且难以注意的。

此外,似乎你的逻辑没有做你想做的事。

用于!检查不以中断函数的前缀开头的消息。 if(!message.content.startsWith(prefix) || message.author.bot) return;
否则,您将丢弃所有以您的前缀开头的消息;)

不要为此感到羞耻,那些拼写错误就像试图在你自己的文本中找到语法错​​误一样,你会失明。

这就是为什么推荐一个好的 linter,我推荐你尝试Visual Studio Code,它是一个免费的开源 IDE,带有一个不错的 js 语言 linter,你可以随时使用社区扩展来扩展它,给你更好的体验


推荐阅读