gpt4 book ai didi

javascript - Discord.js : reaction. message.guild.members.find 不是函数

转载 作者:行者123 更新时间:2023-12-04 10:08:27 27 4
gpt4 key购买 nike

我正在尝试制作一个 Discord.js 机器人,它将“Joueur” Angular 色添加到对 ✅ 表情符号使用react的用户。我是 JS 的新手,我在互联网上找到了 reaction.message.guild.members.find 函数,但不知何故我得到了错误 TypeError: reaction.message.guild.members.find is not a function 并且未添加 Angular 色。这是我的代码的一部分:

client.on('messageReactionAdd', async (reaction, user) => {
if (reaction.emoji.name === "✅") {
try {
reaction.message.guild.members.find('id', user.id).addRole(reaction.message.guild.roles.find('name', 'Joueur'));
} catch {
console.log('Error : can\'t add the role');
}
}
});

最佳答案

如果您使用的是 Discord.js v12(最新版本),Guild#membersGuildMemberManager ,而不是像 v11 中那样的 Collection

要访问集合,请使用 cache 属性。

另一个区别是 Collection 不支持像那样通过键和值查找内容。但是,它确实支持通过其 id 获取对象:

reaction.message.guild.members.cache.get(user.id)

请注意,要通过另一个键查找对象,您需要使用以下方法:

reaction.message.guild.members.cache.find(member => member.someProperty === theValue)

您可能还想检查 react 是否在公会中完成(除非您使用的是意图并且没有使用 DIRECT_MESSAGE_REACTIONS 意图)。人们也可以在 DM 中添加对消息的 react ,因此 reaction.message.guild 可能是 undefined

关于javascript - Discord.js : reaction. message.guild.members.find 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61455173/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com