如果您不启用部分结构,您的代码仅适用于缓存的消息;机器人连接后发布的内容。对旧消息做出反应不会触发messageReactionAdd
event.
如果您还想听取对旧消息的反应,您需要启用部分结构MESSAGE
, CHANNEL
and REACTION
实例化您的客户端时,如下所示:
const { Client, Intents } = require('discord.js');
const client = new Discord.Client({
intents: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MEMBERS,
Intents.FLAGS.GUILD_MESSAGES,
Intents.FLAGS.GUILD_MESSAGE_REACTIONS,
],
partials: ['CHANNEL', 'GUILD_MEMBER', 'MESSAGE', 'REACTION', 'USER'],
});
如果您使用的是discord.js v14,您可以使用这样的枚举:
const { Client, GatewayIntentBits, Partials } = require('discord.js');
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMember,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.GuildMessageReactions,
GatewayIntentBits.MessageContent,
],
partials: [Partials.Channel, Partials.Message, Partials.Reaction],
});