diff --git a/PluralKit/Bot/Services/EmbedService.cs b/PluralKit/Bot/Services/EmbedService.cs index f680a639..9c80a0f4 100644 --- a/PluralKit/Bot/Services/EmbedService.cs +++ b/PluralKit/Bot/Services/EmbedService.cs @@ -13,7 +13,7 @@ namespace PluralKit.Bot { this._client = client; } - public async Task CreateEmbed(PKSystem system) { + public async Task CreateSystemEmbed(PKSystem system) { var accounts = await _systems.GetLinkedAccountIds(system); // Fetch/render info for all accounts simultaneously @@ -31,5 +31,15 @@ namespace PluralKit.Bot { // TODO: fronter return eb.Build(); } + + public Embed CreateLoggedMessageEmbed(PKSystem system, PKMember member, IMessage message, IUser sender) { + // TODO: pronouns in ?-reacted response using this card + return new EmbedBuilder() + .WithAuthor($"#{message.Channel.Name}: {member.Name}", member.AvatarUrl) + .WithDescription(message.Content) + .WithFooter($"System ID: {system.Hid} | Member ID: {member.Hid} | Sender: ${sender.Username}#{sender.Discriminator} ({sender.Id}) | Message ID: ${message.Id}") + .WithTimestamp(message.Timestamp) + .Build(); + } } } \ No newline at end of file diff --git a/PluralKit/Bot/Services/LogChannelService.cs b/PluralKit/Bot/Services/LogChannelService.cs index f10f5ee4..9f7b55c0 100644 --- a/PluralKit/Bot/Services/LogChannelService.cs +++ b/PluralKit/Bot/Services/LogChannelService.cs @@ -12,23 +12,20 @@ namespace PluralKit.Bot { class LogChannelService { private IDiscordClient _client; private IDbConnection _connection; + private EmbedService _embed; - public LogChannelService(IDiscordClient client, IDbConnection connection) + public LogChannelService(IDiscordClient client, IDbConnection connection, EmbedService embed) { this._client = client; this._connection = connection; + this._embed = embed; } public async Task LogMessage(PKSystem system, PKMember member, IMessage message, IUser sender) { var channel = await GetLogChannel((message.Channel as IGuildChannel).Guild); if (channel == null) return; - var embed = new EmbedBuilder() - .WithAuthor($"#{message.Channel.Name}: {member.Name}", member.AvatarUrl) - .WithDescription(message.Content) - .WithFooter($"System ID: {system.Hid} | Member ID: {member.Hid} | Sender: ${sender.Username}#{sender.Discriminator} ({sender.Id}) | Message ID: ${message.Id}") - .WithTimestamp(message.Timestamp) - .Build(); + var embed = _embed.CreateLoggedMessageEmbed(system, member, message, sender); await channel.SendMessageAsync(text: message.GetJumpUrl(), embed: embed); }