DiscordJS - 刷新成员的角色缓存



我有一些代码应该分配一个角色,但前提是用户还没有角色(不想用多余的角色分配来滥发discord api(。

let member = await guild.members.fetch(user.discord_id);
if (member.roles.cache.find(role => role.id == roleId)) {
continue;
}
let role = guild.roles.cache.find(role => role.id == roleId);
await member.roles.add(role);

这是第一次(即,只有在用户在脚本开始时没有角色的情况下,它才会分配角色(,但问题是member.roles.cache似乎从未更新过。因此,即使在分配了角色后,它也不包含它,或者如果我在discord应用程序中手动添加/删除角色,缓存也永远不会反映这种变化。

在程序的生命周期中,我一直找不到刷新缓存的方法。

如有任何帮助,我们将不胜感激。谢谢

在我发布这篇文章后,我找到了答案:

let member = (await guild.members.fetch({ user: user.discord_id, force: true }));

这样可以确保在获取成员的数据时绕过缓存。

最新更新