Çözüldü Discord.js tüm sunuculardaki üyeleri toplamak

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
19 Ocak 2020
Mesajlar
4.640
Makaleler
18
Çözümler
58
JavaScript:
if (msg.content === prefix + 'sunucu'){
    let serverlist = ''
    client.guilds.cache.forEach((guild) => {
        serverlist = serverlist.concat(guild.memberCount)
    })
  

    const embed = new Discord.MessageEmbed()
    .setColor("RANDOM")
    .setTitle("SERVERLER :", '')
    .setDescription("Kullanıcı sayısı : " + serverlist)
    msg.channel.send({embed});


  }
Bu kodu girince çıkış olarak şöyle bir sayı veriyor:
1619363413574.png

Bu rakam tüm sunuculardaki üye sayısının yan yana yazılmış hali. Ama ben toplamını istiyorum, nasıl yapacağım?
@EKAloji , prim diyenlerle tartışacağına gel de yardım et, onu boşver.
 
Son düzenleme:
Çözüm
Concat ne demek onu da sizden öğreniyorum. :) Şu komut tüm sunucuları ve üyeleri listeliyordu:
JavaScript:
if (msg.content === prefix + 'Sunucu listesi){
    let serverlist = ''
    client.guilds.cache.forEach((guild) => {
        serverlist = serverlist.concat(" - **" + guild.name + "**: ID: " + guild.id + "  Kişi sayısı: " + guild.memberCount + "\n")
    })
  

    const embed = new Discord.MessageEmbed()
    .setColor("RANDOM")
    .setTitle("SERVERLER :", '')
    .setDescription(serverlist)
    msg.channel.send({embed});


  }
Çıktısı:
Eki Görüntüle 992169
Buradan yapmaya çalıştım ama pek becermiş sayılmam.
Normalde şu her şeyi hallediyordu: <Client>.users.cache.size ama başına bir şey gelmiş, Rastgele bir rakam sallıyor, o yüzden bunun üzerinden yapmaya çalışıyorum.
tamam işte tüm sunuculardan gelen datayı biliyorsunuz. Bir degişkenimiz olsun. her sunucu için memberCount değerlerini bu değişkende toplayarak tutalım.

JavaScript:
if (msg.content === prefix + 'Sunucu listesi){
    let serverlist = ''
    let count = 0; //<---
    client.guilds.cache.forEach((guild) => {
        count += guild.memberCount // <---
        serverlist = serverlist.concat(" - **" + guild.name + "**: ID: " + guild.id + "  Kişi sayısı: " + guild.memberCount + "\n")
    })
  

    const embed = new Discord.MessageEmbed()
    .setColor("RANDOM")
    .setTitle("SERVERLER :", '')
    .setDescription(serverlist)
    msg.channel.send({embed});


  }
Merhabalar hocam, embed işi bana çok karışık geliyor genellikle standart kod blokları kullanıyorum ama şöyle iken hatasız çıktı vermesi lazım:

JavaScript:
if (msg.content === prefix + 'sunucu'){
    let serverlist = ''
    client.guilds.cache.forEach((guild) => {
        serverlist = serverlist.concat(guild.memberCount)
    })

    const embed = new Discord.MessageEmbed()
    .setTitle("SERVERLER :", '')
    .setDescription("Kullanıcı sayısı : " + serverlist)
    .setColor("RANDOM")
    msg.channel.send({embed});
  }

Gene hata verirse etiketlemekten çekinmeyin, birazdan evde olacağım o zaman daha rahat çözerim.

Eğer istatistik koduna ihtiyacınız varsa buyurun:
 
Merhabalar hocam, embed işi bana çok karışık geliyor genellikle standart kod blokları kullanıyorum ama şöyle iken hatasız çıktı vermesi lazım:

JavaScript:
if (msg.content === prefix + 'sunucu'){
    let serverlist = ''
    client.guilds.cache.forEach((guild) => {
        serverlist = serverlist.concat(guild.memberCount)
    })

    const embed = new Discord.MessageEmbed()
    .setTitle("SERVERLER :", '')
    .setDescription("Kullanıcı sayısı : " + serverlist)
    .setColor("RANDOM")
    msg.channel.send({embed});
  }

Gene hata verirse etiketlemekten çekinmeyin, birazdan evde olacağım o zaman daha rahat çözerim.

Eğer istatistik koduna ihtiyacınız varsa buyurun:
Aynı, istatistik dediğiniz sanırım işe yarayacak :) , işe yararsa çözüm işaretlenerek bilgilendirilmiş olacaksınız :)
1619365952243.png
 
JavaScript:
if (msg.content === prefix + 'sunucu'){
    let serverlist = ''
    client.guilds.cache.forEach((guild) => {
        serverlist = serverlist.concat(guild.memberCount)
    })
 

    const embed = new Discord.MessageEmbed()
    .setColor("RANDOM")
    .setTitle("SERVERLER :", '')
    .setDescription("Kullanıcı sayısı : " + serverlist)
    msg.channel.send({embed});


  }
Bu kodu girince çıkış olarak şöyle bir sayı veriyor:
Eki Görüntüle 992065
Bu rakam tüm sunuculardaki üye sayısının yan yana yazılmış hali. Ama ben toplamını istiyorum, nasıl yapacağım?
@EKAloji , prim diyenlerle tartışacağına gel de yardım et, onu boşver.
Büyük ihtimal concat fonksiyonundan dolayı. Hatırladıgım kadarıyla concat fonksiyonu dizileri birleştiriyor. Yani a = [1 , 2, 3] olsun b = [ 4, 5 ,6] c = a.concat(b) olursa c = [1,2,3,4,5,6] olmuş oluyor. sen bunları toplaman gerekiyor. birleştirmen değil.

Reduce fonksiyonunu araştırmanı öneririm.
 
Büyük ihtimal concat fonksiyonundan dolayı. Hatırladıgım kadarıyla concat fonksiyonu dizileri birleştiriyor. Yani a = [1 , 2, 3] olsun b = [ 4, 5 ,6] c = a.concat(b) olursa c = [1,2,3,4,5,6] olmuş oluyor. sen bunları toplaman gerekiyor. birleştirmen değil.

Reduce fonksiyonunu araştırmanı öneririm.
Concat ne demek onu da sizden öğreniyorum. :) Şu komut tüm sunucuları ve üyeleri listeliyordu:
JavaScript:
if (msg.content === prefix + 'Sunucu listesi){
    let serverlist = ''
    client.guilds.cache.forEach((guild) => {
        serverlist = serverlist.concat(" - **" + guild.name + "**: ID: " + guild.id + "  Kişi sayısı: " + guild.memberCount + "\n")
    })
   

    const embed = new Discord.MessageEmbed()
    .setColor("RANDOM")
    .setTitle("SERVERLER :", '')
    .setDescription(serverlist)
    msg.channel.send({embed});


  }
Çıktısı:
1619367093213.png

Buradan yapmaya çalıştım ama pek becermiş sayılmam.
Normalde şu her şeyi hallediyordu: <Client>.users.cache.size ama başına bir şey gelmiş, Rastgele bir rakam sallıyor, o yüzden bunun üzerinden yapmaya çalışıyorum.
 
Concat ne demek onu da sizden öğreniyorum. :) Şu komut tüm sunucuları ve üyeleri listeliyordu:
JavaScript:
if (msg.content === prefix + 'Sunucu listesi){
    let serverlist = ''
    client.guilds.cache.forEach((guild) => {
        serverlist = serverlist.concat(" - **" + guild.name + "**: ID: " + guild.id + "  Kişi sayısı: " + guild.memberCount + "\n")
    })
  

    const embed = new Discord.MessageEmbed()
    .setColor("RANDOM")
    .setTitle("SERVERLER :", '')
    .setDescription(serverlist)
    msg.channel.send({embed});


  }
Çıktısı:
Eki Görüntüle 992169
Buradan yapmaya çalıştım ama pek becermiş sayılmam.
Normalde şu her şeyi hallediyordu: <Client>.users.cache.size ama başına bir şey gelmiş, Rastgele bir rakam sallıyor, o yüzden bunun üzerinden yapmaya çalışıyorum.
tamam işte tüm sunuculardan gelen datayı biliyorsunuz. Bir degişkenimiz olsun. her sunucu için memberCount değerlerini bu değişkende toplayarak tutalım.

JavaScript:
if (msg.content === prefix + 'Sunucu listesi){
    let serverlist = ''
    let count = 0; //<---
    client.guilds.cache.forEach((guild) => {
        count += guild.memberCount // <---
        serverlist = serverlist.concat(" - **" + guild.name + "**: ID: " + guild.id + "  Kişi sayısı: " + guild.memberCount + "\n")
    })
  

    const embed = new Discord.MessageEmbed()
    .setColor("RANDOM")
    .setTitle("SERVERLER :", '')
    .setDescription(serverlist)
    msg.channel.send({embed});


  }
 
Çözüm
tamam işte tüm sunuculardan gelen datayı biliyorsunuz. Bir degişkenimiz olsun. her sunucu için memberCount değerlerini bu değişkende toplayarak tutalım.

JavaScript:
if (msg.content === prefix + 'Sunucu listesi){
    let serverlist = ''
    let count = 0; //<---
    client.guilds.cache.forEach((guild) => {
        count += guild.memberCount // <---
        serverlist = serverlist.concat(" - **" + guild.name + "**: ID: " + guild.id + "  Kişi sayısı: " + guild.memberCount + "\n")
    })


    const embed = new Discord.MessageEmbed()
    .setColor("RANDOM")
    .setTitle("SERVERLER :", '')
    .setDescription(serverlist)
    msg.channel.send({embed});


  }
Ellerinize sağlık hocam. Kodu böyle değiştirdim ve çalıştı:
JavaScript:
if (msg.content === prefix + 'Sunucu listesi'){
   
    let serverlist = ''
    let count = 0; //<---
    client.guilds.cache.forEach((guild) => {
        count += guild.memberCount // <---

    })


    msg.channel.send(count);


  }

44 diyor, yani doğru cevap.
@EKAloji hocam siz de bu kodu sizin githubunuza ekleyin.
 
Ellerinize sağlık hocam. Kodu böyle değiştirdim ve çalıştı:
JavaScript:
if (msg.content === prefix + 'Sunucu listesi'){
  
    let serverlist = ''
    let count = 0; //<---
    client.guilds.cache.forEach((guild) => {
        count += guild.memberCount // <---

    })


    msg.channel.send(count);


  }

44 diyor, yani doğru cevap.
@EKAloji hocam siz de bu kodu sizin githubunuza ekleyin.
Sorununuz çözüldüğü için sevindim. Kolay gelsin. İyi günler 🙂
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı