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."); }
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); }
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)); }