伙计们,我正在为我的经济机器人使用 quickmongo,我想制作一个公会排行榜命令,该命令将仅显示公会中的用户姓名,并且我将数据存储在全球范围内。我之前使用过此代码,但如果该命令在大型服务器中运行,它会使我的机器人崩溃。
let xx = [];
await Promise.all(
message.guild.members.cache.map(async(member) => {
let id = member.id;
let nick = await db.fetch(`nick_${id}`) || member.user.tag;
let bal = await db.fetch(`mon_${id}`);
if ((!bal || bal === 0)) return;
xx.push({ data: bal, ID: `${nick}` });
console.log(xx);
})
);
let xy = xx.sort((a, b) => b.data - a.data);
if (xy.lenght < 1) return message.reply('No rich people here -_-');
xy.length = 5;
var final = "";
for (var i in xy) {
let path = '?️';
let ind = xy.indexOf(xy[i]) + 1;
if (ind == 1) path = '?';
else if (ind == 2) path = '?';
else if (ind == 3) path = '?';
final += `${path} **${xy[i].data.toLocaleString()}** - ${xy[i].ID}\n`
}
);
所以我试图找到一种方法来获得公会排行榜,而无需缓存整个公会。