我为我的机器人启用了所有网关意图位,但是当发送消息时,机器人不会记录使用
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}`);
});
我尝试只使用必要的意图,但什么也没有。我还在没有代码的机器人上运行了它,只有机器人的基本结构,但仍然什么也没有。
在检查你的代码时,我并没有立即想到什么。
您是否尝试过暂时授予机器人管理员权限?如果在这种情况下触发
messageCreate
事件,那么您可以确信这确实是与权限或意图相关的问题。
您可能还需要在开发者门户上为您的机器人授予适当的权限,然后生成机器人并将其重新邀请到您的服务器。我所指的权限页面将位于您的机器人的 OAuth2 下。