コード例 #1
0
        public async Task Rank()
        {
            var topAccounts = UserAccounts.GetTop(10, RankEnum.Level);
            var embed       = new EmbedBuilder();

            embed.WithColor(Colors.Get("Iodem"));
            string[] Emotes  = new string[] { "🥇", "🥈", "🥈", "🥉", "🥉", "🥉", "   ", "   ", "   ", "   " };
            var      builder = new StringBuilder();

            for (int i = 0; i < Math.Min(topAccounts.Count(), 10); i++)
            {
                var curAccount = topAccounts[i];
                builder.Append($"`{i + 1}` {Emotes[i]} {curAccount.Name.PadRight(15)} - `Lv{curAccount.LevelNumber}` - `{curAccount.XP}xp`\n");
            }

            var rank = UserAccounts.GetRank(Context.User);
            //Console.WriteLine(rank);
            var account = UserAccounts.GetAccount(Context.User);

            if (rank >= 10)
            {
                builder.Append("... \n");
                builder.Append($"`{rank + 1}` {Context.User.Username.PadRight(15)} - `Lv{account.LevelNumber}` - `{account.XP}xp`");
            }

            embed.WithDescription(builder.ToString());

            await Context.Channel.SendMessageAsync("", false, embed.Build());
        }
コード例 #2
0
        public async Task Rank()
        {
            var topAccounts = UserAccounts.GetTop();
            var embed = new EmbedBuilder();
            embed.WithColor(Colors.Get("Iodem"));
            string[] emotes = { "🥇", "🥈", "🥈", "🥉", "🥉", "🥉", "   ", "   ", "   ", "   " };
            var builder = new StringBuilder();
            for (var i = 0; i < Math.Min(topAccounts.Count, 10); i++)
            {
                var curAccount = topAccounts[i];
                builder.Append(
                    $"`{i + 1}` {emotes[i]} {curAccount.Name?.PadRight(15) ?? curAccount.Id.ToString()} - `Lv{curAccount.LevelNumber}` - `{curAccount.Xp}xp`{(curAccount.NewGames >= 1 ? $"- `({curAccount.TotalXp}xp total)`" : "")}\n");
            }

            //Console.WriteLine(rank);
            var account = EntityConverter.ConvertUser(Context.User);
            var rank = UserAccounts.GetRank(account);
            if (rank >= 10)
            {
                builder.Append("... \n");
                builder.Append(
                    $"`{rank + 1}` {Context.User.Username,-15} - `Lv{account.LevelNumber}` - `{account.Xp}xp`{(account.NewGames >= 1 ? $"- `({account.TotalXp}xp total)`" : "")}");
            }

            embed.WithDescription(builder.ToString());

            await Context.Channel.SendMessageAsync("", false, embed.Build());
        }
コード例 #3
0
        public async Task Showdown(RankEnum type = RankEnum.Solo)
        {
            var topAccounts = UserAccounts.GetTop(10, type);
            var embed       = new EmbedBuilder();

            embed.WithColor(Colors.Get("Iodem"));
            string[] Emotes  = new string[] { "🥇", "🥈", "🥉", "", "" };
            var      builder = new StringBuilder();

            for (int i = 0; i < Math.Min(topAccounts.Count(), 5); i++)
            {
                var curAccount = topAccounts[i];
                switch (type)
                {
                case RankEnum.Solo:
                    builder.Append($"`{i + 1}` {Emotes[i]} {curAccount.Name.PadRight(15)} - `{curAccount.ServerStats.ColossoHighestRoundEndlessSolo}`\n");
                    break;

                case RankEnum.Duo:
                    builder.Append($"`{i + 1}` {Emotes[i]} {curAccount.ServerStats.ColossoHighestRoundEndlessDuoNames} - `{curAccount.ServerStats.ColossoHighestRoundEndlessDuo}`\n");
                    break;

                case RankEnum.Trio:
                    builder.Append($"`{i + 1}` {Emotes[i]} {curAccount.ServerStats.ColossoHighestRoundEndlessTrioNames} - `{curAccount.ServerStats.ColossoHighestRoundEndlessTrio}`\n");
                    break;

                case RankEnum.Quad:
                    builder.Append($"`{i + 1}` {Emotes[i]} {curAccount.ServerStats.ColossoHighestRoundEndlessQuadNames} - `{curAccount.ServerStats.ColossoHighestRoundEndlessQuad}`\n");
                    break;
                }
            }

            var rank = UserAccounts.GetRank(Context.User, type);
            //Console.WriteLine(rank);
            var account = UserAccounts.GetAccount(Context.User);

            if (rank >= 5)
            {
                builder.Append("... \n");
                switch (type)
                {
                case RankEnum.Solo:
                    builder.Append($"`{rank + 1}` {account.Name.PadRight(15)} - `{account.ServerStats.ColossoHighestRoundEndlessSolo}`");
                    break;

                case RankEnum.Duo:
                    builder.Append($"`{rank + 1}` {account.ServerStats.ColossoHighestRoundEndlessDuoNames} - `{account.ServerStats.ColossoHighestRoundEndlessDuo}`");
                    break;

                case RankEnum.Trio:
                    builder.Append($"`{rank + 1}` {account.ServerStats.ColossoHighestRoundEndlessTrioNames} - `{account.ServerStats.ColossoHighestRoundEndlessTrio}`");
                    break;

                case RankEnum.Quad:
                    builder.Append($"`{rank + 1}` {account.ServerStats.ColossoHighestRoundEndlessQuadNames} - `{account.ServerStats.ColossoHighestRoundEndlessQuad}`");
                    break;
                }
            }
            if (type == RankEnum.Solo)
            {
                embed.WithFooter("Honorary Mention: Smeecko - 81, by breaking the Time-Space Continuum");
            }
            embed.WithDescription(builder.ToString());

            await Context.Channel.SendMessageAsync("", false, embed.Build());
        }
コード例 #4
0
        public async Task Showdown(RankEnum type = RankEnum.Solo, EndlessMode mode = EndlessMode.Default)
        {
            var topAccounts = UserAccounts.GetTop(type, mode);

            if (type == RankEnum.Solo)
                topAccounts = topAccounts.OrderByDescending(d =>
                    (d.ServerStats.GetStreak(mode) + d.ServerStatsTotal.GetStreak(mode)).Solo).ToList();
            else
                topAccounts = topAccounts.Where(p =>
                        (p.ServerStats.GetStreak(mode) + p.ServerStatsTotal.GetStreak(mode)).GetEntry(type).Item1 > 0)
                    .GroupBy(p =>
                        (p.ServerStats.GetStreak(mode) + p.ServerStatsTotal.GetStreak(mode)).GetEntry(type).Item2)
                    .Select(group => group.First())
                    .OrderByDescending(d =>
                        (d.ServerStats.GetStreak(mode) + d.ServerStatsTotal.GetStreak(mode)).GetEntry(type).Item1)
                    .ToList();
            var embed = new EmbedBuilder();
            embed.WithColor(Colors.Get("Iodem"));
            string[] emotes = { "🥇", "🥈", "🥉", "", "" };
            var builder = new StringBuilder();
            for (var i = 0; i < Math.Min(topAccounts.Count, 5); i++)
            {
                var curAccount = topAccounts.ElementAt(i);
                var streak = mode == EndlessMode.Default
                    ? curAccount.ServerStats.EndlessStreak + curAccount.ServerStatsTotal.EndlessStreak
                    : curAccount.ServerStats.LegacyStreak + curAccount.ServerStatsTotal.LegacyStreak;
                switch (type)
                {
                    case RankEnum.Solo:
                        builder.Append($"`{i + 1}` {emotes[i]} {curAccount.Name,-15} - `{streak.Solo}`\n");
                        break;

                    case RankEnum.Duo:
                        builder.Append($"`{i + 1}` {emotes[i]} {streak.DuoNames} - `{streak.Duo}`\n");
                        break;

                    case RankEnum.Trio:
                        builder.Append($"`{i + 1}` {emotes[i]} {streak.TrioNames} - `{streak.Trio}`\n");
                        break;

                    case RankEnum.Quad:
                        builder.Append($"`{i + 1}` {emotes[i]} {streak.QuadNames} - `{streak.Quad}`\n");
                        break;
                }
            }

            //Console.WriteLine(rank);
            var account = EntityConverter.ConvertUser(Context.User);
            var rank = UserAccounts.GetRank(account, type, mode);
            if (rank >= 5)
            {
                builder.Append("... \n");
                var streak = mode == EndlessMode.Default
                    ? account.ServerStats.EndlessStreak + account.ServerStatsTotal.EndlessStreak
                    : account.ServerStats.LegacyStreak + account.ServerStatsTotal.LegacyStreak;
                switch (type)
                {
                    case RankEnum.Solo:
                        builder.Append($"`{rank + 1}` {account.Name,-15} - `{streak.Solo}`");
                        break;

                    case RankEnum.Duo:
                        builder.Append($"{streak.DuoNames} - `{streak.Duo}`");
                        break;

                    case RankEnum.Trio:
                        builder.Append($"{streak.TrioNames} - `{streak.Trio}`");
                        break;

                    case RankEnum.Quad:
                        builder.Append($"{streak.QuadNames} - `{streak.Quad}`");
                        break;
                }
            }

            if (type == RankEnum.Solo && mode == EndlessMode.Legacy)
                embed.WithFooter("Honorary Mention: Smeecko - 81, by breaking the Time-Space Continuum");
            embed.WithDescription(builder.ToString());

            await Context.Channel.SendMessageAsync("", false, embed.Build());
        }
コード例 #5
0
ファイル: Misc.cs プロジェクト: Arcblade/IodemBot
        public async Task Showdown(RankEnum type = RankEnum.Solo, EndlessMode mode = EndlessMode.Default)
        {
            var topAccounts = UserAccounts.GetTop(type, mode).Take(10);
            var embed       = new EmbedBuilder();

            embed.WithColor(Colors.Get("Iodem"));
            string[] Emotes  = new string[] { "🥇", "🥈", "🥉", "", "" };
            var      builder = new StringBuilder();

            for (int i = 0; i < Math.Min(topAccounts.Count(), 5); i++)
            {
                var curAccount = topAccounts.ElementAt(i);
                var streak     = mode == EndlessMode.Default ? curAccount.ServerStats.EndlessStreak + curAccount.ServerStatsTotal.EndlessStreak : curAccount.ServerStats.LegacyStreak + curAccount.ServerStats.EndlessStreak;
                switch (type)
                {
                case RankEnum.Solo:
                    builder.Append($"`{i + 1}` {Emotes[i]} {curAccount.Name,-15} - `{streak.Solo}`\n");
                    break;

                case RankEnum.Duo:
                    builder.Append($"`{i + 1}` {Emotes[i]} {streak.DuoNames} - `{streak.Duo}`\n");
                    break;

                case RankEnum.Trio:
                    builder.Append($"`{i + 1}` {Emotes[i]} {streak.TrioNames} - `{streak.Trio}`\n");
                    break;

                case RankEnum.Quad:
                    builder.Append($"`{i + 1}` {Emotes[i]} {streak.Quad} - `{streak.QuadNames}\n");
                    break;
                }
            }

            var rank = UserAccounts.GetRank(Context.User, type);
            //Console.WriteLine(rank);
            var account = UserAccounts.GetAccount(Context.User);

            if (rank >= 5)
            {
                builder.Append("... \n");
                var streak = mode == EndlessMode.Default ? account.ServerStats.EndlessStreak + account.ServerStatsTotal.EndlessStreak : account.ServerStats.LegacyStreak + account.ServerStats.EndlessStreak;
                switch (type)
                {
                case RankEnum.Solo:
                    builder.Append($"`{rank + 1}` {account.Name,-15} - `{streak.Solo}`");
                    break;

                case RankEnum.Duo:
                    builder.Append($"`{rank + 1}` {streak.DuoNames} - `{streak.Duo}`");
                    break;

                case RankEnum.Trio:
                    builder.Append($"`{rank + 1}` {streak.TrioNames} - `{streak.Trio}`");
                    break;

                case RankEnum.Quad:
                    builder.Append($"`{rank + 1}` {streak.QuadNames} - `{streak.Quad}`");
                    break;
                }
            }
            if (type == RankEnum.Solo && mode == EndlessMode.Legacy)
            {
                embed.WithFooter("Honorary Mention: Smeecko - 81, by breaking the Time-Space Continuum");
            }
            embed.WithDescription(builder.ToString());

            await Context.Channel.SendMessageAsync("", false, embed.Build());
        }