public async Task Status(SocketGuildUser user = null) { user = user ?? (SocketGuildUser)Context.User; var account = UserAccounts.GetAccount(user); var embed = new EmbedBuilder(); var p = new PlayerFighter(user); embed.WithColor(Colors.Get(account.Element.ToString())); var author = new EmbedAuthorBuilder(); author.WithName($"{user.DisplayName()}"); author.WithIconUrl(user.GetAvatarUrl()); embed.WithAuthor(author); //embed.WithThumbnailUrl(user.GetAvatarUrl()); //embed.WithDescription($"Status."); //embed.AddField("Element", account.element, true); embed.AddField("Level", account.LevelNumber, true); embed.AddField("XP", $"{account.XP} - next in {Leveling.XPforNextLevel(account.XP)}", true); embed.AddField("Rank", UserAccounts.GetRank(user) + 1, true); embed.AddField("Class", account.GsClass, true); embed.AddField("Colosso wins/streak", $"{account.ServerStats.ColossoWins} | {account.ServerStats.ColossoHighestStreak} ", true); embed.AddField("Colosso/Showdown Streaks", $"Solo: {account.ServerStats.ColossoHighestRoundEndlessSolo} | Duo: {account.ServerStats.ColossoHighestRoundEndlessDuo} \nTrio: {account.ServerStats.ColossoHighestRoundEndlessTrio} | Quad: {account.ServerStats.ColossoHighestRoundEndlessQuad}", true); embed.AddField("Current Equip", account.Inv.GearToString(AdeptClassSeriesManager.GetClassSeries(account).Archtype), true); embed.AddField("Psynergy", p.GetMoves(false), false); embed.AddField("Stats", p.stats.ToString(), true); embed.AddField("Elemental Stats", p.elstats.ToString(), true); embed.AddField("Unlocked Classes", account.BonusClasses.Length == 0 ? "none" : string.Join(", ", account.BonusClasses)); var Footer = new EmbedFooterBuilder(); Footer.WithText("Joined this Server on " + user.JoinedAt.Value.Date.ToString("dd-MM-yyyy")); Footer.WithIconUrl(Sprites.GetImageFromName("Iodem")); embed.WithFooter(Footer); await Context.Channel.SendMessageAsync("", false, embed.Build()); }
public async Task Status([Remainder] SocketUser user = null) { user ??= Context.User; var account = EntityConverter.ConvertUser(user); var factory = new PlayerFighterFactory(); var p = factory.CreatePlayerFighter(account); var author = new EmbedAuthorBuilder(); author.WithName($"{(user is SocketGuildUser sguser ? sguser.DisplayName() : user.Username)}"); author.WithIconUrl(user.GetAvatarUrl()); var embed = new EmbedBuilder() .WithColor(Colors.Get(account.Element.ToString())) .WithAuthor(author) .WithTitle($"Level {account.LevelNumber} {account.GsClass} {string.Join("", account.TrophyCase.Trophies.Select(t => t.Icon))} (Rank {UserAccounts.GetRank(account) + 1})") .AddField("Current Equip", account.Inv.GearToString(AdeptClassSeriesManager.GetClassSeries(account).Archtype), true) .AddField("Psynergy", p.GetMoves(false), true) .AddField("Djinn", account.DjinnPocket.GetDjinns().GetDisplay(DjinnDetail.None), true) .AddField("Stats", p.Stats.ToString(), true) .AddField("Elemental Stats", p.ElStats.ToString(), true) .AddField("Unlocked Classes", account.BonusClasses.Count == 0 ? "none" : string.Join(", ", account.BonusClasses)) .AddField("XP", $"{account.XP} - next in {account.XPneeded}{(account.NewGames > 1 ? $"\n({account.TotalXP} total | {account.NewGames} resets)" : "")}", true) .AddField("Colosso wins | Dungeon Wins", $"{account.ServerStats.ColossoWins} | {account.ServerStats.DungeonsCompleted}", true) .AddField("Endless Streaks", $"Solo: {account.ServerStats.EndlessStreak.Solo} | Duo: {account.ServerStats.EndlessStreak.Duo} \nTrio: {account.ServerStats.EndlessStreak.Trio} | Quad: {account.ServerStats.EndlessStreak.Quad}", true); if (user is SocketGuildUser socketGuildUser) { var Footer = new EmbedFooterBuilder(); Footer.WithText("Joined this Server on " + socketGuildUser.JoinedAt.Value.Date.ToString("dd-MM-yyyy")); Footer.WithIconUrl(Sprites.GetImageFromName("Iodem")); embed.WithFooter(Footer); } await Context.Channel.SendMessageAsync("", false, embed.Build()); }
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()); }
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()); }
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()); }