public async Task WarnModlogCommand(CommandContext ctx, DiscordMember user) { if (!ctx.Member.HasPermission("insanitybot.moderation.modlog")) { await ctx.Channel.SendMessageAsync(InsanityBot.LanguageConfig["insanitybot.error.lacking_permission"]); return; } try { _ = user.TryFetchModlog(out UserModlog modlog); DiscordEmbedBuilder modlogEmbed = new() { Title = GetFormattedString(InsanityBot.LanguageConfig["insanitybot.commands.modlog.embed_title"], ctx, user), Footer = new DiscordEmbedBuilder.EmbedFooter { Text = "InsanityBot 2020-2021" } }; if (modlog.ModlogEntryCount == 0) { modlogEmbed.Color = DiscordColor.SpringGreen; modlogEmbed.Description = GetFormattedString(InsanityBot.LanguageConfig["insanitybot.commands.modlog.empty_modlog"], ctx, user); _ = ctx.Channel.SendMessageAsync(embed: modlogEmbed.Build()); } else { if (!ToBoolean(InsanityBot.Config["insanitybot.commands.modlog.allow_scrolling"])) { modlogEmbed.Color = DiscordColor.Red; modlogEmbed.Description = user.CreateModlogDescription(ModlogEntryType.warn, false); await ctx.Channel.SendMessageAsync(embed : modlogEmbed.Build()); } else { modlogEmbed.Color = DiscordColor.Red; String embedDescription = user.CreateModlogDescription(ModlogEntryType.warn); IEnumerable <DSharpPlus.Interactivity.Page> pages = InsanityBot.Interactivity.GeneratePagesInEmbed(embedDescription, SplitType.Line, modlogEmbed); await ctx.Channel.SendPaginatedMessageAsync(ctx.Member, pages); } } } catch (Exception e) { InsanityBot.Client.Logger.LogError(new EventId(1170, "Modlog"), $"Could not retrieve modlogs: {e}: {e.Message}"); DiscordEmbedBuilder failedModlog = new() { Color = DiscordColor.Red, Description = GetFormattedString(InsanityBot.LanguageConfig["insanitybot.commands.modlog.failed"], ctx, user), Footer = new DiscordEmbedBuilder.EmbedFooter { Text = "InsanityBot 2020-2021" } }; await ctx.Channel.SendMessageAsync(embed : failedModlog.Build()); } } }