【问题标题】:Can't reach members无法联系到成员
【发布时间】:2021-03-24 08:08:33
【问题描述】:

这是我在角色中显示成员的代码。但是当我为一个有很多成员的角色调用这个命令时,它只返回我的名字。我该如何解决? V12

let role;

if(message.mentions.roles.first() || message.guild.roles.cache.get(args[0])) {
    role    = message.mentions.roles.first() || message.guild.roles.cache.get(args[0]);
    if(!role)
        return message.reply("I can't find this role!");
} else {
    let choosenRole = args.slice(0).join(" ");
    if(!choosenRole)
        return message.reply("Please type a role name to check.");

    role = message.guild.roles.cache.find(r => r.name === choosenRole);
    if(!role)
        return message.reply("I can't find this role!");

}

    let inrole = new Discord.MessageEmbed()
    .setColor("#09ba87")
    .setAuthor(`${role.name}(${role.members.size})`)
    .setDescription(`\n・` + role.members.map(m => m.user.username + "#" + m.user.discriminator).join("\n・"))

    let m = await message.channel.send(inrole);

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:

    嘿,您的问题是因为最近的 Discord Api 网关更改导致 Guild 缓存为空,您需要启用意图,这里是一个解决方案 -

    • 前往Discord Developers Portal
    • 选择您的应用程序
    • 如果您向下滚动一点,在bot 部分内,您将看到一个名为Privileged Gateway Intents 的部分
    • 启用SERVER MEMBERS INTENT并重启bot,你会发现你的缓存不限于小数!

    如果这仍然无效,请尝试获取所有公会成员 - message.guild.members.fetch()Discord.js了解有关意图的更多信息

    【讨论】:

      猜你喜欢
      • 2018-01-07
      • 2011-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      相关资源
      最近更新 更多