一部のユーザーについては、ギルドメンバーのイベントや機能が突然停止されました。 GuildMemberAdd、GuildMemberRemove、および GuildMemberUpdate イベントはトリガーされなくなり、ユーザー キャッシュは未定義または限定された結果を返します。さらに、GuildMemberManager.fetch() がタイムアウトしています。
Discord は最近、特権インテントを強制しました。以前は、GUILD_PRESENCES および GUILD_MEMBERS インテントはオプションでした。ただし、2020 年 10 月 27 日の時点で、これらのインテントはデフォルトで無効になっています。
Discord 開発者ポータルにログインし、ボットのページに移動します。 [ボット] タブで、下にスクロールして GUILD_MEMBERS および GUILD_PRESENCES インテントを有効にします。
Discord クライアントを作成するときdiscord.js v12 を使用して、ClientOptions の ws プロパティに特権インテントを指定します。以下にいくつかの例を示します:
// 文字列を使用<br>const client = new Discord.Client({ ws: {tents: 'GUILD_PRESENCES' }});</p><p>// array<br>const client = new Discord.Client({ ws: {tents: ['GUILD_PRESENCES', 'GUILD_MEMBERS'] }});</p><p>// ビットフィールド値を使用します<br>const client = new Discord.Client({ ws: {tents: 32509 }));</p><p>// インテントクラスを使用します<br>const client = new Discord.Client({ ws: {tents: Discord.Intents.PRIVILEGED }});<br>const client = new Discord.Client({ ws: {tents : 新しい Discord.Intents(Discord.Intents.ALL) }});<br>
必要なインテントを有効にするには、discord.js v12 へのアップグレードが必要な場合があることに注意してください。
以上がDiscord ボットのギルドメンバーイベントと機能が機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。