【发布时间】:2020-07-22 14:05:30
【问题描述】:
所以我正在为我和我的朋友们写一个不和谐的机器人。我遇到了这个问题:我需要通过反应来找到投票的人数,但我只需要计算被授权投票的人(有角色授权)。 我尝试使用:
const result = await voting.awaitReactions(filter, { time: 15000 });
console.log(result.get('????').count);
但无论我使用何种过滤器,这都会返回投票的总人数 我试过反应收集器,但我无法让它工作。 请帮忙!
【问题讨论】:
-
你试过什么过滤器?
-
@Aplet123 我试过
const filter = (reaction, user) => (reaction.emoji.name === '????'||reaction.emoji.name === '????')&&(message.member.guild.members.cache.find(r=> r.id == user.id).roles.cache.has(grarole.id)==true||message.member.guild.members.cache.find(r=> r.id == user.id).roles.cache.has(botrole.id)==true);grarole 是提供授权的,而botrole 是bot 拥有的。我用第二个来确保总是有表情符号。 -
试试这个:
const filter = (reaction, user) => { if(reaction.emoji.name !== '????' && reaction.emoji.name !== '????') return false; let member = message.guild.members.cache.find(r => r.user.id === user.id); return member.roles.cache.has(grarole.id) || member.roles.cache.has(botrole.id); } -
没用。仍然计算所有投票的人,而不仅仅是具有角色的成员
标签: discord.js