private static Embed CreatePunishmentEmbed(Punishment punishment, SocketGuildUser discordUser, string colour, LogEvent logEvent) { var instigator = discordUser.Guild.GetUser(punishment.InstigatorID); return(new EmbedBuilder() .WithTitle(logEvent.ToString().ToSentenceCase()) .AddField("User", discordUser.Mention, inline: true) .AddField("Reason", punishment.Reason, inline: true) .AddField("By", instigator.Mention ?? "N/A", inline: true) .WithColor(StringToColor(colour)) .Build()); }
public static async Task LogWarn(GuildUser user, Punishment warn) { try { var socketGuild = Global.Client.GetGuild(user.GuildID); var discordUser = socketGuild.GetUser(user.ID); var guild = await Guilds.GetAsync(discordUser.Guild); var log = ValidateLog(guild, socketGuild, LogEvent.Warn); var embed = CreatePunishmentEmbed(warn, discordUser, log.Colour, LogEvent.Warn); await log.Channel.SendMessageAsync(embed : embed); } catch (Exception) {} }
public static async Task LogUnmute(GuildUser user, Punishment mute = null) { try { var socketGuild = Global.Client.GetGuild(user.GuildID); var discordUser = socketGuild.GetUser(user.ID); var guild = await Guilds.GetAsync(discordUser.Guild); mute ??= user.Status.Mutes.LastOrDefault(); var log = ValidateLog(guild, socketGuild, LogEvent.Unmute); var instigator = discordUser.Guild.GetUser(mute?.InstigatorID ?? 0); var embed = CreatePunishmentEmbed(mute, discordUser, log.Colour, LogEvent.Unmute); await log.Channel.SendMessageAsync(embed : embed); } catch (Exception) {} }
public static async Task LogKick(SocketGuildUser discordUser, Punishment kick = null) { try { var user = await GuildUsers.GetAsync(discordUser as SocketGuildUser); kick ??= user?.Status.Kicks.LastOrDefault(); if (kick is null) { return; } var socketGuild = discordUser.Guild; var guild = await Guilds.GetAsync(discordUser.Guild); var log = ValidateLog(guild, socketGuild, LogEvent.Kick); var embed = CreatePunishmentEmbed(kick, discordUser, log.Colour, LogEvent.Kick); await log.Channel.SendMessageAsync(embed : embed); } catch (Exception) {} }
public static async Task LogBan(SocketUser socketUser, SocketGuild socketGuild, Punishment ban = null) { try { if (socketUser is null) { return; } var user = await GuildUsers.GetAsync(socketUser as SocketGuildUser); var guild = await Guilds.GetAsync(socketGuild); var log = ValidateLog(guild, socketGuild, LogEvent.Ban); ban ??= user.Status.Bans.LastOrDefault(); var embed = CreateTimestampPunishmentEmbed(socketUser, ban, log); await log.Channel.SendMessageAsync(embed : embed.Build()); } catch (Exception) {} }
private static EmbedBuilder CreateTimestampPunishmentEmbed(SocketUser socketUser, Punishment punishment, StaffLog log) { var instigator = log.Channel.Guild.GetUser(punishment.InstigatorID); return(new EmbedBuilder() .WithTitle(punishment.Type.ToString().ToSentenceCase()) .AddField("User", socketUser.Mention, inline: true) .AddField("Reason", punishment.Reason, inline: true) .AddField("By", instigator.Mention, inline: true) .AddField("Start", punishment.Start.ToTimestamp()) .AddField("End", punishment.End.ToTimestamp(), inline: true) .WithColor(StringToColor(log.Colour))); }