Discord Guild Tag Kontrol Sistemi
Guild Tag doğrulama, rol yönetimi ve çalışma mantığı
Guild Tag doğrulama, rol yönetimi ve çalışma mantığı
Merhaba arkadaşlar,
Bu konuda Discord'un yeni Guild Tag sistemini nasıl kontrol ettiğimi, neden bu yöntemi kullandığımı ve sistemin arka planda nasıl çalıştığını anlatacağım.
Bu rehber tamamen çalışma mantığını anlatmaktadır. Herhangi bir hazır sistem veya kapsamlı kod paylaşımı yapılmayacaktır.
📌 Guild Tag Bilgisi Nereden Geliyor?
Discord, kullanıcının profilinde seçili olan Guild Tag bilgisini kullanıcı objesi içerisinde döndürmektedir.
Kontrol edilen iki temel alan bulunmaktadır.
Kod:
user.primaryGuild.tag
user.primaryGuild.identityGuildId- user.primaryGuild.tag
Kullanıcının profilinde görünen Guild Tag bilgisidir. - user.primaryGuild.identityGuildId
Tag'ın hangi Discord sunucusuna ait olduğunu belirten benzersiz Guild ID'dir.
Örneğin kullanıcı profilinde aşağıdaki gibi bir tag bulunabilir.
Kod:
HUB
ABC
DEV📌 Neden Sadece Tag Yazısını Kontrol Etmiyorum?
Birçok kişi yalnızca tag ismini kontrol etmektedir.
Fakat bu yöntem sağlıklı değildir.
Örneğin;
Kod:
Sunucu A → ABC
Sunucu B → ABCSadece "ABC" yazısını kontrol ettiğinizde kullanıcının hangi sunucuya ait tagı kullandığını anlayamazsınız.
Bu nedenle sistem yalnızca tag yazısına değil, aynı zamanda identityGuildId değerine de bakmaktadır.
Kontrol mantığı oldukça basittir.
Kod:
Kullanıcının Guild ID'si == Kendi sunucumun Guild ID'si📌 Guild Tag Nasıl Doğrulanıyor?
İlk olarak kullanıcı objesi içerisinden Guild bilgileri okunmaktadır.
Kod:
const clanTag = user.primaryGuild?.tag;
const clanId = user.primaryGuild?.identityGuildId;Kod:
clanId === Settings.Main.GuildID- true → Kullanıcı doğru Guild Tag'ını kullanıyor.
- false → Kullanıcı farklı bir Guild Tag kullanıyor veya hiç Guild Tag taşımıyor.
Bu doğrulama sayesinde aynı tagı kullanan farklı sunucular birbirine karışmaz.
📌 Rol Kontrolü Nasıl Yapılıyor?
Guild Tag doğrulandıktan sonra ikinci aşamaya geçilir.
Öncelikle kullanıcıda ilgili rolün bulunup bulunmadığı kontrol edilir.
Kod:
member.roles.cache.has(role.id)Kontrol sırası şu şekildedir.
- Kullanıcıda doğru Guild Tag var mı?
- İlgili role zaten sahip mi?
- Sahip değilse rol ver.
Eğer kullanıcı zaten role sahipse tekrar rol verme isteği gönderilmez.
Bu hem performans hem de Rate Limit açısından oldukça önemlidir.
📌 Tag Kaldırıldığında Ne Oluyor?
Sistem yalnızca rol vermek için çalışmaz.
Belirli aralıklarla yapılan kontroller sayesinde kullanıcı tagını kaldırdığı anda bu durum da tespit edilir.
Eğer;
- Guild Tag artık bulunmuyorsa,
- Ancak kullanıcı hâlâ tag rolünü taşıyorsa,
ilgili rol otomatik olarak kaldırılır.
İstenirse aynı anda log mesajı gönderilebilir veya ek işlemler gerçekleştirilebilir.
Bu sayede sistem tamamen otomatik çalışmaktadır.
🚫 Yasaklı Guild Tag Kontrolü
Sistem yalnızca kendi Guild Tag'ını kontrol etmekle sınırlı değildir.
İstenildiği kadar yasaklı Guild ID tanımlanabilir.
Kontrol sırasında kullanıcının taşıdığı Guild ID bu liste içerisinde bulunuyorsa kullanıcı yasaklı tag taşıyor olarak kabul edilir.
Burada da yine isim değil, Guild ID kontrol edilmektedir.
Bu sayede kullanıcı sadece görünen tag yazısını değiştirerek sistemi kandıramaz.
Yapılandırmaya göre;
- Yasaklı rolü verilebilir.
- Normal tag rolü kaldırılabilir.
- Kullanıcıya bilgilendirme mesajı gönderilebilir.
- Log kanalına kayıt düşülebilir.
- İstenirse doğrudan ban işlemi uygulanabilir.
✔ Sonuç
Bu sistem tamamen Discord'un sağladığı primaryGuild verisini kullanmaktadır.
Doğrulama sırasında kontrol edilen bilgiler şunlardır.
- user.primaryGuild.tag
- user.primaryGuild.identityGuildId
Bu yöntem sayesinde;
- Aynı tagı kullanan farklı sunucular karışmaz.
- Doğrulama tamamen Guild ID üzerinden gerçekleştirilir.
- Rol verme ve rol alma işlemleri güvenli şekilde yapılır.
- Yasaklı Guild Tag'ları güvenilir biçimde tespit edilebilir.
- Gereksiz Discord API istekleri engellenmiş olur.
)

