即使我启用了所有 GatewayIntentBits,为什么 messageCreate 事件没有被触发?

问题描述 投票:0回答:1

我为我的机器人启用了所有网关意图位,但是当发送消息时,机器人不会记录使用

messageCreate
发送的任何消息。我正在使用discord.js v14。

const token = process.env.TOKEN;
const dataBaseToken = process.env.DBTOKEN;
const { connect } = require("mongoose");
const { Client, Collection, GatewayIntentBits, Events } = require("discord.js");
const fs = require("fs");

const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent,
    GatewayIntentBits.GuildMembers,
  ],
});
client.commands = new Collection();
client.buttons = new Collection();
client.selectMenus = new Collection();
client.commandArray = [];

const functionFolders = fs.readdirSync(`./src/functions`);
for (const folder of functionFolders) {
  const functionFiles = fs
    .readdirSync(`./src/functions/${folder}`)
    .filter((file) => file.endsWith(".js"));
  for (const file of functionFiles) {
    if (file.endsWith(".js")) {
      require(`./src/functions/${folder}/${file}`)(client);
    }
  }
}

client.login(token);
client.handleEvents();
client.handleCommands();
client.handleComponents();
(async () => {
  await connect(dataBaseToken).catch(console.error);
})();

client.on("messageCreate", (message) => {
  console.log(`messageCreate: ${message}`);
});

我尝试只使用必要的意图,但什么也没有。我还在没有代码的机器人上运行了它,只有机器人的基本结构,但仍然什么也没有。

javascript discord discord.js
1个回答
0
投票

在检查你的代码时,我并没有立即想到什么。

您是否尝试过暂时授予机器人管理员权限?如果在这种情况下触发

messageCreate
事件,那么您可以确信这确实是与权限或意图相关的问题。

您可能还需要在开发者门户上为您的机器人授予适当的权限,然后生成机器人并将其重新邀请到您的服务器。我所指的权限页面将位于您的机器人的 OAuth2 下。

© www.soinside.com 2019 - 2024. All rights reserved.