So I began to change my bot to get members from a guiold to show top users
The Code used to be
const { MessageEmbed } = require("discord.js");
const { stripIndents } = require("common-tags");
const { prefix } = require("../../botconfig.json");
const db = require('quick.db')
let bal = require('../../database/balance.json');
module.exports = {
config:{
name: "rich",
aliases: ["leader"],
category: "economy",
description: "Tells who is rich",
usage: "[command | alias]",
},
run: async (client, message, args) => {
let board = [];
for(let key of Object.keys(bal)){
let value = Object.assign({user: client.users.cache.get(key)}, bal[key]);
board.push(value);
board = board.filter(x => x.user);
board = board.sort((a,b) => b.balance-a.balance).splice(0, 10);
top = board.map((x, i) => `${i+1} ${x.user.username}\n Balance: ${x.balance.toLocaleString()}`).join('\n\n');
let embed = new MessageEmbed()
.setColor("RANDOM")
.setDescription(`**💴 | Top 10 Global Rich User\n\n**${top}`);
return message.channel.send(embed);
}
}
}
I changed the code to get the members from a guild
const { MessageEmbed } = require("discord.js");
const { stripIndents } = require("common-tags");
const { prefix } = require("../../botconfig.json");
const db = require('quick.db')
let bal = require('../../database/balance');
let rep = require('../../database/rep');
let work = require('../../database/works');
module.exports = {
config:{
name: "rich",
aliases: ["r"],
category: "economy",
description: "Tells who is rich",
usage: "[command | alias]"
},
run: async (client, message, args) => {
message.guild.members.fetch().then(guildMembers => {
let board = [];
for(let key of Object.keys(bal)){
let value = Object.assign({user: client.users.cache.get(key)}, bal[key]);
board.push(value);
}
board = guildMembers.filter(guildMember => Object.keys(bal).includes(guildMember.id));
top = board.map((x, i) => `${i+1}. **${x.balance.toLocaleString()}** - ${x.user.tag}`).join('\n\n');
let embed = new MessageEmbed()
.setColor("RANDOM")
.setDescription(`**Richest Users in ${message.guild.name}\n\n**${top}`);
return message.channel.send(embed);
})
}
}
I dont know what I did wrong or if I deleted something I was not supposed to but I keep getting the error TypeError: Cannot read property ‘toLocaleString’ of undefined.