Privileged gateway intents Discord adalah tiga izin yang harus diaktifkan secara sadar oleh pemilik bot di Developer Portal sebelum Discord mau mengirimkan data tersebut lewat gateway. Ketiganya adalah Presence, Server Members, dan Message Content. Izin ini ada karena daftar member dan isi pesan sangat sensitif secara default. Jika salah satunya terlewat, bot tidak akan memunculkan error yang jelas. Bot hanya berhenti menerima event yang dibutuhkan, itulah sebabnya “bot saya online tapi tidak melakukan apa-apa” sering ternyata berasal dari satu toggle intent.

Two privileged intents stay switched on and let data through while a third stays off and blocks it. Developer Portal Server Members Message Content Presence Bot Welcome msgs ✓ Auto-responders ✓ Live presence ✗

Apa itu gateway intent

Saat bot terhubung ke Discord, bot tidak otomatis menerima setiap event yang terjadi di setiap server tempat ia berada. Bot berlangganan kategori event yang disebut intent: event pesan, event status voice, event pembaruan guild, dan seterusnya. Sebagian besar intent bisa dideklarasikan bebas di kode, dan Discord langsung memberikannya tanpa bertanya. Tiga lainnya berbeda. Discord menyebutnya privileged intent karena data di baliknya, yaitu siapa saja yang ada di server dan apa yang sedang diketik member, cukup sensitif sehingga pemilik bot harus memberikan persetujuan eksplisit lewat Developer Portal, bukan hanya di kode.

Jika kode bot meminta privileged intent tetapi pemiliknya belum mengaktifkannya untuk aplikasi tersebut, Discord langsung menolak login. Bot tidak terhubung dalam kondisi terbatas. Bot sama sekali tidak terhubung, dan gateway menutup koneksi dengan error "disallowed intents".

Tiga privileged intent

  • Presence Intent. Status online/idle/offline dan aktivitas kustom setiap member. Dipakai bot yang menampilkan data presence langsung. Sebagian besar bot tiket, moderasi, dan perdagangan tidak membutuhkannya, termasuk Noxyr.
  • Server Members Intent. Daftar lengkap member, ditambah event join dan leave, perubahan role, dan pembaruan nickname. Ini adalah intent di balik pesan sambutan, jumlah member, dan deteksi anti-raid.
  • Message Content Intent. Teks sebenarnya dari sebuah pesan, bukan sekadar fakta bahwa pesan dikirim. Tanpa intent ini, bot bisa melihat seseorang mengirim pesan di channel, tetapi tidak tahu apa yang diketiknya.

Kode Noxyr meminta dua dari tiga intent itu: Server Members Intent dan Message Content Intent. Presence Intent tidak termasuk dalam fitur Noxyr mana pun, jadi tidak pernah diminta dan tidak perlu diaktifkan.

Yang rusak tanpa Server Members Intent

Server Members Intent memungkinkan bot menerima event GUILD_MEMBER_ADD dan GUILD_MEMBER_REMOVE, yaitu event join dan leave yang hampir selalu dibutuhkan fitur keanggotaan.

  • Pesan sambutan. Pesan sambutan dikirim saat join. Tanpa intent, bot tidak menerima event join, jadi tidak ada yang terkirim dan tidak ada auto-role yang diberikan.
  • Jumlah member. Channel atau widget jumlah member yang langsung diperbarui dari event join/leave yang sama. Tanpa intent, angkanya membeku di jumlah terakhir yang terlihat.
  • Anti-nuke dan perlindungan raid. Mendeteksi raid join massal atau memantau perubahan role dan nickname yang mencurigakan bergantung pada event member. Jika intent dimatikan, seluruh jalur deteksi itu ikut mati.
  • Alur verifikasi. Gerbang apa pun yang memeriksa tanggal join, role, atau umur akun member membutuhkan objek member yang disediakan oleh intent ini.

Yang rusak tanpa Message Content Intent

Message Content Intent mengendalikan akses ke teks pesan. Tanpa intent ini, bot tetap bisa melihat bahwa sebuah channel menerima pesan dan siapa pengirimnya. Bot hanya tidak bisa membaca apa yang ditulis.

  • Auto-responder. Mencocokkan kata pemicu seperti "refund" atau "cara bayar" membutuhkan pembacaan teks pesan. Tanpa konten, tidak ada yang cocok dan tidak ada balasan.
  • Balasan chat AI. Asisten AI yang menjawab pertanyaan di channel atau saat di-mention membutuhkan pertanyaannya. Tanpa intent, bot tahu seseorang berbicara tetapi tidak punya apa pun untuk dikirim ke model.
  • Transkrip tiket. Transkrip yang mencatat apa yang benar-benar dikatakan staf dan member dalam sebuah tiket membutuhkan konten pesan untuk dicatat. Tanpa itu, yang Anda dapat hanya daftar stempel waktu dan username tanpa isi.
  • Moderasi berbasis prefix. Apa pun yang memindai pesan untuk kata terlarang, tautan undangan, atau pola spam membaca konten dengan cara yang sama seperti auto-responder.

Slash command tidak terpengaruh dalam kedua kasus, karena Discord mengirim input perintah secara terpisah dari pesan biasa. Fitur yang benar-benar bergantung pada intent ini adalah fitur yang membaca apa yang diketik member dalam pesan biasa.

Cara mengaktifkan intent di Developer Portal

  1. Buka Discord Developer Portal dan pilih aplikasi bot.
  2. Klik Bot di sidebar kiri.
  3. Gulir ke Privileged Gateway Intents.
  4. Aktifkan Server Members Intent dan Message Content Intent (tambahkan Presence Intent hanya jika bot memang membutuhkan data status langsung).
  5. Simpan perubahan, lalu mulai ulang atau hubungkan kembali bot agar ia menerapkan intent baru pada login berikutnya.

Toggle baru berlaku pada koneksi gateway berikutnya, tidak langsung untuk bot yang sudah login. Bot yang sedang berjalan saat sebuah intent dimatikan biasanya akan diputus oleh Discord dan perlu dihubungkan ulang setelah intent-nya dinyalakan kembali.

Aturan verifikasi 100 server

Mengubah toggle di portal sudah cukup untuk bot yang berada di kurang dari 100 server. Begitu jumlah instalasi bot melewati 100 server, Discord mewajibkan aplikasi menjalani verifikasi bot, yaitu proses tinjauan di mana pemilik mengajukan bot untuk disetujui, sebelum bot boleh menggunakan privileged intent dalam skala itu. Bot yang belum terverifikasi dan sudah mencapai ambang ini tetap berjalan di server yang sudah ia ikuti, tetapi tidak boleh bergabung ke server baru sampai verifikasi diberikan atau privileged intent yang tidak benar-benar dibutuhkan dihapus.

Ini adalah aturan platform Discord, bukan sesuatu yang dikendalikan oleh penyedia hosting bot mana pun. Aturan ini ada agar intent yang sensitif terhadap data, seperti Server Members dan Message Content, tidak dibagikan secara luas tanpa tinjauan Discord tentang apa yang dilakukan bot dengan data itu.

Mengapa Noxyr memeriksa kedua intent sebelum menerima token

Fitur Custom Bot Noxyr menjalankan seluruh fitur di bawah token bot yang Anda berikan. Karena pesan sambutan, jumlah member, chat AI, transkrip tiket, dan auto-responder semuanya bergantung pada dua intent di atas, dashboard memeriksa apakah Server Members Intent dan Message Content Intent sudah aktif sebelum menerima token Anda sama sekali. Token yang ditempel saat salah satu intent nonaktif langsung ditolak, daripada diterima lalu gagal diam-diam nanti dengan error gateway yang membingungkan.

Jika intent dimatikan setelah bot sudah berjalan (misalnya seseorang menghapus centangnya di portal berbulan-bulan kemudian), gateway Discord menutup koneksi dengan kode 4013 atau 4014. Node hosting Noxyr menangkap kode penutupan spesifik itu, mematikan bot, dan mengirim pesan status dalam bahasa sederhana yang memberi tahu pengaturan mana yang harus diperbaiki. Bot tidak dibiarkan terjebak dalam loop reconnect yang senyap. Penjelasan lengkap tentang error ini dan penyebab offline umum lainnya ada di panduan pemecahan masalah error gateway 4004/4014 kami.

Pertanyaan umum

Apakah saya perlu Presence Intent untuk Custom Bot Noxyr? Tidak. Noxyr hanya meminta Server Members Intent dan Message Content Intent. Presence Intent bisa tetap nonaktif.

Mengapa bot saya menampilkan "disallowed intents" padahal toggle sudah saya aktifkan? Gateway hanya membaca status saat ini pada login baru. Mulai ulang bot setelah menyimpan pengaturan portal agar ia terhubung kembali dengan intent yang sudah diterapkan.

Apakah mengaktifkan Message Content Intent berarti Discord membagikan riwayat pesan kepada bot? Tidak. Ini hanya memengaruhi pesan yang dikirim saat bot terhubung dan memiliki akses ke channel tersebut. Ini tidak memberikan akses surut ke pesan lama yang tidak sempat dilihat bot.

Apakah bot saya akan diblokir karena meminta privileged intent? Tidak. Meminta dan menggunakannya untuk fitur yang membutuhkannya, seperti pesan sambutan, auto-responder, dan balasan AI, memang tujuan intent ini. Verifikasi ada untuk bot dalam skala besar, bukan sebagai hukuman.

Lihat panduan pengaturan lengkap di dokumentasi Custom Bot, atau tambahkan Noxyr gratis dan lewati semua pengaturan intent dengan menjalankan bot utama, bukan bot kustom berbasis token.