diff --git a/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordMessage.cs b/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordMessage.cs index b0b3fbb56e..565d78d654 100644 --- a/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordMessage.cs +++ b/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordMessage.cs @@ -12,5 +12,19 @@ namespace Tgstation.Server.Host.Components.Chat.Providers /// The of the source . /// public Optional MessageReference { get; set; } + + /// + /// Initializes a new instance of the class. + /// + /// The value of . + /// The value of . + /// The value of . + public DiscordMessage(ChatUser user, string content, Optional messageReference) + : base( + user, + content) + { + MessageReference = messageReference; + } } } diff --git a/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordProvider.cs b/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordProvider.cs index 20432e68d0..3a89c2245c 100644 --- a/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordProvider.cs +++ b/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordProvider.cs @@ -534,11 +534,8 @@ namespace Tgstation.Server.Host.Components.Chat.Providers messageGuildResponse.LogFormat()); } - var result = new DiscordMessage - { - MessageReference = messageReference, - Content = content, - User = new ChatUser + var result = new DiscordMessage( + new ChatUser { RealId = messageCreateEvent.Author.ID.Value, Channel = new ChannelRepresentation( @@ -554,7 +551,8 @@ namespace Tgstation.Server.Host.Components.Chat.Providers FriendlyName = messageCreateEvent.Author.Username, Mention = NormalizeMentions($"<@{messageCreateEvent.Author.ID}>"), }, - }; + content, + messageReference); EnqueueMessage(result); return Result.FromSuccess(); diff --git a/src/Tgstation.Server.Host/Components/Chat/Providers/IrcProvider.cs b/src/Tgstation.Server.Host/Components/Chat/Providers/IrcProvider.cs index 2db2f30376..70665bf695 100644 --- a/src/Tgstation.Server.Host/Components/Chat/Providers/IrcProvider.cs +++ b/src/Tgstation.Server.Host/Components/Chat/Providers/IrcProvider.cs @@ -530,10 +530,8 @@ namespace Tgstation.Server.Host.Components.Chat.Providers } var channelFriendlyName = isPrivate ? String.Format(CultureInfo.InvariantCulture, "PM: {0}", channelName) : channelName; - var message = new Message - { - Content = e.Data.Message, - User = new ChatUser + var message = new Message( + new ChatUser { Channel = new ChannelRepresentation(address, channelFriendlyName, channelId) { @@ -546,7 +544,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers RealId = userId, Mention = username, }, - }; + e.Data.Message); EnqueueMessage(message); } diff --git a/src/Tgstation.Server.Host/Components/Chat/Providers/Message.cs b/src/Tgstation.Server.Host/Components/Chat/Providers/Message.cs index f410514b80..c9084657fc 100644 --- a/src/Tgstation.Server.Host/Components/Chat/Providers/Message.cs +++ b/src/Tgstation.Server.Host/Components/Chat/Providers/Message.cs @@ -1,4 +1,4 @@ -#nullable disable +using System; namespace Tgstation.Server.Host.Components.Chat.Providers { @@ -10,11 +10,22 @@ namespace Tgstation.Server.Host.Components.Chat.Providers /// /// The text of the message. /// - public string Content { get; set; } + public string Content { get; } /// /// The who sent the . /// - public ChatUser User { get; set; } + public ChatUser User { get; } + + /// + /// Initializes a new instance of the class. + /// + /// The value of . + /// The value of . + public Message(ChatUser user, string content) + { + User = user ?? throw new ArgumentNullException(nameof(user)); + Content = content ?? throw new ArgumentNullException(nameof(content)); + } } } diff --git a/tests/Tgstation.Server.Tests/Live/DummyChatProvider.cs b/tests/Tgstation.Server.Tests/Live/DummyChatProvider.cs index 160af5010c..8997c22841 100644 --- a/tests/Tgstation.Server.Tests/Live/DummyChatProvider.cs +++ b/tests/Tgstation.Server.Tests/Live/DummyChatProvider.cs @@ -315,13 +315,8 @@ namespace Tgstation.Server.Tests.Live else content = $"{content} embeds_test"; // NEVER send the response_overload_test, it causes so much havoc in CI and we test it manually - EnqueueMessage(new Message - { - Content = content, - User = sender, - }); + EnqueueMessage(new Message(sender, content)); } - } catch (OperationCanceledException) {