public Embed GetList(SocketUserMessage requestMessage) { if (Data.Count == 0) { return(null); } var embed = new BotEmbed(requestMessage.Author) .WithTitle("Automatické odpovědi"); foreach (var item in Data) { embed.AddField(field => { var statusMessage = item.IsDisabled ? "Neaktivní" : "Aktivní"; field .WithName($"**{item.ID}** - {item.MustContains}") .WithValue(string.Join("\n", new[] { $"Odpověď: {item.ReplyMessage}", $"Status: {statusMessage}", $"Metoda: {item.CompareType}", $"Počet použití: {FormatHelper.FormatWithSpaces(item.CallsCount)}", $"Case sensitive: {(item.CaseSensitive ? "Ano" : "Ne")}" })); }); } return(embed.Build()); }
public BotEmbed RenderEmbed(CurrentState currentState, IUser responseFor, DuckConfig duckConfig) { var embed = new BotEmbed(responseFor, thumbnail: responseFor.GetUserAvatarUrl()); switch (currentState.State) { case DuckState.Private: case DuckState.Closed: FormatPrivateOrClosed(currentState, embed); break; case DuckState.OpenBar: FormatOpenBar(currentState, duckConfig.EnableBeersOnTap, embed); break; case DuckState.OpenChillzone: FormatOpenCillzone(currentState, embed); break; case DuckState.OpenEvent: FormatOpenEvent(currentState); break; } return(embed.WithTitle(TitleBuilder.ToString())); }
private void FormatOpenBar(CurrentState currentState, bool enableBeers, BotEmbed embed) { TitleBuilder.Append("Kachna je otevřená!"); embed.AddField("Otevřeno", currentState.LastChange.ToString("HH:mm"), true); if (currentState.ExpectedEnd.HasValue) { var left = currentState.ExpectedEnd.Value - DateTime.Now; TitleBuilder.Append(" Do konce zbývá ").Append(left.ToCzechLongTimeString()).Append('.'); embed.AddField("Zavíráme", currentState.ExpectedEnd.Value.ToString("HH:mm"), true); } if (enableBeers && currentState.BeersOnTap?.Length > 0) { var beerSb = new StringBuilder(); foreach (var b in currentState.BeersOnTap) { beerSb.AppendLine(b); } embed.AddField("Aktuálně na čepu", beerSb.ToString(), false); } AddNoteToEmbed(embed, currentState.Note); }
public async Task GuildStatusAsync() { var guild = Context.Guild; var embed = new BotEmbed(Context.Message.Author, title: guild.Name) .WithThumbnail(guild.IconUrl) .WithFields( new EmbedFieldBuilder().WithName("CategoryChannelsCount").WithValue($"**{guild.CategoryChannels?.Count ?? 0}**").WithIsInline(true), new EmbedFieldBuilder().WithName("ChannelsCount").WithValue($"**{guild.Channels.Count}**").WithIsInline(true), new EmbedFieldBuilder().WithName("CreatedAt").WithValue($"**{guild.CreatedAt.DateTime.ToLocaleDatetime()}**").WithIsInline(true), new EmbedFieldBuilder().WithName("HasAllMembers").WithValue($"**{guild.HasAllMembers}**").WithIsInline(true), new EmbedFieldBuilder().WithName("IsEmbeddable").WithValue($"**{guild.IsEmbeddable}**").WithIsInline(true), new EmbedFieldBuilder().WithName("IsSynced").WithValue($"**{guild.IsSynced}**").WithIsInline(true), new EmbedFieldBuilder().WithName("MemberCount").WithValue($"**{guild.MemberCount}**").WithIsInline(true), new EmbedFieldBuilder().WithName("CachedUsersCount").WithValue($"**{guild.Users.Count}**").WithIsInline(true), new EmbedFieldBuilder().WithName("RolesCount").WithValue($"**{guild.Roles.Count}**").WithIsInline(true), new EmbedFieldBuilder().WithName("OwnerID").WithValue($"**{guild.OwnerId}**").WithIsInline(true), new EmbedFieldBuilder().WithName("SplashID").WithValue($"**{guild.SplashId?.ToString() ?? "null"}**").WithIsInline(true), new EmbedFieldBuilder().WithName("IconID").WithValue($"**{guild.IconId}**").WithIsInline(true), new EmbedFieldBuilder().WithName("VerificationLevel").WithValue($"**{guild.VerificationLevel}**").WithIsInline(true), new EmbedFieldBuilder().WithName("VoiceRegionID").WithValue($"**{guild.VoiceRegionId ?? "null"}**").WithIsInline(true), new EmbedFieldBuilder().WithName("MfaLevel").WithValue($"**{guild.MfaLevel}**").WithIsInline(true), new EmbedFieldBuilder().WithName("ExplicitContentFilter").WithValue($"**{guild.ExplicitContentFilter}**").WithIsInline(true), new EmbedFieldBuilder().WithName("SystemChannel").WithValue($"**{guild.SystemChannel?.Name ?? "None"}**").WithIsInline(true), new EmbedFieldBuilder().WithName("DefaultMessageNotifications").WithValue($"**{guild.DefaultMessageNotifications}**").WithIsInline(true) ); await ReplyAsync(embed : embed.Build()).ConfigureAwait(false); }
private void AddNoteToEmbed(BotEmbed embed, string note, string title = "Poznámka") { if (!string.IsNullOrEmpty(note)) { embed.AddField(title, note, false); } }
public async Task GetEmoteInfoAsync([Remainder] string emote) { if (await GetEmoteInfoAsyncRouting(emote)) { return; } var existsInGuild = Context.Guild.Emotes.Any(o => o.ToString() == emote); var emoteInfo = EmoteStats.GetValue(Context.Guild, emote); if (emoteInfo == null) { var bytes = Encoding.Unicode.GetBytes(emote); emoteInfo = EmoteStats.GetValue(Context.Guild, Convert.ToBase64String(bytes)); } if (emoteInfo == null) { if (!existsInGuild) { await ReplyAsync("Tento emote neexistuje"); return; } await ReplyAsync("Tento emote ještě nebyl použit"); return; } var embed = new BotEmbed(Context.Message.Author) .AddField(o => o.WithName(emoteInfo.GetRealId()).WithValue(emoteInfo.GetFormatedInfo())); await ReplyAsync(embed : embed.Build()).ConfigureAwait(false); }
public async Task ChannelboardAsync() { var data = await Stats.GetChannelboardDataAsync(Context.Guild, Context.User, ChannelStats.ChannelboardTakeTop); if (data.Count == 0) { await Context.Message.Author.SendPrivateMessageAsync("Ještě nejsou zaznamenány žádné kanály pro tento server."); } var embed = new BotEmbed(Context.User, null, "Channel leaderboard"); var messageBuilder = new StringBuilder(); for (int i = 0; i < data.Count; i++) { var channelBoardItem = data[i]; messageBuilder .Append(i + 1).Append(": ").Append(channelBoardItem.Channel.Name) .Append(" - ").AppendLine(channelBoardItem.Count.FormatWithSpaces()); } embed.AddField("=======================", messageBuilder.ToString(), false); await Context.Message.Author.SendPrivateMessageAsync(embedBuilder : embed.GetBuilder()); }
public async Task GuildStatusAsync() { var guild = Context.Guild; var color = guild.Roles.FindHighestRoleWithColor()?.Color; var embed = new BotEmbed(Context.Message.Author, color, title: guild.Name) .WithThumbnail(guild.IconUrl) .WithFields( new EmbedFieldBuilder().WithName("Počet kategorií").WithValue($"**{guild.CategoryChannels?.Count ?? 0}**").WithIsInline(true), new EmbedFieldBuilder().WithName("Počet textových kanálů").WithValue($"**{guild.ComputeTextChannelsCount()}**").WithIsInline(true), new EmbedFieldBuilder().WithName("Počet hlasových kanálů").WithValue($"**{guild.ComputeVoiceChannelsCount()}**").WithIsInline(true), new EmbedFieldBuilder().WithName("Počet rolí").WithValue($"**{guild.Roles.Count}**").WithIsInline(true), new EmbedFieldBuilder().WithName("Vytvořen").WithValue($"**{guild.CreatedAt.DateTime.ToLocaleDatetime()}**").WithIsInline(true), new EmbedFieldBuilder().WithName("Vlastník").WithValue($"**{guild.Owner.GetFullName()}** ({guild.OwnerId})"), new EmbedFieldBuilder().WithName("Systémový kanál").WithValue($"**{guild.SystemChannel?.Name ?? "None"}** ({guild.SystemChannel?.Id ?? 0})"), new EmbedFieldBuilder().WithName("Uživatelé synchronizováni").WithValue($"**{(guild.HasAllMembers ? "Ano" : "Ne")}**").WithIsInline(true), new EmbedFieldBuilder().WithName("Synchronizován").WithValue($"**{(guild.IsSynced ? "Ano" : "Ne")}**").WithIsInline(true), new EmbedFieldBuilder().WithName("Počet uživatelů (v paměti)").WithValue($"**{guild.MemberCount}** (**{guild.Users.Count}**)").WithIsInline(true), new EmbedFieldBuilder().WithName("Úroveň ověření").WithValue($"**{guild.VerificationLevel}**").WithIsInline(true), new EmbedFieldBuilder().WithName("ID oblasti (Hovory)").WithValue($"**{guild.VoiceRegionId ?? "null"}**").WithIsInline(true), new EmbedFieldBuilder().WithName("Úroveň MFA").WithValue($"**{guild.MfaLevel}**").WithIsInline(true), new EmbedFieldBuilder().WithName("Filtr explicitního obsahu").WithValue($"**{guild.ExplicitContentFilter}**").WithIsInline(true), new EmbedFieldBuilder().WithName("Výchozí notifikace").WithValue($"**{guild.DefaultMessageNotifications}**").WithIsInline(true), new EmbedFieldBuilder().WithName("Extra funkce").WithValue(guild.Features.Count == 0 ? "-" : string.Join(", ", guild.Features)), new EmbedFieldBuilder().WithName("Tier").WithValue(guild.PremiumTier.ToString()).WithIsInline(true), new EmbedFieldBuilder().WithName("Počet boosterů").WithValue(guild.PremiumSubscriptionCount).WithIsInline(true) ); await ReplyAsync(embed : embed.Build()); }
private BotEmbed CreateSimpleEmbed(DiscordUser user) { var roleWithColor = user.User.Roles.FindHighestRoleWithColor(); var roleNames = user.User.Roles.Where(o => !o.IsEveryone).OrderByDescending(o => o.Position).Select(o => o.Name); var embed = new BotEmbed(Context.User, roleWithColor?.Color, "Informace o uživateli", user.User.GetUserAvatarUrl()); embed .AddField("ID", user.User.Id.ToString(), true) .AddField("Jméno", user.User.GetFullName(), true) .AddField("Stav", user.User.Status.ToString(), true) .AddField("Založen", user.User.CreatedAt.LocalDateTime.ToLocaleDatetime(), true) .AddField("Připojen", user.User.JoinedAt?.LocalDateTime.ToLocaleDatetime(), true) .AddField("Umlčen (Klient/Server)", $"{user.User.IsMuted().TranslateToCz()}/{user.User.IsSelfMuted().TranslateToCz()}", true) .AddField("Role", string.Join(", ", roleNames), false); if (user.User.PremiumSince != null) { embed.AddField("Boost od", user.User.PremiumSince.Value.LocalDateTime.ToLocaleDatetime(), true); } embed .AddField("Body", user.Points.FormatWithSpaces(), true) .AddField("Reakce (Rozdané/Získané)", user.FormatReactions(), true) .AddField("Počet zpráv", user.TotalMessageCount.FormatWithSpaces(), true); return(embed); }
private async Task <BotEmbed> CreateLeaderboardResultAsync(List <Tuple <ulong, long, int> > leaderboard) { var embed = new BotEmbed(Context.User, null, "Body leaderboard"); if (leaderboard.Count == 0) { embed.WithDescription("Na této stránce není moc k vidění."); return(embed); } var builder = new StringBuilder(); foreach (var item in leaderboard) { var user = await Context.Guild.GetUserFromGuildAsync(item.Item1); var position = item.Item3.FormatWithSpaces(); var username = user == null ? "Neexistující uživatel" : user.GetDisplayName(); builder.Append("> ").Append(position).Append(": ").Append(username).Append(": ").AppendLine(FormatPointsValue(item.Item2)); } embed.WithDescription(builder.ToString()); return(embed); }
public async Task <BotEmbed> RenderCommandHelpAsync(string command, SocketCommandContext context) { var result = CommandService.Search(command); if (!result.IsSuccess) { ProcessSearchError(result, command); } var embed = new BotEmbed(context.User, title: $"Tady máš různé varianty příkazů na **{command.PreventMassTags()}**"); foreach (var cmd in result.Commands.Select(o => o.Command)) { var access = await cmd.CheckPreconditionsAsync(context, ServiceProvider); if (!access.IsSuccess) { continue; } embed.AddField(CreateCommandDetail(cmd)); } if (embed.FieldsEmpty) { embed.WithDescription($"Na metodu **{command.PreventMassTags()}** nemáš žádná potřebná oprávnění."); } return(embed); }
public async Task GetTodayBirthdayAsync() { await DoAsync(async() => { using (var repository = new GrillBotRepository(Config)) { var birthdays = await repository.Birthdays.GetBirthdaysForDayAsync(DateTime.Today, Context.Guild.Id.ToString()).ConfigureAwait(false); if (birthdays.Count == 0) { throw new ArgumentException("Dnes nemá nikdo narozeniny."); } foreach (var birthday in birthdays) { var guild = Context.Client.GetGuild(birthday.GuildIDSnowflake); var user = await guild.GetUserFromGuildAsync(birthday.ID).ConfigureAwait(false); var embed = new BotEmbed(Context.User, null, $"Dnes má narozeniny {user.GetFullName()}", user.GetUserAvatarUrl()); if (birthday.AcceptAge) { embed.AddField(o => o.WithName("Věk").WithValue(birthday.ComputeAge())); } await ReplyAsync(embed: embed.Build()).ConfigureAwait(false); } } }).ConfigureAwait(false); }
private BotEmbed CreateGenericErrorEmbed(Exception exception, ErrorLogItem logItem) { var embed = new BotEmbed(DiscordClient.CurrentUser, Color.Red, "Došlo k neočekávané chybě.") .AddField("ID záznamu", logItem.ID.ToString(), false) .AddField(exception.GetType().Name, $"```{exception}```", false); return(embed); }
private void FormatOpenCillzone(CurrentState currentState, BotEmbed embed) { TitleBuilder .Append("Kachna je otevřená v režimu chillzóna až do ") .AppendFormat("{0:HH:mm}", currentState.ExpectedEnd.Value) .Append('!'); AddNoteToEmbed(embed, currentState.Note); }
public static async Task <BotEmbed> CreateSimpleEmbedAsync(DiscordUser user, SocketCommandContext context) { var roleWithColor = user.User.Roles.FindHighestRoleWithColor(); var embed = new BotEmbed(context.User, roleWithColor?.Color, "Informace o uživateli", user.User.GetUserAvatarUrl()); var joinedAt = user.User.JoinedAt?.LocalDateTime.ToLocaleDatetime(); var joinPosition = await user.Guild.CalculateJoinPositionAsync(user.User); var selfUnverifies = user.UnverifyHistory.Where(o => o.Operation == UnverifyLogOperation.Selfunverify); embed .AddField("ID", $"{user.User.Id} ({user.ID})", true) .AddField("Jméno", user.User.GetFullName(), true) .AddField("Stav", user.User.Status.ToString(), true) .AddField("Založen", user.User.CreatedAt.LocalDateTime.ToLocaleDatetime(), true) .AddField("Připojen (Pořadí)", $"{joinedAt} ({joinPosition})", true); if (user.User.VoiceChannel != null) { embed.AddField("Umlčen (Klient/Server)", $"{user.User.IsSelfMuted().TranslateToCz()}/{user.User.IsMuted().TranslateToCz()}", true); } var roles = user.User.Roles.Where(o => !o.IsEveryone).OrderByDescending(o => o.Position).Select(o => o.Mention); embed .AddField("Role", !roles.Any() ? "Nejsou" : string.Join(", ", roles), false); if (user.User.PremiumSince != null) { embed.AddField("Boost od", user.User.PremiumSince.Value.LocalDateTime.ToLocaleDatetime(), true); } embed .AddField("Body", user.Points.FormatWithSpaces(), true) .AddField("Reakce (Rozdané/Získané)", user.FormatReactions(), true) .AddField("Počet zpráv", user.TotalMessageCount.FormatWithSpaces(), true) .AddField("Počet unverify (z toho self)", $"{user.UnverifyHistory.Count.FormatWithSpaces()} ({selfUnverifies.Count().FormatWithSpaces()})", true); if (user.UsedInvite != null) { if (user.UsedInvite.Code == context.Guild.VanityURLCode) { embed.AddField("Použitá pozvánka", $"Vanity invite ({user.UsedInvite.Code})", false); } else { var inviteCreator = user.UsedInvite.Creator?.GetFullName() ?? "Neznámý uživatel"; var createdAtDateTime = user.UsedInvite.CreatedAt?.LocalDateTime; var createdAt = createdAtDateTime == null ? "Nevím kdy" : createdAtDateTime.Value.ToLocaleDatetime(); embed.AddField("Použitá pozvánka", $"Kód: **{user.UsedInvite.Code}**\nVytvořil: **{inviteCreator} ({createdAt})**", false); } } return(embed); }
private void FormatWithNextOpening(CurrentState currentState, BotEmbed embed) { var left = currentState.NextOpeningDateTime.Value - DateTime.Now; TitleBuilder .Append(" Do další otvíračky zbývá ") .Append(left.ToCzechLongTimeString()) .Append('.'); AddNoteToEmbed(embed, currentState.Note); }
private BotEmbed CreateCommandErrorEmbed(CommandException exception, ErrorLogItem logItem) { var embed = new BotEmbed(DiscordClient.CurrentUser, Color.Red, "Při provádění příkazu došlo k chybě") .AddField("ID záznamu", logItem.ID.ToString(), true) .AddField("Kanál", $"<#{exception.Context.Channel.Id}>", true) .AddField("Uživatel", exception.Context.User.Mention, true) .AddField("Zpráva", $"```{exception.Context.Message.Content}```", false) .AddField(exception.InnerException.GetType().Name, $"```{exception}```", false); return(embed); }
private async Task GetTopEmoteUsage(bool descOrder) { var fields = EmoteStats.GetAllValues(descOrder, Context.Guild.Id, true) .Where(o => Context.Guild.Emotes.Any(x => x.ToString() == o.EmoteID && !x.Animated)) .Take(EmbedBuilder.MaxFieldCount) .Select(o => new EmbedFieldBuilder().WithName(o.GetRealId()).WithValue(o.GetFormatedInfo())); var embed = new BotEmbed(Context.Message.Author) .WithFields(fields); await ReplyAsync(embed : embed.Build()).ConfigureAwait(false); }
public async Task GetDbStatus() { await DoAsync(async() => { var data = await BotStatusService.GetDbReport().ConfigureAwait(false); var embed = new BotEmbed(Context.Message.Author) .WithFields(data.Select(o => new EmbedFieldBuilder().WithName(o.Key).WithValue(FormatHelper.FormatWithSpaces(o.Value)))); await ReplyAsync(embed: embed.Build()).ConfigureAwait(false); }).ConfigureAwait(false); }
private async Task GetEmoteInfoOnlyUnicode() { var fields = EmoteStats.GetAllValues(true, Context.Guild.Id, false) .Where(o => o.IsUnicode) .Take(EmbedBuilder.MaxFieldCount) .Select(o => new EmbedFieldBuilder().WithName(o.GetRealId()).WithValue(o.GetFormatedInfo())); var embed = new BotEmbed(Context.Message.Author) .WithFields(fields); await ReplyAsync(embed : embed.Build()).ConfigureAwait(false); }
public async Task StatsAsync() { using var service = GetService <UnverifyService>(); var unverifies = await service.Service.GetCurrentUnverifies(Context.Guild); var embed = new BotEmbed(Context.User, title: "Statistiky unverify") .AddField("SelfUnverify", unverifies.Count(o => o.Profile.IsSelfUnverify).FormatWithSpaces(), true) .AddField("Unverify", unverifies.Count(o => !o.Profile.IsSelfUnverify).FormatWithSpaces(), true) .AddField("Celkem", unverifies.Count.FormatWithSpaces(), true); await ReplyAsync(embed : embed.Build()); }
private void FormatWithNextOpeningNoPrivate(CurrentState currentState, BotEmbed embed) { if (string.IsNullOrEmpty(currentState.Note)) { embed.AddField("A co dál?", $"Další otvíračka není naplánovaná, ale tento stav má skončit {currentState.NextStateDateTime:dd. MM. v HH:mm}. Co bude pak, to nikdo neví.", false); return; } AddNoteToEmbed(embed, currentState.Note, "A co dál?"); }
public async Task GetTopRoleList() { var topRoles = Context.Guild.Roles.Where(o => !o.IsEveryone && !o.IsManaged) .OrderByDescending(o => o.Members.Count()) .ThenByDescending(o => o.Position) .Take(EmbedBuilder.MaxFieldCount) .ToList(); var embed = new BotEmbed(Context.Message.Author, topRoles.Find(o => o.Color.RawValue != 0)?.Color) .WithFields(topRoles.Select(o => new EmbedFieldBuilder().WithName(o.Name).WithValue(CreateRoleInfo(o, false)))); await ReplyAsync(embed : embed.Build()).ConfigureAwait(false); }
public async Task SolveAsync([Remainder] string expression) { var result = Calculator.Solve(expression, Context.Message); var embed = new BotEmbed(Context.Message.Author, Color.Green) .AddField("Výraz", $"`{expression}`", false); if (result == null) { embed .SetColor(Color.Red) .WithTitle("Při zpracování výrazu došlo k neznámé chybě."); await ReplyAsync(embed : embed.Build()); return; } if (!result.IsValid) { embed.SetColor(Color.Red); if (result.IsTimeout) { embed .WithTitle("Vypršel časový limit pro výpočet výrazu.") .AddField("Maximální doba zpracování", result.GetAssignedComputingTime(), false); } else { embed .WithTitle("Výpočet nebyl úspěšně proveden.") .AddField("Chybové hlášení", result.ErrorMessage.Trim(), false); } await ReplyAsync(embed : embed.Build()); return; } embed .AddField("Výsledek", result.Result.ToString(), true) .AddField("Doba zpracování", result.GetComputingTime(), true); await ReplyAsync(embed : embed.Build()); }
public async Task StatusAsync() { var data = BotStatusService.GetSimpleStatus(); var embed = new BotEmbed(Context.Message.Author, title: "Stav bota") .WithFields( new EmbedFieldBuilder().WithName("Využití RAM").WithValue(data.RamUsage).WithIsInline(true), new EmbedFieldBuilder().WithName("Běží od").WithValue(data.StartTime.ToLocaleDatetime()).WithIsInline(true), new EmbedFieldBuilder().WithName("Počet vláken").WithValue(data.ThreadStatus).WithIsInline(true), new EmbedFieldBuilder().WithName("Průměrná doba reakce").WithValue(data.AvgReactTime).WithIsInline(true), new EmbedFieldBuilder().WithName("Aktivní CPU čas").WithValue(data.ActiveCpuTime).WithIsInline(true), new EmbedFieldBuilder().WithName("Instance").WithValue(data.InstanceType).WithIsInline(true), new EmbedFieldBuilder().WithName("Počet akt. tokenů").WithValue(data.ActiveWebTokensCount).WithIsInline(true) ); await ReplyAsync("", embed : embed.Build()).ConfigureAwait(false); }
public async Task SessionDetailAsync(MathSession session) { var color = session.IsUsed ? Color.Green : Color.LightGrey; var title = $"#{session.ID} {(session.IsUsed ? "(Používá se)" : "")}"; if (session.ForBooster) title += " (Booster)"; var embed = new BotEmbed(Context.User, color, title.Trim()) .AddField("Výpočetní čas", TimeSpan.FromMilliseconds(session.ComputingTime).ToString(), true) .AddField("Počet použití", session.UsedCount.FormatWithSpaces(), true); embed .AddField("Aktuální výraz", session.Expression ?? "-", false) .AddField("Poslední výsledek", session.LastResult?.Format() ?? "-", false); await ReplyAsync(embed: embed.Build()); }
public async Task RemindPostponeLeaderboardAsync() { using var service = GetService <ReminderService>(); var leaderboard = await service.Service.GetLeaderboard(); var builder = new StringBuilder(); for (int i = 0; i < leaderboard.Count; i++) { var user = leaderboard[i]; builder.Append("> ").Append(i + 1).Append(": *").Append(user.Item1.GetDisplayName()).Append("*: **").Append(user.Item2.FormatWithSpaces()).AppendLine("x**"); } var embed = new BotEmbed(Context.User, title: "Leaderboard nejvíce odkládajících osob.") .WithDescription(builder.ToString()); await ReplyAsync(embed : embed.Build()); }
public async Task GetCompleteEmoteInfoListAsync() { var fields = EmoteStats.GetAllValues(true, Context.Guild.Id, true) .Where(o => Context.Guild.Emotes.Any(x => x.ToString() == o.EmoteID)) .Select(o => new EmbedFieldBuilder().WithName(o.GetRealId()).WithValue(o.GetFormatedInfo())) .ToList(); const int maxFieldsCount = EmbedBuilder.MaxFieldCount; var pagesCount = Math.Ceiling((float)fields.Count / maxFieldsCount); for (int i = 0; i < pagesCount; i++) { var embed = new BotEmbed(Context.Message.Author) .PrependFooter($"Strana {i + 1} z {pagesCount}") .WithFields(fields.Skip(i * maxFieldsCount).Take(maxFieldsCount)); await ReplyAsync(embed : embed.Build()).ConfigureAwait(false); } }
public Discord.Embed RenderEmbed() { if (CurrentPage > Pages.Count) { return(null); } var page = Pages[CurrentPage - 1]; var botEmbed = new BotEmbed(ResponseFor, Color, page.Title, page.Thumbnail ?? Thumbnail) .WithFields(page.Fields) .PrependFooter($"Strana {CurrentPage}/{Pages.Count}"); if (!string.IsNullOrEmpty(Title)) { botEmbed.WithAuthor(Title); } return(botEmbed.Build()); }
private void FormatPrivateOrClosed(CurrentState currentState, BotEmbed embed) { TitleBuilder.Append("Kachna je zavřená."); if (currentState.NextOpeningDateTime.HasValue) { FormatWithNextOpening(currentState, embed); return; } if (currentState.NextOpeningDateTime.HasValue && currentState.State != DuckState.Private) { FormatWithNextOpeningNoPrivate(currentState, embed); return; } TitleBuilder.Append(" Další otvíračka není naplánovaná."); AddNoteToEmbed(embed, currentState.Note); }