'Server Member Count DiscordJS V13
I need help with my code. My plan is to make a command that shows how many members I have on my server. Can someone help me? I'm just going to add more details since I can't upload my question if my details is short. If someone wants to help me with my discord bot or maybe teach me how to because I'm just a beginner trying to learn discord.js. Add me on Twitter (TwT) : KiseeIsHere
const Discord = require("discord.js");
const {MessageEmbed} = require("discord.js");
module.exports.run = async (client, message, args) => {
try {
await message.guild.members.fetch().catch(() => {});
message.reply({embeds: [new Discord.MessageEmbed()
.setAuthor("Kisee")
.setColor("2F3136")
.addField(message.guild.memberCount + "\`", true)
.addField(message.guild.members.cache.filter(member => !member.user.bot).size + "\`", true)
.addField(message.guild.members.cache.filter(member => member.user.bot).size + "\`", true)
.addField(message.guild.members.cache.filter(member => member.presence && member.presence && member.presence.status != "offline").size + "\`", true)
.addField(message.guild.members.cache.filter(member => !member.user.bot && member.presence && member.presence && member.presence.status != "offline").size + "\`", true)
.addField(message.guild.members.cache.filter(member => member.user.bot && member.presence && member.presence && member.presence.status != "offline").size + "\`", true)
.addField(message.guild.members.cache.filter(member => member.presence && member.presence && member.presence.status == "idle").size + "\`", true)
.addField(message.guild.members.cache.filter(member => !member.user.bot && member.presence && member.presence && member.presence.status == "idle").size + "\`", true)
.addField(message.guild.members.cache.filter(member => member.user.bot && member.presence && member.presence && member.presence.status == "idle").size + "\`", true)
.addField(message.guild.members.cache.filter(member => member.presence && member.presence && member.presence.status == "dnd").size + "\`", true)
.addField(message.guild.members.cache.filter(member => !member.user.bot && member.presence && member.presence && member.presence.status == "dnd").size + "\`", true)
.addField(message.guild.members.cache.filter(member => member.user.bot && member.presence && member.presence && member.presence.status == "dnd").size + "\`", true)
.addField(message.guild.members.cache.filter(member => !member.presence || member.presence && member.presence.status == "offline").size + "\`", true)
.addField(message.guild.members.cache.filter(member => !member.user.bot && (!member.presence || member.presence && member.presence.status == "offline")).size + "\`", true)
.addField(message.guild.members.cache.filter(member => member.user.bot && (!member.presence || member.presence && member.presence.status == "offline")).size + "\`", true)
.setTimestamp()
]});
} catch (e) {
console.log("error")
return message.reply({embeds: [new MessageEmbed()
.setColor("2F3136")
.setFooter("error")
.setTitle("error")
.setDescription("error")
]});
}
}
module.exports.config = {
name: "membercount",
aliases: ["mc"]
}
Solution 1:[1]
Small hint, if you find yourself typing the same thing over and over (generally more than 2 times), make it a constant
For example
.addField(message.guild.members.cache...
.addField(message.guild.members.cache...
.addField(message.guild.members.cache...
.addField(message.guild.members.cache...
.addField(message.guild.members.cache...
// more efficient usage
const allMembers = message.guild.members.cache
.addField(allMembers...
.addField(allMembers...
.addField(allMembers...
.addField(allMembers...
.addField(allMembers...
That aside, below is a working example, feel free to customize further if needed. BTW .setAuthor and .setFooter must be passed as an object not a string, that is demonstrated below in the answer.
const {
MessageEmbed,
} = require("discord.js");
module.exports.run = async (client, message, args) => {
const allUsers = client.users.cache;
const allMembers = message.guild.members.cache;
const embed = new MessageEmbed()
.setAuthor({
name: "Kisee",
})
.setColor("2F3136")
.addFields({
name: `Total Members`,
value: `${allUsers.size}`,
inline: true,
}, {
name: `Users`,
value: `${allUsers.filter(user => !user.bot).size}`,
inline: true,
}, {
name: `Bots`,
value: `${allUsers.filter(user => user.bot).size}`,
inline: true,
}, {
name: `Online`,
value: `${allMembers.filter(member => !member.user.bot && member.presence && member.presence.status === 'online').size}`,
inline: true,
}, {
name: `Offline`,
value: `${allMembers.filter(member => !member.user.bot && !member.presence || member.presence.status === 'offline').size}`,
inline: true,
}, {
name: `Idle`,
value: `${allMembers.filter(member => !member.user.bot && member.presence && member.presence.status === 'idle').size}`,
inline: true,
}, {
name: `DND`,
value: `${allMembers.filter(member => !member.user.bot && member.presence && member.presence.status === 'dnd').size}`,
inline: true,
})
.setTimestamp();
message.reply({
embeds: [embed],
});
};
module.exports.config = {
name: "membercount",
aliases: ["mc"],
};
ignore the first line ghost = client in my code
Requesting
const client = new Client({
intents: // whatever you have here,
partials: // not necessary but may also be present,
})
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |


