【问题标题】:DiscordJs - Member undefined when remove reaction firstDiscordJs - 首先删除反应时成员未定义
【发布时间】:2022-01-26 01:39:39
【问题描述】:

我试图在不和谐的帖子中添加/删除反应时创建一个基本的机器人添加/删除角色。

如果我先添加角色然后删除它,则代码可以工作,但假设我已经拥有角色并重新启动脚本。当我删除反应脚本给我的错误说: “无法读取未定义的属性(读取'角色')”

client.on('messageReactionRemove', async (reaction, user) => {
if (reaction.partial) {
    try {
        await reaction.fetch();
    } catch (error) {
        console.error('Something went wrong when fetching the message:', error);
        return;
    }
}

if (reaction.message.id != pinnedMsg) {
    return;
}
var role = reaction.message.guild.roles.cache.find(role => role.name === "ROLENAME");
const guild = reaction.message.guild;

const member = await guild.members.cache.find(member => member.id === user.id);

member.roles.remove(role); }); //var member is undefined here

【问题讨论】:

  • 如果成员没有被缓存,则获取该成员。

标签: javascript discord.js


【解决方案1】:

您需要使用<Guild>.members.fetch 获取成员,因为它们没有被缓存。不要忘记在需要时使用await,在缓存中查找是没有必要的。

您的案例示例:

await guild.members.fetch();
const member = guild.members.cache.find(member => member.id === user.id);

【讨论】:

  • 解决了这个问题。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-03
  • 1970-01-01
  • 1970-01-01
  • 2021-02-06
  • 1970-01-01
  • 1970-01-01
  • 2020-09-18
相关资源
最近更新 更多