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)
{