Exemple #1
0
        public ReactionRole ToDiscord(DiscordClient client, DiscordMessage message)
        {
            var guild = message.Channel.Guild;
            var role  = guild.GetRole(RoleId);
            var emoji = EmojiMapper.ToDiscord(client, Emoji);

            return(new ReactionRole(message, emoji, role));
        }
Exemple #2
0
        public async ValueTask <DiscordEmoji?> GetEmojiAsync(DiscordClient client, DiscordMessage message, DiscordRole role)
        {
            var rawEmoji = await _context.ReactionRoles
                           .Where(x => x.MessageId == message.Id && x.RoleId == role.Id)
                           .Select(x => x.Emoji)
                           .SingleOrDefaultAsync();

            if (rawEmoji == null)
            {
                return(null);
            }

            return(EmojiMapper.ToDiscord(client, rawEmoji));
        }
Exemple #3
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));
        }
Exemple #4
0
        public static ReactionRoleDTO FromDiscord(ReactionRole reactionRole)
        {
            var emoji = EmojiMapper.FromDiscord(reactionRole.Emoji);

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