Example #1
0
        public async Task Test()
        {
            List <String> players = OpenDotaAPI.GetPlayerIDs();
            PlayerData    data    = await OpenDotaAPI.GetPlayerData(players[0]);

            if (data.profile != null)
            {
                //await Context.Channel.SendMessageAsync($"{data.solo_competitive_rank}");
                if (data.solo_competitive_rank == null)
                {
                    await ReplyAsync($"empty");
                }
                else
                {
                    await ReplyAsync($"this");
                }
            }
            else
            {
                //await Context.Channel.SendMessageAsync("This is null");
                await ReplyAsync($"This is null");
            }
        }
Example #2
0
        public async Task Battlecup()
        {
            // get player IDs from server log
            List <String> players = OpenDotaAPI.GetPlayerIDs();
            var           result  = String.Join(", ", players.ToArray());

            // find team side
            int master = players.IndexOf("110093717");

            if (master < 5)
            {
                players.RemoveRange(0, 5);
            }
            else
            {
                players.RemoveRange(5, 5);
            }

            /*
             * var builder = new EmbedBuilder()
             * {
             *  Color = new Color(114, 137, 218),
             * };
             *
             * StringBuilder des = new StringBuilder();
             *
             * foreach (string player in players)
             * {
             *  des.AppendLine($"{player}");
             * }
             *
             * builder.Description = des.ToString();
             * await ReplyAsync("", false, builder.Build());
             */

            StringBuilder ranks = new StringBuilder();
            StringBuilder names = new StringBuilder();
            StringBuilder mmr   = new StringBuilder();

            var builder = new EmbedBuilder()
            {
                Color = new Color(114, 137, 218),
            };

            foreach (String p in players)
            {
                PlayerData pData = await OpenDotaAPI.GetPlayerData(p);

                int rank = 0;
                if (pData.rank_tier != null)
                {
                    rank = Convert.ToInt32(pData.rank_tier);
                }

                if (pData.profile != null)
                {
                    names.AppendLine($"{pData.profile.personaname}");

                    // MMR
                    int solo  = pData.solo_competitive_rank == null ? 0 : int.Parse(pData.solo_competitive_rank);
                    int party = pData.competitive_rank == null ? 0 : int.Parse(pData.competitive_rank);
                    int?est   = pData.mmr_estimate.estimate;

                    if (solo == 0 && party == 0)
                    {
                        mmr.AppendLine($"Est: {est}");
                    }
                    else if (solo > party)
                    {
                        mmr.AppendLine($"Solo: {solo}");
                    }
                    else if (solo < party)
                    {
                        mmr.AppendLine($"Party: {party}");
                    }
                    else
                    {
                        mmr.AppendLine($"Est: {est}");
                    }
                }
                else
                {
                    names.AppendLine("Anonymous");
                    mmr.AppendLine("N/A");
                }

                if (rank == 0)
                {
                    ranks.AppendLine($"[Uncalibrated](https://www.opendota.com/players/{p})");
                }
                else if ((rank / 10) == 8)
                {
                    ranks.AppendLine($"[Immortal {pData.leaderboard_rank}](https://www.opendota.com/players/{p})");
                }
                else
                {
                    ranks.AppendLine($"[{(Medal)(rank / 10)} {rank % 10}](https://www.opendota.com/players/{p})");
                }
            }

            builder.AddField(x =>
            {
                x.Name     = "Players";
                x.Value    = names;
                x.IsInline = true;
            });

            builder.AddField(x =>
            {
                x.Name     = "Rank";
                x.Value    = ranks;
                x.IsInline = true;
            });

            builder.AddField(x =>
            {
                x.Name     = "MMR";
                x.Value    = mmr;
                x.IsInline = true;
            });

            await ReplyAsync("", false, builder.Build());



            /* Find past 9 battlecup games
             * MatchData[] data = await OpenDotaAPI.GetPlayerMatches("110093717", 9, 0, 9);
             *
             * var builder = new EmbedBuilder()
             * {
             *  Color = new Color(114, 137, 218),
             * };
             *
             * StringBuilder des = new StringBuilder();
             *
             * foreach (MatchData match in data)
             * {
             *  des.AppendLine($@"https://www.opendota.com/matches/{match.match_id}");
             * }
             *
             * builder.Description = des.ToString();
             * await ReplyAsync("", false, builder.Build());
             * //await Context.Channel.SendMessageAsync($@"https://www.opendota.com/matches/{data[0].match_id}");
             */
        }
Example #3
0
        public async Task MedalCheck(params string[] cmds)
        {
            // Get player IDs from server log
            List <String> players = OpenDotaAPI.GetPlayerIDs();

            StringBuilder ranks = new StringBuilder();
            StringBuilder names = new StringBuilder();
            StringBuilder mmr   = new StringBuilder();

            var builder = new EmbedBuilder()
            {
                Color = new Color(114, 137, 218),
            };

            foreach (String p in players)
            {
                PlayerData pData = await OpenDotaAPI.GetPlayerData(p);

                int rank = 0;
                if (pData.rank_tier != null)
                {
                    rank = Convert.ToInt32(pData.rank_tier);
                }

                if (pData.profile != null)
                {
                    names.AppendLine($"{pData.profile.personaname}");

                    // MMR
                    int solo  = pData.solo_competitive_rank == null ? 0 : int.Parse(pData.solo_competitive_rank);
                    int party = pData.competitive_rank == null ? 0 : int.Parse(pData.competitive_rank);
                    int?est   = pData.mmr_estimate.estimate;

                    if (solo == 0 && party == 0)
                    {
                        mmr.AppendLine($"Est: {est}");
                    }
                    else if (solo > party)
                    {
                        mmr.AppendLine($"Solo: {solo}");
                    }
                    else if (solo < party)
                    {
                        mmr.AppendLine($"Party: {party}");
                    }
                    else
                    {
                        mmr.AppendLine($"Est: {est}");
                    }
                }
                else
                {
                    names.AppendLine("Anonymous");
                    mmr.AppendLine("N/A");
                }

                if (rank == 0)
                {
                    ranks.AppendLine($"[Uncalibrated](https://www.opendota.com/players/{p})");
                }
                else if ((rank / 10) == 8)
                {
                    ranks.AppendLine($"[Immortal {pData.leaderboard_rank}](https://www.opendota.com/players/{p})");
                }
                else
                {
                    ranks.AppendLine($"[{(Medal)(rank / 10)} {rank % 10}](https://www.opendota.com/players/{p})");
                }
            }

            builder.AddField(x =>
            {
                x.Name     = "Players";
                x.Value    = names;
                x.IsInline = true;
            });

            builder.AddField(x =>
            {
                x.Name     = "Rank";
                x.Value    = ranks;
                x.IsInline = true;
            });

            builder.AddField(x =>
            {
                x.Name     = "MMR";
                x.Value    = mmr;
                x.IsInline = true;
            });

            await ReplyAsync("", false, builder.Build());
        }