javascript - 我的不和谐机器人不会响应我设置的前缀
问题描述
所以基本上我已经为一个朋友的服务器在这个机器人上工作了 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!");
}
});
令牌位于代码的底部,但我没有将其粘贴到此处。
解决方案
除了@Dwosk 的回答,你的问题是拼写错误
使用
$message
而不是message
.
如果您没有使用好的解释器/linter,这是非常常见且难以注意的。
此外,似乎你的逻辑没有做你想做的事。
用于
!
检查不以中断函数的前缀开头的消息。if(!message.content.startsWith(prefix) || message.author.bot) return;
否则,您将丢弃所有以您的前缀开头的消息;)
不要为此感到羞耻,那些拼写错误就像试图在你自己的文本中找到语法错误一样,你会失明。
这就是为什么推荐一个好的 linter,我推荐你尝试Visual Studio Code,它是一个免费的开源 IDE,带有一个不错的 js 语言 linter,你可以随时使用社区扩展来扩展它,给你更好的体验
推荐阅读
- node.js - Mac 错误:/bin/sh: npm: command not found
- typescript - 如何使用 Knockout 3.5.0 在 typescript 下编译 Knockout 验证?
- python - 检查列表是否是对数的
- vue.js - 如何将具有 2 个元素的对象数组转换为 2 个数组?
- java - 在 Java 中完全卸载 JDBC 驱动程序
- asp.net-core-tag-helpers - 如何从模型值提供标签助手属性
- spring-boot - 在 docker 中运行的 Spring Boot 应用程序无法访问测试配置文件下的外部服务器
- ios - AVAudioSession routeSharingPolicy:ValidateRouteSharingPolicyParameters:不支持类别选项
- pentaho - pentaho: "get rows from result" --> 条件中使用的字段 'xyz' 在前面步骤的输入中找不到
- python - 我如何识别不同领域的保单更新