Geliştirici Portalı
Deneysel Bot ve uygulama platformu aktif olarak geliştiriliyor. Kendi barındırdığın sunucu desteği 13.08.2026'da yayınlandı ve buluta göre daha az özellik sunuyor. Nelerin desteklendiğine bak.
← Dokümanlar

İzinler

Botlar izinleri Discord biçiminde 53 bitlik bir tam sayı bit alanı olarak alır. Bitler ve anlamları Discord ile eşleşir; değerler GameVox'un yerel grup ve kanal izin tablolarından gelir. GameVox'ta karşılığı olmayan bitler 0 döndürür.

Yerel → Discord eşlemesi

Discord bitiHexGameVox kaynağı
ADMINISTRATOR 0x8 groups.group_type IN ('owner', 'admin')
VIEW_CHANNEL 0x400 channel_permissions.view_channel / group_permissions.view_channels
READ_MESSAGE_HISTORY 0x10000 VIEW_CHANNEL ile aynı (ayrı bir geçmiş anahtarı yok)
SEND_MESSAGES 0x800 send_messages
MANAGE_MESSAGES 0x2000 manage_messages
EMBED_LINKS 0x4000 can_post_links
ATTACH_FILES 0x8000 send_files
ADD_REACTIONS 0x40 add_reactions
MENTION_EVERYONE 0x20000 v1'de yalnızca yöneticiler
CONNECT (voice) 0x100000 join_voice
SPEAK 0x200000 speak_in_voice
STREAM (screen share) 0x200 screen_share
USE_VAD 0x2000000 use_vad (varsayılan true; false yapmak PTT'yi zorunlu kılar)
KICK_MEMBERS 0x2 kick_users != 'deny'
BAN_MEMBERS 0x4 ban_users != 'deny'
MUTE_MEMBERS 0x400000 mute_users != 'deny'
MOVE_MEMBERS 0x1000000 move_users != 'deny'
MANAGE_CHANNELS 0x10 create_channels / edit_channels / delete_channels değerlerinin hiçbiri 'deny' değil
MANAGE_GUILD 0x20 edit_server != 'deny'
MANAGE_ROLES 0x10000000 manage_members
MANAGE_NICKNAMES 0x8000000 manage_members (MANAGE_ROLES ile birlikte)
CHANGE_NICKNAME 0x4000000 Her zaman verilir (Discord varsayılanıyla eşleşir)
MANAGE_WEBHOOKS 0x20000000 v1'de sahip / yönetici
VIEW_AUDIT_LOG 0x80 v1'de sahip / yönetici
PRIORITY_SPEAKER 0x100 priority_speaker
MANAGE_EVENTS 0x200000000 manage_events != 'deny'
CREATE_EVENTS 0x100000000000 manage_events != 'deny' (MANAGE_EVENTS ile birlikte)
MANAGE_GUILD_EXPRESSIONS 0x40000000 manage_emojis != 'deny'
CREATE_GUILD_EXPRESSIONS 0x80000000000 manage_emojis != 'deny' (birlikte)
DEAFEN_MEMBERS 0x800000 deafen_users != 'deny'
SEND_MESSAGES_IN_THREADS 0x4000000000 send_messages (SEND_MESSAGES ile birlikte)

Varsayılan olarak açık bitler

Bunlar, Discord'un varsayılan rol davranışıyla eşleşecek şekilde reddedilmemiş her üye için ayarlanır. Bot mantığın bunları kontrol ediyorsa her zaman verilmiş görünürler (üye yasaklı değilse):

  • CREATE_INSTANT_INVITE (0x1)
  • USE_APPLICATION_COMMANDS (0x80000000)
  • USE_EXTERNAL_EMOJIS (0x40000)
  • USE_EXTERNAL_STICKERS (0x2000000000)

Her zaman sıfır dönen bitler

Bunların GameVox'ta henüz karşılığı yok ve ayarlanmamış olarak raporlanır. Bunlara bağlı botlar sorunsuz şekilde geri çekilmeli (çoğu kütüphane reddedilen bir biti zaten “bu özellik burada desteklenmiyor” olarak ele alır).

  • MANAGE_THREADS, USE_PUBLIC_THREADS, USE_PRIVATE_THREADS: konular (thread) v1'de yer tutucu olarak var.
  • MODERATE_MEMBERS (zaman aşımı): yerel karşılığı yok.
  • USE_EMBEDDED_ACTIVITIES: Aktiviteler özelliği yok.
  • USE_SOUNDBOARD, SEND_VOICE_MESSAGES: uygulanmadı.
  • Para kazanma bitleri: Premium Apps yok.

İzin hesaplama

Discord'un 7 adımlı algoritmasıyla aynı:

  1. Guild için @everyone izinleriyle başla.
  2. Üyenin sahip olduğu her rolü OR ile ekle.
  3. Sonuç ADMINISTRATOR içeriyorsa kısa devre yap: her şeye sahiptir.
  4. @everyone kanal üzerine yazmalarını uygula (önce allow, sonra deny).
  5. Her rolün kanal üzerine yazmalarını uygula (önce allow, sonra deny).
  6. Kullanıcının kanal üzerine yazmalarını uygula (önce allow, sonra deny).
  7. Kanal bir kategorideyse kategorinin üzerine yazmaları da rol / kullanıcı adımında uygulanır.

Aşağıdaki fark 2. adımda ortaya çıkar: bir GameVox üyesi tek bir gruptadır, yani OR ile eklenecek tek bir rol vardır. Bkz. Üye başına tek grup.

Üye başına tek grup

Discord'dan en büyük davranış farkı. Bir Discord üyesi aynı anda birçok role sahip olabilirken bir GameVox üyesi sunucu başına tam olarak bir gruba aittir. Bir grup atamak, üyenin önceki grubunun yerini alır.

Rol endpoint'leri yine çalışır ve zaten kullandığın kütüphaneler onları çağırmaya devam eder; yalnızca hepsi o tek gruba çözümlenir:

ÇağrıNe olur
PUT .../members/{id}/roles/{rid} Üye o gruba geçer. Önceki grubu yanında tutulmaz, onun yerini alır.
DELETE .../members/{id}/roles/{rid} Grubu kaldırır. Üyenin tek grubu buysa hiçbir grupta kalmak yerine sunucunun varsayılan grubuna düşer.
roles: [...] ile PATCH .../members/{id}Kabul edilir, sonra listedeki en yüksek rütbeli gruba indirgenir. Boş liste varsayılan grup demektir.

Sıradan bir member.roles.set([...]) çağrısı çalışmaya devam etsin diye liste reddedilmek yerine indirgenir. En yüksek rütbe kazanır, çünkü konumu belirleyen şey rütbedir: bir moderatör grubu ve bir renk grubu verildiğinde üye bir moderatördür.

Gruplar yükleme, ses, kamera ve ekran paylaşımı tavanları taşır ve bir üye bulunduğu gruplar arasındaki en cömert tavanı alır. Tek grupla bu, doğrudan kendi grubunun tavanıdır. Bir uygulamanın birini iki grupta tutamamasının diğer nedeni de budur: bu, yöneticinin koyduğu bir sınırı kaldırmanın bir yolu olurdu.

Bir uygulamanın kendi grubu (kurulumunun oluşturduğu grup) bunların hiçbirinden etkilenmez. Üyeliği kuruluma aittir ve hiçbir uygulama kendini ona ekleyemez ya da başka bir uygulamayı ondan çıkaramaz.

Rol hiyerarşisi

Yerel groups.rank, Discord'daki role.position değerine eşlenir. Bir bot, Discord kurallarıyla eşleşecek şekilde yalnızca kendi en yüksek rolünün konumunun kesinlikle altındaki rolleri yönetebilir. Botun en üst rolünde veya üzerindeki bir rolle yapılan PATCH .../members/{id}/roles/{rid} çağrıları 403 döndürür.

Zaman aşımları

Discord'un communication_disabled_until alanının v1'de GameVox'ta karşılığı yok. Bu alan ayarlanmış bir üyeye yapılan PATCH, açık bir hata mesajıyla 400 döndürür. Bunun yerine atma / susturma / yasaklama kullan.

← Dokümanlara dön