Show how many servers bot is in an embed | Discord.js

4.2k Views Asked by At

My bot is in 20+ servers and I want to be able to show users the servers my bot is in. I was able to do this on my own but i want the list of servers in one embed and if it passes the embed character limit a page 2 of the embed.

Code:

    if (message.content === 'zservers'){
        bot.guilds.cache.forEach((guild) => {
            const serverlist = new Discord.MessageEmbed()
            .setTitle(`   .`)
            .addField(guild)
            .setFooter(`Invite lovell <$`)
            message.channel.send(serverlist)
        })
    }

Result:

enter image description here

I want to be able to list all servers in a single embed!

3

There are 3 best solutions below

1
RealPenguin On BEST ANSWER

this should work

if (message.content === 'zservers'){
        let serverlist = ''
        bot.guilds.cache.forEach((guild) => {
            serverlist = serverlist.concat(" - " + guild.name + ": ID: " + guild.id + "\n")
        })
    
        const embed = new MessageEmbed()
        .setColor("RANDOM")
        .setTitle("Servers that have Naruse Jun Bot", '')
        .setDescription(serverlist)
        message.channel.send({embed});

}
4
Nikolas On

Make a general string and then append the guilds to this string.

    if (message.content === 'zservers'){
        let guilds = '';
        bot.guilds.cache.forEach((guild) => {
            guilds = guilds.concat(guild).concat("\n"); // concatenate the guild and add a new line in the end.
        })
        const serverlist = new Discord.MessageEmbed()
        .setTitle(`   .`)
        .addField(guilds) // use the general 'guilds' string.
        .setFooter(`Invite lovell <$`)
        message.channel.send(serverlist)
    }
2
Berk Ege On

Work?

Edit: UPDATED! Should work now.

if (message.content === 'zservers'){
    let guilds = bot.guilds.cache.array().join('\n')

    const serverlist = new Discord.MessageEmbed()
      .setTitle(`   .`)
      .setDescription(guilds)
      .setFooter(`Invite lovell <$`)

    message.channel.send(serverlist)
}

Edit 2: Similar question and exactly right answer -> https://stackoverflow.com/a/60693028/7090121