diff --git a/Modules/UtilityModule.cs b/Modules/UtilityModule.cs index 1f99bf6..81f63dd 100644 --- a/Modules/UtilityModule.cs +++ b/Modules/UtilityModule.cs @@ -65,7 +65,7 @@ await Context.Channel.GetMessageAsync(referencedMessageId) is not IUserMessage m // Make an embed of the message details EmbedBuilder embed = new() { - Title = $"Pin in `#{message.Channel.Name}` by {Context.Message.Author.Username}", + Title = FormatPinTitle(message.Channel.Name, message.Author.Username), Url = message.GetJumpUrl(), Author = new EmbedAuthorBuilder() { @@ -96,6 +96,9 @@ internal static bool TryGetReferencedMessageId(ulong? referencedMessageId, out u return referencedMessageId.HasValue; } + internal static string FormatPinTitle(string channelName, string authorUsername) => + $"Pin in `#{channelName}` by {authorUsername}"; + [Name("Reminder")] [Summary("Sets a reminder using a duration specification (e.g. '5 days and 3 hours'). Minimum 1 minute, maximum 100 years. Usage: reminder [@user] [text...]. Example: reminder 5 days and 3 hours @User Take a break. Reminders are executed once a minute.")] [Command("reminder")] diff --git a/Morpheus.Tests/UtilityModuleTests.cs b/Morpheus.Tests/UtilityModuleTests.cs index 3a70690..ccc8d1a 100644 --- a/Morpheus.Tests/UtilityModuleTests.cs +++ b/Morpheus.Tests/UtilityModuleTests.cs @@ -22,6 +22,14 @@ public void TryGetReferencedMessageId_ReturnsReferenceIdWhenPresent() Assert.Equal(42UL, messageId); } + [Fact] + public void FormatPinTitle_UsesReferencedMessageAuthor() + { + string title = UtilityModule.FormatPinTitle("general", "OriginalAuthor"); + + Assert.Equal("Pin in `#general` by OriginalAuthor", title); + } + [Theory] [InlineData("5 days and 3 hours @User Take a break", "@User Take a break")] [InlineData("5 days, 3 hours: Take a break", "Take a break")]