Example #1
0
        public async Task ForceCorrect(IGuildUser user)
        {
            var aliases = _aliasService.GetActiveAliases(user.Id).ToList();

            foreach (var alias in aliases)
            {
                _auditService.ForceCorrect(alias.Id);
            }

            await ReplyAsync("Done.");
        }
Example #2
0
        private async Task ReactionManipulated(SocketReaction reaction, ReactionAction action)
        {
            if (reaction.User.Value.IsBot)
            {
                return;
            }
            if (!_raidRepository.Contains(reaction.MessageId))
            {
                return;
            }
            if (!_userService.UserExists(reaction.UserId) &&
                !(await _userService.TryAddUser(reaction.UserId, (reaction.Channel as IGuildChannel)?.Guild)))
            {
                return;
            }
            var raid = _raidRepository.GetRaid(reaction.MessageId);

            if (!(reaction.User.Value is IGuildUser))
            {
                return;
            }
            var aliases = _aliasService.GetActiveAliases(reaction.UserId).ToList();

            if (!aliases.Any())
            {
                return;
            }
            var aliasViewModels = _mapper.Map <List <EpgpAlias>, List <EpgpAliasViewModel> >(aliases);
            var role            = reaction.Emote.Name.ParseRoleFromEmote();
            var participant     = new RaidParticipant(reaction.UserId)
            {
                Aliases = aliasViewModels,
                Role    = role
            };

            if (action == ReactionAction.Add)
            {
                raid.RaidObject.Participants.AddOrUpdate(participant.Id, id => participant,
                                                         (id, raidParticipant) => participant);
            }
            else if (action == ReactionAction.Remove)
            {
                if (raid.RaidObject.Participants.TryGetValue(reaction.UserId, out var existingParticipant) &&
                    existingParticipant.Role == participant.Role)
                {
                    raid.RaidObject.Participants.TryRemove(reaction.UserId, out _);
                }
            }
            var embed = CreateEmbed(raid.RaidObject, raid.ServerId);
            await raid.Message.ModifyAsync(opt => opt.Embed = embed);
        }
Example #3
0
        public async Task <Item> TryGetItem(string queryString, ICommandContext commandContext,
                                            EpgpAlias targetAlias = null)
        {
            if (targetAlias == null)
            {
                var userId  = commandContext.User.Id;
                var aliases = _aliasService.GetActiveAliases(userId);
                targetAlias = aliases.FirstOrDefault();
            }
            var item = await GetQueriedItem(queryString, commandContext);

            if (item == null)
            {
                return(null);
            }
            return(await _itemResolver.ResolveItem(item, commandContext, targetAlias));
        }