微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何遍历数据库中的每个公会成员quick.db

如何解决我如何遍历数据库中的每个公会成员quick.db

我正在尝试执行排行榜命令,我想出了如何对所有机器人用户执行此操作,但是我却无法仅针对一个行会就知道如何执行此命令 我不断收到此错误TypeError: message.guild.members.forEach is not a function

代码

const db = require('quick.db')
const ms = require('parse-ms')
const discord = require(`discord.js`);
module.exports = {
    name: 'lb',execute(message) {
    const client = message.client
let prefix = db.get(`prefix_${message.guild.id}`)
let defaultprefix = "$$"
if(prefix === null) prefix = defaultprefix
let money = message.guild.members.forEach(member => db.get(`money_${member.id}`)).sort((a,b) => b.data - a.data)
money.length = 15;
var finalLb = ``;
for (var i in money) {
finalLb += `**#${money.indexOf(money[i])+1}** ${client.users.cache.get(money[i].ID.split('_')[1]) ? client.users.cache.get(money[i].ID.split('_')[1]).tag : `Deleted User#0000`} - ${money[i].data}\n`;
}

      const embed = new discord.MessageEmbed()
      .setAuthor(`Top 15 richest users in this server`)
      .setDescription(finalLb)
      .setThumbnail(message.guild.iconURL({ dynamic: true }))
      .setColor(`990000`)      
      .setTimestamp()
  
      message.channel.send(embed);
    }
}```

解决方法

公会的属性.members指向GuildMemberManager。要获取成员的实际集合,您需要获取GuildMemberManager.cache属性。

将您的代码更改为以下内容,然后尝试一下:

let money = message.guild.members.cache.forEach(<Code here>);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。