NodeJS 我试图用discord.js做一个不和谐的机器人,即使我没有错误,我的命令似乎也不起作用,我该如何修复?

2izufjch  于 2023-11-17  发布在  Node.js
关注(0)|答案(1)|浏览(139)

此问题在此处已有答案

message.content doesn't have any value in Discord.js(1个答案)
去年关闭。
我对JavaScript还是有点陌生,我开始遵循我在youtube上找到的教程,这似乎不起作用,深入研究了一下,之后又出现了一些错误,它仍然不起作用。

  1. const express = require("express");
  2. const app = express();
  3. const prefix = require('discord-prefix');
  4. prefix.setPrefix('b.');
  5. app.listen(3000, () => {
  6. console.log("Project is running!");
  7. })
  8. app.get("/", (req, res) => {
  9. res.send("Hello World!");
  10. })
  11. const Discord = require("discord.js");
  12. const client = new Discord.Client({intents: ["GUILDS", "GUILD_MESSAGES"]});
  13. client.on("messageCreate", message => {
  14. if (!message.content.startsWith(prefix)) return;
  15. if(message.content === "help") {
  16. message.channel.send("nah");
  17. }
  18. })
  19. client.login(process.env.token)

字符串
我可以确认令牌是正确的,所以我不认为问题源于那里。

zbdgwd5y

zbdgwd5y1#

在您的messageCreate事件处理程序中,您正在return上查找不以bot前缀开头的消息。但后面的语句要查找的是仅包含单词help的消息,该单词不以b.前缀开头
您尝试检测的是b.help,因此您可以使用以下命令(这是基于discord-prefix的NPM条目的猜测):

  1. // ...
  2. if (message.content.startsWith(prefix.getPrefix(message.guild.id) + "help")) {
  3. // ...
  4. }

字符串
我已经重写了你的代码,在下面做了修改。

  1. const express = require("express");
  2. const app = express();
  3. const prefix = require('discord-prefix');
  4. prefix.setPrefix('b.');
  5. app.listen(3000, () => {
  6. console.log("Project is running!");
  7. })
  8. app.get("/", (req, res) => {
  9. res.send("Hello World!");
  10. })
  11. const Discord = require("discord.js");
  12. const client = new Discord.Client({intents: ["GUILDS", "GUILD_MESSAGES"]});
  13. client.on("messageCreate", message => {
  14. if (!message.content.startsWith(prefix)) return;
  15. if(message.content.startsWith(prefix.getPrefix(message.guild.id) + "help")) {
  16. message.channel.send("nah");
  17. }
  18. })
  19. client.login(process.env.token)

展开查看全部

相关问题