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

2izufjch  于 11个月前  发布在  Node.js
关注(0)|答案(1)|浏览(89)

此问题在此处已有答案

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

const express = require("express");
const app = express();
const prefix = require('discord-prefix');

prefix.setPrefix('b.');

app.listen(3000, () => {
  console.log("Project is running!");
})

app.get("/", (req, res) => {
  res.send("Hello World!");
})

const Discord = require("discord.js");
const client = new Discord.Client({intents: ["GUILDS", "GUILD_MESSAGES"]});

client.on("messageCreate", message => {
  if (!message.content.startsWith(prefix)) return;
    
  if(message.content === "help") {
    message.channel.send("nah");
  }
})

client.login(process.env.token)

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

zbdgwd5y

zbdgwd5y1#

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

// ...

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

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

const express = require("express");
const app = express();
const prefix = require('discord-prefix');

prefix.setPrefix('b.');

app.listen(3000, () => {
  console.log("Project is running!");
})

app.get("/", (req, res) => {
  res.send("Hello World!");
})

const Discord = require("discord.js");
const client = new Discord.Client({intents: ["GUILDS", "GUILD_MESSAGES"]});

client.on("messageCreate", message => {
  if (!message.content.startsWith(prefix)) return;
    
  if(message.content.startsWith(prefix.getPrefix(message.guild.id) + "help")) {
    message.channel.send("nah");
  }
})

client.login(process.env.token)

相关问题