Discord.js GuildMember ile User Arasındaki Fark
En çok karıştırılan Discord.js kavramlarından biri
En çok karıştırılan Discord.js kavramlarından biri
Merhaba arkadaşlar,
Discord.js geliştirirken en çok karıştırılan konulardan biri User ve GuildMember kavramlarıdır.
İlk bakışta ikisi de aynı kullanıcıyı temsil ediyor gibi görünse de aslında farklı amaçlar için kullanılırlar.
Bu rehberde User ve GuildMember arasındaki farkları basit örneklerle anlatacağım.
📖 User Nedir?
User, Discord hesabını temsil eder.
Yani kullanıcının Discord genelindeki bilgilerini içerir.
Örneğin;
- Kullanıcı ID'si
- Kullanıcı adı
- Avatar
- Global Display Name
- Bot olup olmadığı
Bu bilgiler kullanıcının tüm Discord hesabı için geçerlidir.
Kullanıcı hangi sunucuya girerse girsin User bilgisi değişmez.
📖 GuildMember Nedir?
GuildMember ise kullanıcının belirli bir sunucudaki durumunu temsil eder.
Yani aynı kullanıcı farklı sunucularda farklı GuildMember bilgilerine sahip olabilir.
GuildMember içerisinde;
- Roller
- Takma ad (Nickname)
- Katılma tarihi
- Timeout bilgisi
- Sunucuya özel izinler
gibi sadece o sunucuya ait bilgiler bulunur.
🧠 Basit Bir Örnek
toji isimli bir kullanıcı düşünelim.
Discord hesabında;
- Kullanıcı Adı : toji
- Avatar : Profil Fotoğrafı
bulunuyor.
Bu bilgiler User nesnesinde yer alır.
Ancak;
Sunucu A'da "Kurucu" rolüne,
Sunucu B'de ise "Üye" rolüne sahip olabilir.
Ayrıca;
Sunucu A'da takma adı "çok havalı nickname",
Sunucu B'de ise "never meant to belong"
olabilir.
İşte bu bilgiler GuildMember nesmesinde tutulur.
🆚 Hangi Bilgi Nerede Bulunur?
User içerisinde bulunan bilgiler:
- ID
- Username
- Global Display Name
- Avatar
- Bot bilgisi
GuildMember içerisinde bulunan bilgiler:
- Nickname
- Roller
- Sunucuya katılma tarihi
- Timeout bilgisi
- Sunucuya özel izinler
⚠️ En Çok Yapılan Hata
Yeni başlayanların yaptığı en büyük hata User üzerinden rol kontrolü yapmaya çalışmaktır.
Örneğin;
Kod:
user.rolesÇünkü roller Discord hesabına değil, sunucuya özeldir.
Rol kontrolü her zaman GuildMember üzerinden yapılmalıdır.
Aynı durum;
- Nickname
- Timeout
- Permissions
için de geçerlidir.
💡 User'a Nasıl Ulaşılır?
GuildMember nesnesi zaten User nesnesini içerisinde barındırır.
Bu yüzden;
Kod:
member.userYani;
GuildMember → Sunucu bilgileri
User → Discord hesabı bilgileri
şeklinde düşünebilirsiniz.
✔ Sonuç
User ve GuildMember aynı kullanıcıyı temsil etse de farklı amaçlar için kullanılır.
- User, kullanıcının Discord hesabına ait genel bilgileri içerir.
- GuildMember, kullanıcının belirli bir sunucudaki durumunu temsil eder.
- Rol, nickname ve izin gibi işlemler GuildMember üzerinden yapılmalıdır.
- Avatar, kullanıcı adı ve kullanıcı ID'si gibi bilgiler ise User üzerinden alınmalıdır.
Bu iki kavramın farkını doğru anlamak, Discord.js geliştirirken karşılaşabileceğiniz birçok hatanın önüne geçmenizi sağlayacaktır.
Ücretli / Ücretsiz Eklenti İşleri İçin:
Discord: never.meant.to.belong
WhatsApp: Mesaj Gönder
Discord: never.meant.to.belong
WhatsApp: Mesaj Gönder
)

