messageReactionAddが動作するために必要なもの
ClientOptions#partialsに以下を追加
PartialTypes.MESSAGE
キャッシュに乗っていないメッセージにリアクションがつけられた場合に必要
PartialTypes.REACTION
partialであるメッセージにリアクションがつけられた際にイベントが発火するために必要
すなわち、キャッシュに乗っていないメッセージにリアクションがつけられた場合に必要
PartialTypes.CHANNEL
12.5.0現在ではDMにしか効果がないためDMでリアクションを処理しないならば不要
Intentsの指定
デフォルトならばここに関しては変更は必要ない v13だと指定が必要
Gateway Intents の利用に関するガイド等を参照の上適切なものを指定すること
サーバーのメッセージにおいてイベントを発火させるにはGUILDS、GUILD_MESSAGES、GUILD_MESSAGE_REACTIONSが必要
DMのメッセージで使用している場合はDIRECT_MESSAGES、DIRECT_MESSAGE_REACTIONSが必要
上記に加えて次のうちのいずれか
ClientOptions#partialsにPartialTypes.USERを指定する
ClientOptions#partialsにPartialTypes.GUILD_MEMBERを指定する
12.5.0より前のバージョンではバグがあるためPartialTypes.GUILD_MEMBERを指定する必要がある
ref
https://discord.com/channels/391390986770710528/619531508109148160/780710646332260363
https://discord.com/channels/222078108977594368/769862166131245066/779390127587196928
https://github.com/discordjs/discord.js/pull/4969
Presence Intentを有効にする
これにより、guildCreateがGateway APIから送られてきた際に、largeなギルドでなければメンバーがキャッシュに乗る
Server Members Intentを有効にし、fetchAllMembersを使用する
これにより、すべてのメンバーがキャッシュに乗る
v13で削除
Privileged Intentsを有効にする場合はDeveloper PortalからPrivileged Intentsを有効化するの操作が必要