问题描述
伙计们,我目前正在处理 quick.db 排行榜命令,但它返回全局排行榜,但我希望它只返回 message.guild 中的用户姓名。
我目前的磅码是这个
const discord = require('discord.js')
const db = require('quick.db')
module.exports.run = async (bot,message,args) => {
const ic = '<:mon:834428547064922142>'
let money = db.fetchAll(message.guild.id).filter(data => data.ID.startsWith(`mon_`)).sort((a,b) => (b.data-a.data))
money.length = 25;
var finalLb = "";
for (var i in money) {
finalLb += `**${money.indexOf(money[i])+1}. ${(await bot.users.fetch(money[i].ID.split('_')[1])).username ? (await bot.users.fetch(money[i].ID.split('_')[1])).username : "UnkNown User#0000"}** : ${ic} ${parseInt(JSON.stringify(money[i].data))}\n`;
}
const embed = new discord.MessageEmbed()
.setAuthor(`leaderboard`,message.guild.iconURL())
.setColor("RANDOM")
.setDescription(finalLb)
.setFooter(bot.user.tag,bot.user.displayAvatarURL())
.setTimestamp()
message.channel.send(embed);
}
module.exports.help = {
name:"rich",aliases: [""]
}
解决方法
尝试将其添加到您的代码中
if(guild.members.cache.has("The UserID")){
//Add the user in leaderboard
//finalLb += `**${money. .........your code
}
,
const member = message.guild.members.cache.get('user id');
if(!member){
// what to do if member is not provided
}
}