示例#1
0
        public async ValueTask <DiscordRole?> GetRoleAsync(DiscordMessage message, DiscordEmoji emoji)
        {
            var rawEmoji = EmojiMapper.FromDiscord(emoji);
            var roleId   = await _context.ReactionRoles
                           .Where(x => x.MessageId == message.Id && x.Emoji == rawEmoji)
                           .Select(x => x.RoleId)
                           .SingleOrDefaultAsync();

            if (roleId == default)
            {
                return(null);
            }

            var guild = message.Channel.Guild;

            return(guild.GetRole(roleId));
        }
示例#2
0
        public static ReactionRoleDTO FromDiscord(ReactionRole reactionRole)
        {
            var emoji = EmojiMapper.FromDiscord(reactionRole.Emoji);

            return(new ReactionRoleDTO(reactionRole.Message.Id, emoji, reactionRole.Role.Id));
        }