ホームページ >ウェブフロントエンド >jsチュートリアル >Discord ボットのギルドメンバーイベントと機能が機能しないのはなぜですか?

Discord ボットのギルドメンバーイベントと機能が機能しないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-19 09:00:14628ブラウズ

Why Are My Discord Bot's Guild Member Events and Functions Not Working?

Discord ゲートウェイ インテントの強制


問題:


一部のユーザーについては、ギルドメンバーのイベントや機能が突然停止されました。 GuildMemberAdd、GuildMemberRemove、および GuildMemberUpdate イベントはトリガーされなくなり、ユーザー キャッシュは未定義または限定された結果を返します。さらに、GuildMemberManager.fetch() がタイムアウトしています。

原因:


Discord は最近、特権インテントを強制しました。以前は、GUILD_PRESENCES および GUILD_MEMBERS インテントはオプションでした。ただし、2020 年 10 月 27 日の時点で、これらのインテントはデフォルトで無効になっています。

無効な特権の影響インテント:


GUILD_PRESENCES:



  • メンバーとユーザーのキャッシュを空にする


  • プレゼンス更新イベントのトリガーに失敗しました

  • ヌルまたは未定義のプレゼンス データ

  • ボットがすべてのギルドを認識していますメンバーとしてoffline

  • fetchAllMembers での Client.login() タイムアウトoption

GUILD_MEMBERS:



  • 空のメンバーとユーザーキャッシュ

  • GuildMemberManager.fetch() および UserManager.fetch() のタイムアウト

  • ギルド メンバー イベント (GuildMemberAdd、GuildMemberRemove、GuildMemberUpdate、ギルドメンバーの話では、 GuildMembersChunk)

解決策:



  1. 有効にするDiscord 開発者を介したインテントポータル:

    Discord 開発者ポータルにログインし、ボットのページに移動します。 [ボット] タブで、下にスクロールして GUILD_MEMBERS および GUILD_PRESENCES インテントを有効にします。



  2. discord.js モジュールを通じてインテントを有効にする:

    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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。