Rumah > hujung hadapan web > tutorial js > Mengapa Acara Ahli Guild Discord.js Saya Tidak Ditembak, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Acara Ahli Guild Discord.js Saya Tidak Ditembak, dan Bagaimana Saya Boleh Membetulkannya?

Susan Sarandon
Lepaskan: 2024-12-29 15:55:16
asal
762 orang telah melayarinya

Why Aren't My Discord.js Guild Member Events Firing, and How Can I Fix It?

Tiada peristiwa ahli persatuan discord.js saya dipancarkan, cache pengguna saya pada asasnya kosong dan fungsi saya tamat masa

Adakah anda pernah mengalami mana-mana isu ini:

  • Isu anda acara guildMemberAdd, guildMemberRemove dan guildMemberUpdate tiba-tiba berhenti berfungsi
  • Cache GuildMemberManager anda kosong atau hampir dengannya
  • Kaedah GuildMemberManager.fetch() dan UserManager.fetch() anda telah tamat
  • Klien anda.login() tamat masa jika anda menentukan pilihan fetchAllMembers
  • Ahli Persatuan anda nampaknya berada di luar talian

Sekiranya anda mengalami mana-mana isu ini, malangnya, tiada perkara besar yang boleh anda lakukan. Baru-baru ini, Discord telah menguatkuasakan niat istimewa, yang mungkin menyebabkan masalah yang disenaraikan di atas.

Apakah niat istimewa itu?

Niat istimewa adalah data sensitif yang memerlukan pendayaan manual. Mulai 27 Oktober 2020, niat ini dimatikan secara lalai.

Niat istimewa termasuk:

  • GUILD_PRESENCES: Niat ini membenarkan bot anda mengakses kehadiran data.
  • GUILD_MEMBERS: Niat ini membenarkan bot anda mengakses data ahli.

Cara untuk mendayakan niat istimewa

  1. Pergi ke Pembangun Discord Portal: [https://discord.com/developers/applications](https://discord.com/developers/applications)
  2. Pilih aplikasi anda
  3. Klik pada tab "Bot"
  4. Tatal ke bawah ke Bahagian "Niat Gerbang Istimewa"
  5. Dayakan niat "Ahli Pelayan" dan/atau "Kehadiran Pelayan"
  6. Klik "Simpan Perubahan"

Jika bot anda tidak disahkan, anda perlu untuk menyerahkan tiket sokongan kepada Discord untuk meminta akses kepada niat istimewa.

Pelaksanaan Discord.js

Setelah anda mendayakan niat istimewa dalam Pembangun Discord Portal, anda perlu mendayakannya dalam bot Discord.js anda.

Untuk melakukan ini, tambahkan kod berikut pada pembina bot anda:

const client = new Discord.Client({
  intents: [
    Discord.Intents.FLAGS.GUILD_MEMBERS,
    Discord.Intents.FLAGS.GUILD_PRESENCES
  ]
});
Salin selepas log masuk

Ini akan membolehkan niat GUILD_MEMBERS dan GUILD_PRESENCES untuk bot anda.

Anda juga boleh mendayakan niat istimewa menggunakan pilihan ws:

const client = new Discord.Client({
  ws: {
    intents: [
      Discord.Intents.FLAGS.GUILD_MEMBERS,
      Discord.Intents.FLAGS.GUILD_PRESENCES
    ]
  }
});
Salin selepas log masuk

Jika anda masih mengalami masalah selepas mendayakan niat istimewa, sila rujuk sumber berikut:

  • [Portal Pembangun Discord - Niat Gateway](https://discord.com/developers/docs/topics/gateway#gateway-intents)
  • [Panduan Rasmi Discord.js - Niat Gateway ](https://discordjs.guide/gateway/intents.html)
  • [Kemas Kini Gerbang Soalan Lazim](https://discord.com/developers/docs/topics/gateway#gateway-intents)
  • [Discord API Github - Issue 1363 - Privileged Intents](https://github.com/discord /discord-api-docs/issues/1363)
  • [Blog Discord - Masa Depan Bot pada Discord](https://blog.discord.com/the-future-of-bots-on-discord-3d25af28f58e)

Atas ialah kandungan terperinci Mengapa Acara Ahli Guild Discord.js Saya Tidak Ditembak, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan