Çö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.

Akif9748

Kilopat
Katılım
19 Ocak 2020
Mesajlar
4.041
Makaleler
14
Çözümler
52
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 🙂
 

Geri
Yukarı