N'oluyo · Geliştirici Dokümanları · Son güncelleme: · https://noluyo.net/gelistirici

İzinler

İzinler bir bit alanıdır. Her iznin bir biti vardır ve API değeri ondalık metin olarak taşır: "68672". Metin yerine sayı göndermek veya tanımlı olmayan bir bit kullanmak 400 invalid_body verir.

İzinler

İzinler bir bit alanıdır. Her iznin bir biti vardır ve API değeri ondalık metin olarak taşır: "68672". Metin yerine sayı göndermek veya tanımlı olmayan bir bit kullanmak 400 invalid_body verir.

Değeri hesaplamak

Portaldaki Ekleme bağlantısı bölümünde izinleri seçtiğinde değer senin için hesaplanır ve bağlantıdaki izin olur.

Kendin hesaplamak istersen izinlerin değerlerini topla (veya bitlerini OR ile birleştir). Bazı izinler 32 bitin üstünde olduğu için JavaScript'te BigInt kullan:

const VIEW_CHANNEL = 1n << 10n;
const SEND_MESSAGES = 1n << 11n;
const value = VIEW_CHANNEL | SEND_MESSAGES;
console.log(value.toString()); // "3072"

Başlangıç rehberindeki 68608 şu toplamdır: ViewChannel (1024) + SendMessages (2048) + ReadMessageHistory (65536). Ses kanalına girip yayın yapan bir bot için 3146752 (ViewChannel + Connect + Speak) gerekir; ayrıntılar Ses sayfasında.

Ekleme bağlantısı bölümü Tepki ekle (AddReactions, 64) ve @herkes ve rolleri etiketle (MentionEveryone, 131072) izinlerini de sunar; bot bunları diğer izinler gibi isteyebilir.

İzin listesi

BitDeğerAdAnlamı
01CreateInstantInviteDavet oluşturma
12KickMembersÜyeyi sunucudan çıkarma
24BanMembersÜye yasaklama
38AdministratorTüm izinler; kanal ayarlarından etkilenmez
416ManageChannelsKanal yönetme
532ManageGuildSunucu yönetme, bot ekleme
664AddReactionsMesaja yeni emoji ile tepki verme
7128ViewAuditLogDenetim kaydını görme
8256PrioritySpeakerÖncelikli konuşmacı
9512StreamYayın açma
101024ViewChannelKanalı görme
112048SendMessagesMesaj gönderme
124096SendTTSMessagesSesli okunan mesaj gönderme
138192ManageMessagesBaşkalarının mesajlarını silme, sabitleme, tepki temizleme
1416384EmbedLinksBağlantı önizlemesi; botun embed'i için gerekmez, SendMessages yeter
1532768AttachFilesDosya gönderme
1665536ReadMessageHistoryGeçmiş mesajları okuma
17131072MentionEveryoneHerkesi ve her rolü etiketleme
18262144UseExternalEmojisBaşka sunucuların emojilerini kullanma
19524288ViewGuildInsightsSunucu istatistiklerini görme
201048576ConnectSes kanalına bağlanma
212097152SpeakSeste konuşma
224194304MuteMembersÜyeyi sunucuda susturma
238388608DeafenMembersÜyenin sesini kapatma
2416777216MoveMembersÜyeyi ses kanalları arasında taşıma
2533554432UseVADSes algılamayla konuşma
2667108864ChangeNicknameKendi takma adını değiştirme
27134217728ManageNicknamesBaşkalarının takma adını değiştirme
28268435456ManageRolesRol yönetme ve verme
29536870912ManageWebhooksWebhook yönetme
301073741824ManageGuildExpressionsEmoji, çıkartma ve ses yönetme
312147483648UseApplicationCommandsUygulama komutlarını kullanma; kanalda yoksa kişi orada hiçbir komutu görmez ve çalıştıramaz, bkz. Komut izinleri
324294967296RequestToSpeakKonuşma isteme
338589934592ManageEventsEtkinlik yönetme
3417179869184ManageThreadsAlt başlık yönetme
3534359738368CreatePublicThreadsHerkese açık alt başlık oluşturma
3668719476736CreatePrivateThreadsÖzel alt başlık oluşturma
37137438953472UseExternalStickersBaşka sunucuların çıkartmalarını kullanma
38274877906944SendMessagesInThreadsAlt başlıklarda mesaj gönderme
39549755813888UseEmbeddedActivitiesGömülü etkinlikleri kullanma
401099511627776ModerateMembersÜyeyi zamanlı susturma

Bu aşamadaki bot rotalarının kullandığı izinler, REST referansında her rotanın altında yazar. Listedeki bazı izinlerin bu aşamada bota açık bir rotası yoktur.

Bir üyenin izinleri nasıl hesaplanır

Bot da diğer üyeler gibi hesaplanır.

Sunucu düzeyinde:

  1. Sunucunun sahibi tüm izinlere sahiptir.
  2. Diğer üyeler için @everyone rolünün izinleri ile üyenin tüm rollerinin izinleri birleştirilir.
  3. Sonuçta Administrator varsa üye tüm izinlere sahiptir.

@everyone rolünün ID'si sunucunun ID'siyle aynıdır. Üyenin roles listesinde yer almaz, ama izinleri her zaman sayılır.

Bir rolün ID'sini sunucu ayarlarında Roller sekmesinden rolü açıp Kopyala ile alırsın (Android ve iOS'ta Rol ID'sini kopyala). Bir bot aynı kimlikleri GET /guilds/{id}/roles ile de listeleyebilir.

Kanalda. Administrator olanlar kanal ayarlarından etkilenmez. Diğerleri için kanalın izin geçersiz kılmaları (permission_overwrites) şu sırayla uygulanır; her adımda önce deny bitleri çıkarılır, sonra allow bitleri eklenir:

  1. @everyone için olan geçersiz kılma
  2. Üyenin rolleri için olanlar, birleştirilerek
  3. Üyenin kendisi için olan

Bağımlı izinler. Kanalda ViewChannel yoksa hiçbir izin kalmaz. SendMessages yoksa SendTTSMessages, MentionEveryone, AttachFiles ve EmbedLinks de geçersiz olur. Connect yoksa Speak, Stream, MuteMembers, DeafenMembers, MoveMembers, UseVAD, PrioritySpeaker ve RequestToSpeak de geçersiz olur.

Susturma. Zamanlı susturma sürerken üyede yalnızca ViewChannel ve ReadMessageHistory kalır. Bu, susturulan bot için de geçerlidir. Sahip ve yöneticiler susturulamaz.

Bir izin geçersiz kılmasının türü (type) rol için 0, üye için 1'dir.

Rol sıralaması

Her rolün bir position değeri vardır, büyük olan daha üsttedir. Üyenin rütbesi, en yüksek rolünün konumudur. Sunucu sahibi herkesten üsttedir.

  • Bir üyeyi çıkarmak, yasaklamak, susturmak veya takma adını değiştirmek için rütben hedefin rütbesinden büyük olmalıdır. Eşitlik yetmez; aksi halde 403 role_hierarchy döner.
  • Bir rolü düzenlemek, silmek, vermek veya almak için rütben o rolün konumundan büyük olmalıdır.
  • Rolün position değerini kendi rütbenden küçük bir değere ayarlayabilirsin; en küçük değer 1'dir.
  • Sahip olmadığın bir izni kimseye veremezsin (403 missing_permissions). Kanal geçersiz kılmaları için de aynısı geçerlidir.

Botun için bunun anlamı: Bot sunucuya eklenince rolü doğrudan @everyone'ın üstüne konur. Bu haliyle yalnızca rolü olmayan üyeler üzerinde işlem yapabilir. Moderasyon yapacak botun rolünü, bir sunucu yöneticisi Sunucu ayarları içindeki Roller listesinde sürükleyerek işlem yapacağı rollerin üstüne taşımalıdır.

Bot kendi rolünü değiştiremez, çünkü rütbesi o rolün konumundan büyük değildir; daha yüksek bir rol verilmişse değiştirebilir.

Sık görülen durumlar

Bot şunu alıyorMuhtemel neden
Kanalı okurken boş listeReadMessageHistory yok. Liste rotaları bu durumda hata vermez.
403 missing_accessKanalda ViewChannel yok.
403 missing_permissionsGereken izin yok ya da bot susturulmuş.
403 role_hierarchyHedefin rolü botun rolünden aşağıda değil.
404 unknown_guildBot o sunucunun üyesi değil.

Bu sayfayı yapay zekaya verirsen

Sırada ne var