// extension methods for DiscordMember to allow easier accessibility /// <summary> /// Adds a new modlog entry to the file /// </summary> /// <param name="modlogEntry">The ModlogEntry instance to add to file</param> public static void AddModlogEntry(this DiscordMember member, ModlogEntry modlogEntry) { UserModlog user = Deserialize(member.Username, member.Id); user.Modlog.Add(modlogEntry); user.ModlogEntryCount++; Serialize(user, member.Id); }
public async Task Unwarn(CommandContext ctx, [Description("Member to unwarn")] DiscordMember member, [Description("1-based warn index")] UInt16 WarnID) { if (ctx.Member == member) { DiscordEmbedBuilder failure = new DiscordEmbedBuilder { Description = $"<:insanitybotFailure:737297932595888189> You can't remove your own modlog entries!", Color = DiscordColor.DarkRed, Footer = new DiscordEmbedBuilder.EmbedFooter { Text = "InsanityBot - Exa 2020" } }; await ctx.RespondAsync(embed : failure.Build()); return; } User user = Serializer.Deserialize(member.Id); ModlogEntry modlogEntry = user.Modlog[WarnID - 1]; user.Modlog.RemoveAt(WarnID - 1); Serializer.Serialize(user, member.Id); DiscordEmbedBuilder embedBuilder = new DiscordEmbedBuilder { Color = DiscordColor.SpringGreen, Description = $"<:insanitybotSuccess:737297353316499566> {member.DisplayName}'s warning #{WarnID} was removed successfully.", Footer = new DiscordEmbedBuilder.EmbedFooter { Text = "InsanityBot - Exa 2020" } }; await ctx.RespondAsync(embed : embedBuilder.Build()); embedBuilder.Title = "UNWARN"; embedBuilder.Description = null; embedBuilder.AddField("User", member.DisplayName, true) .AddField("Moderator", ctx.Member.DisplayName, true) .AddField("Warning", $"{modlogEntry.Type.ToString().ToUpper()}: {modlogEntry.Time} - {modlogEntry.Reason}"); await ctx.Guild.GetChannel(693567857107402762).SendMessageAsync(embed: embedBuilder.Build()); }
/// <summary> /// Attempts to add a modlog entry to a specific user. Returns true if successful. /// </summary> public static Task <Boolean> TryAddModlogEntry(this DiscordUser user, ModlogEntry modlogEntry) { if (user == null) { throw new ArgumentException("Could not add modlog entry to nonexistent user", nameof(user)); } try { (user as DiscordMember).AddModlogEntry(modlogEntry); return(Task.FromResult(true)); } catch (Exception e) { Console.WriteLine($"{e}: {e.Message}\n{e.StackTrace}"); return(Task.FromResult(false)); } }
public void AddModlogEntry(ModlogType type, String reason) { ModlogCount++; Modlog.Add(ModlogEntry.CreateNew(type, reason)); }