Esempio n. 1
0
        public GuildChar GetCharFromGuild(string findName, string realmName, string guildName, string regionName = "us")
        {
            GuildMembers members     = new GuildMembers();
            string       matchedName = string.Empty;
            GuildChar    guildInfo   = new GuildChar();
            Regex        myRegex     = new Regex($@"{findName.ToLower()}");

            guildName = guildName.Replace(" ", "%20");
            try
            {
                members = GetGuildMembers(realmName, guildName, regionName);
            }
            catch (Exception ex)
            {
                _logger.LogError($"{ex.Message}");
            }
            bool done = false;

            while (!done)
            {
                foreach (Member member in members.members.OrderByDescending(m => m.character.name))
                {
                    string curMember = string.Empty;
                    curMember = member.character.name;
                    MatchCollection m = myRegex.Matches(curMember.ToLower());

                    switch (m.Count)
                    {
                    case 1:
                    {
                        matchedName = curMember;
                        realmName   = member.character.realm.slug;

                        guildInfo.charName   = curMember;
                        guildInfo.realmName  = realmName;
                        guildInfo.regionName = regionName;
                        done = true;
                        break;
                    }

                    default:
                    {
                        break;
                    }
                    }
                }
            }

            return(guildInfo);
        }
Esempio n. 2
0
        public GuildChar GetCharFromGuild(string findName, string realmName, string guildName, string regionName = "us")
        {
            GuildMembers members     = new GuildMembers();
            string       matchedName = string.Empty;
            GuildChar    guildInfo   = new GuildChar();
            Regex        myRegex     = new Regex($@"{findName.ToLower()}");

            guildName = guildName.Replace(" ", "%20");
            Console.WriteLine(guildName);
            try
            {
                members = GetGuildMembers(realmName, guildName, regionName);
            }
            catch (Exception ex)
            {
                Console.WriteLine($"{ex.Message}");
            }
            Console.WriteLine("Get char from guild");
            foreach (Member member in members.members)
            {
                string curMember = string.Empty;

                curMember = member.character.name;

                MatchCollection m = myRegex.Matches(curMember.ToLower());

                switch (m.Count)
                {
                case 1:
                {
                    matchedName = curMember;
                    realmName   = member.character.realm;

                    guildInfo.charName   = curMember;
                    guildInfo.realmName  = realmName;
                    guildInfo.regionName = regionName;

                    break;
                }

                default:
                {
                    break;
                }
                }
            }
            return(guildInfo);
        }
Esempio n. 3
0
        public async Task <GuildChar> GetCharFromArgs(string args, ICommandContext context)
        {
            string           regionPattern = "^[a-z]{2}$";
            string           charName      = string.Empty;
            string           realmName     = string.Empty;
            string           foundRegion   = string.Empty;
            Regex            matchPattern  = new Regex($@"{regionPattern}");
            GuildChar        guildie       = null;
            List <FoundChar> chars;

            NinjaObjects.GuildObject guildObject = new NinjaObjects.GuildObject();
            GuildChar charInfo = new GuildChar
            {
                realmName = string.Empty,
                charName  = string.Empty
            };
            int argNumber = args.Split(' ').Count();

            switch (argNumber)
            {
            case 1:
            {
                charName = args.Split(' ')[0].Trim();
                break;
            }

            case 2:
            {
                charName  = args.Split(' ')[0].Trim();
                realmName = args.Split(' ')[1].Trim();
                break;
            }
            }
            if (argNumber > 2)
            {
                charName  = args.Split(' ')[0].Replace("'", string.Empty).Trim();
                realmName = string.Empty;
                int i = 0;
                do
                {
                    i++;
                    MatchCollection match = matchPattern.Matches(args.Split(' ')[i].ToLower());
                    if (match.Count > 0)
                    {
                        foundRegion = match[0].Value;
                        break;
                    }
                    if (i == argNumber - 1)
                    {
                        realmName += $"{args.Split(' ')[i]}".Replace("\"", "");
                    }
                    else
                    {
                        realmName += $"{args.Split(' ')[i]} ".Replace("\"", "");
                    }
                }while (i <= argNumber - 2);
                realmName = realmName.Trim();
            }
            if (string.IsNullOrEmpty(realmName))
            {
                //See if they're a guildie first
                try
                {
                    guildObject = await GetGuildName(context);
                }
                catch (Exception ex)
                {
                    _logger.LogError($"Error looking up character: {ex.Message}");
                }
                if (guildObject.guildName != null && guildObject.realmName != null)
                {
                    guildie = _wowApi.GetCharFromGuild(charName, guildObject.realmName, guildObject.guildName, guildObject.regionName);
                    if (string.IsNullOrEmpty(guildie.charName))
                    {
                        guildie = null;
                    }
                }
                //Check to see if the character is in the guild
                if (guildie != null)
                {
                    charName            = guildie.charName;
                    realmName           = guildie.realmName;
                    charInfo.regionName = guildie.regionName;
                }
                else
                {
                    chars = _wowApi.SearchArmory(charName);
                    if (chars != null)
                    {
                        charName  = chars[0].charName;
                        realmName = chars[0].realmName;
                    }
                }
            }
            if (!string.IsNullOrEmpty(foundRegion))
            {
                charInfo.regionName = foundRegion;
            }
            charInfo.charName  = charName;
            charInfo.realmName = realmName;
            if (!string.IsNullOrEmpty(guildObject.locale))
            {
                charInfo.locale = guildObject.locale;
            }
            return(charInfo);
        }