Return original message ID to log channel

Logs the original (deleted) message's ID in addition to the proxied message's ID to the log channel if configured
This commit is contained in:
xBelladonna 2019-08-08 15:06:09 +09:30 committed by Astrid
parent cf263af44c
commit fabf772085
3 changed files with 21 additions and 21 deletions

View File

@ -53,13 +53,13 @@ namespace PluralKit.Bot {
return eb.Build(); return eb.Build();
} }
public Embed CreateLoggedMessageEmbed(PKSystem system, PKMember member, ulong messageId, IUser sender, string content, IGuildChannel channel) { public Embed CreateLoggedMessageEmbed(PKSystem system, PKMember member, ulong messageId, ulong originalMsgId, IUser sender, string content, IGuildChannel channel) {
// TODO: pronouns in ?-reacted response using this card // TODO: pronouns in ?-reacted response using this card
var timestamp = SnowflakeUtils.FromSnowflake(messageId); var timestamp = SnowflakeUtils.FromSnowflake(messageId);
return new EmbedBuilder() return new EmbedBuilder()
.WithAuthor($"#{channel.Name}: {member.Name}", member.AvatarUrl) .WithAuthor($"#{channel.Name}: {member.Name}", member.AvatarUrl)
.WithDescription(content) .WithDescription(content)
.WithFooter($"System ID: {system.Hid} | Member ID: {member.Hid} | Sender: {sender.Username}#{sender.Discriminator} ({sender.Id}) | Message ID: {messageId}") .WithFooter($"System ID: {system.Hid} | Member ID: {member.Hid} | Sender: {sender.Username}#{sender.Discriminator} ({sender.Id}) | Message ID: {messageId} | Original Message ID: {originalMsgId}")
.WithTimestamp(timestamp) .WithTimestamp(timestamp)
.Build(); .Build();
} }

View File

@ -23,11 +23,11 @@ namespace PluralKit.Bot {
_logger = logger.ForContext<LogChannelService>(); _logger = logger.ForContext<LogChannelService>();
} }
public async Task LogMessage(PKSystem system, PKMember member, ulong messageId, IGuildChannel originalChannel, IUser sender, string content) { public async Task LogMessage(PKSystem system, PKMember member, ulong messageId, ulong originalMsgId, IGuildChannel originalChannel, IUser sender, string content) {
var logChannel = await GetLogChannel(originalChannel.Guild); var logChannel = await GetLogChannel(originalChannel.Guild);
if (logChannel == null) return; if (logChannel == null) return;
var embed = _embed.CreateLoggedMessageEmbed(system, member, messageId, sender, content, originalChannel); var embed = _embed.CreateLoggedMessageEmbed(system, member, messageId, originalMsgId, sender, content, originalChannel);
var url = $"https://discordapp.com/channels/{originalChannel.GuildId}/{originalChannel.Id}/{messageId}"; var url = $"https://discordapp.com/channels/{originalChannel.GuildId}/{originalChannel.Id}/{messageId}";
await logChannel.SendMessageAsync(text: url, embed: embed); await logChannel.SendMessageAsync(text: url, embed: embed);

View File

@ -122,7 +122,7 @@ namespace PluralKit.Bot
// Store the message in the database, and log it in the log channel (if applicable) // Store the message in the database, and log it in the log channel (if applicable)
await _messageStorage.Store(message.Author.Id, hookMessageId, message.Channel.Id, message.Id, match.Member); await _messageStorage.Store(message.Author.Id, hookMessageId, message.Channel.Id, message.Id, match.Member);
await _logChannel.LogMessage(match.System, match.Member, hookMessageId, message.Channel as IGuildChannel, message.Author, match.InnerText); await _logChannel.LogMessage(match.System, match.Member, hookMessageId, message.Id, message.Channel as IGuildChannel, message.Author, match.InnerText);
// Wait a second or so before deleting the original message // Wait a second or so before deleting the original message
await Task.Delay(1000); await Task.Delay(1000);