检查添加反应的用户是否有角色
Check if the user adding a reaction has a role
我想检查对消息做出反应的用户是否有角色,这样如果用户没有等级,机器人将忽略命令的其余部分,但我不知道如何。
示例:如果具有管理员级别的用户对 :eggsa: 表情符号做出反应,机器人将继续执行命令,但如果我只有会员级别,机器人将忽略我。
client.on('messageReactionAdd', reaction => {
const eggsa = client.emojis.find(emoji => emoji.name === "eggsa");
if (reaction.emoji.name === 'eggsa') {
const message = reaction.message;
const kanal = reaction.message.guild.channels.find('name', 'sitater');
var embed = new Discord.RichEmbed()
.setAuthor(reaction.message.content)
.setTimestamp()
.setFooter(reaction.message.author.username, reaction.message.author.avatarURL)
kanal.send({embed});
}
});
现阶段代码有效,仅供大家使用
如果有人能帮助我,我将不胜感激 >:)
如果您查看 messageReactionAdd docs,您可以看到除了反应之外,您还可以获得添加反应的用户。所以而不是
client.on('messageReactionAdd', reaction => {
你会
client.on('messageReactionAdd', (reaction, user) => {
那么您就有了 User 类型的用户。因为 user
不是 GuildMember 类型,您首先需要获取正确的 Guild 成员,然后才能检查 his/her 角色。
最简单的方法是获取添加了 const msg = reaction.message;
反应的消息。然后你可以从const guild = msg.guild;
的消息中获取公会。现在您可以使用 const guildMembers = guild.members;
访问公会成员。最后,您需要使用 const guildMember = guildMembers.get(user.id);
.
找到正确的成员
现在你有了你的公会成员,你可以访问 his/her Roles 从而检查 he/she 是否有某个角色
我想检查对消息做出反应的用户是否有角色,这样如果用户没有等级,机器人将忽略命令的其余部分,但我不知道如何。
示例:如果具有管理员级别的用户对 :eggsa: 表情符号做出反应,机器人将继续执行命令,但如果我只有会员级别,机器人将忽略我。
client.on('messageReactionAdd', reaction => {
const eggsa = client.emojis.find(emoji => emoji.name === "eggsa");
if (reaction.emoji.name === 'eggsa') {
const message = reaction.message;
const kanal = reaction.message.guild.channels.find('name', 'sitater');
var embed = new Discord.RichEmbed()
.setAuthor(reaction.message.content)
.setTimestamp()
.setFooter(reaction.message.author.username, reaction.message.author.avatarURL)
kanal.send({embed});
}
});
现阶段代码有效,仅供大家使用
如果有人能帮助我,我将不胜感激 >:)
如果您查看 messageReactionAdd docs,您可以看到除了反应之外,您还可以获得添加反应的用户。所以而不是
client.on('messageReactionAdd', reaction => {
你会
client.on('messageReactionAdd', (reaction, user) => {
那么您就有了 User 类型的用户。因为 user
不是 GuildMember 类型,您首先需要获取正确的 Guild 成员,然后才能检查 his/her 角色。
最简单的方法是获取添加了 const msg = reaction.message;
反应的消息。然后你可以从const guild = msg.guild;
的消息中获取公会。现在您可以使用 const guildMembers = guild.members;
访问公会成员。最后,您需要使用 const guildMember = guildMembers.get(user.id);
.
现在你有了你的公会成员,你可以访问 his/her Roles 从而检查 he/she 是否有某个角色