]> git.deb.at Git - rhonda/impostor.git/commitdiff
Adapt C2S / S2C for messages and move to Api namespace
authorAeonLucid <aeonlucid@gmail.com>
Mon, 19 Oct 2020 13:05:44 +0000 (15:05 +0200)
committerAeonLucid <aeonlucid@gmail.com>
Mon, 19 Oct 2020 13:05:44 +0000 (15:05 +0200)
45 files changed:
src/Impostor.Api/Innersloth/GameOptionsData.cs
src/Impostor.Api/Net/Messages/C2S/Message00HostGameC2S.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/C2S/Message01JoinGameC2S.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/C2S/Message04RemovePlayerC2S.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/C2S/Message10AlterGameC2S.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/C2S/Message11KickPlayerC2S.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/C2S/Message16GetGameListC2S.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/IMessageWriter.cs
src/Impostor.Api/Net/Messages/MessageFlags.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/MessageType.cs
src/Impostor.Api/Net/Messages/S2C/Message00HostGameS2C.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/S2C/Message01JoinGameS2C.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/S2C/Message04RemovePlayerS2C.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/S2C/Message07JoinedGameS2C.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/S2C/Message10AlterGameS2C.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/S2C/Message11KickPlayerS2C.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/S2C/Message12WaitForHostS2C.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/S2C/Message13RedirectS2C.cs [new file with mode: 0644]
src/Impostor.Api/Net/Messages/S2C/Message16GetGameListS2C.cs [new file with mode: 0644]
src/Impostor.Server/GameData/InnerNetObject.cs
src/Impostor.Server/GameData/Objects/Components/InnerPlayerPhysics.cs
src/Impostor.Server/GameData/Objects/Components/InnerVoteBanSystem.cs
src/Impostor.Server/GameData/Objects/InnerGameData.PlayerInfo.cs
src/Impostor.Server/GameData/Objects/InnerGameData.TaskInfo.cs
src/Impostor.Server/GameData/Objects/InnerGameData.cs
src/Impostor.Server/GameData/Objects/InnerLobbyBehaviour.cs
src/Impostor.Server/GameData/Objects/InnerMeetingHud.cs
src/Impostor.Server/GameData/Objects/InnerPlayerControl.cs
src/Impostor.Server/GameData/Objects/InnerShipStatus.cs
src/Impostor.Server/Net/Client.cs
src/Impostor.Server/Net/ClientBase.cs
src/Impostor.Server/Net/Manager/ClientManager.cs
src/Impostor.Server/Net/Messages/Message00HostGame.cs [deleted file]
src/Impostor.Server/Net/Messages/Message01JoinGame.cs [deleted file]
src/Impostor.Server/Net/Messages/Message04RemovePlayer.cs [deleted file]
src/Impostor.Server/Net/Messages/Message07JoinedGame.cs [deleted file]
src/Impostor.Server/Net/Messages/Message10AlterGame.cs [deleted file]
src/Impostor.Server/Net/Messages/Message11KickPlayer.cs [deleted file]
src/Impostor.Server/Net/Messages/Message12WaitForHost.cs [deleted file]
src/Impostor.Server/Net/Messages/Message13Redirect.cs [deleted file]
src/Impostor.Server/Net/Messages/Message16GetGameListV2.cs [deleted file]
src/Impostor.Server/Net/Messages/MessageFlags.cs [deleted file]
src/Impostor.Server/Net/Redirector/ClientRedirector.cs
src/Impostor.Server/Net/State/Game.Outgoing.cs
src/Impostor.Server/Net/State/Game.cs

index cac637134275b3c7250b85054ed3c882530ef1af..cd26653d37905a200fe6a6cc67e740d7b8fecf81 100644 (file)
@@ -6,6 +6,8 @@ namespace Impostor.Api.Innersloth
 {
     public class GameOptionsData
     {
+        public const int LatestVersion = 2;
+
         public byte Version { get; set; }
         public byte MaxPlayers { get; set; }
         public GameKeywords Keywords { get; set; }
diff --git a/src/Impostor.Api/Net/Messages/C2S/Message00HostGameC2S.cs b/src/Impostor.Api/Net/Messages/C2S/Message00HostGameC2S.cs
new file mode 100644 (file)
index 0000000..7245db2
--- /dev/null
@@ -0,0 +1,23 @@
+using System.IO;
+using Impostor.Api.Innersloth;
+
+namespace Impostor.Api.Net.Messages.C2S
+{
+    public static class Message00HostGameC2S
+    {
+        public static void Serialize(IMessageWriter writer, GameOptionsData gameOptionsData)
+        {
+            using (var memory = new MemoryStream())
+            using (var writerBin = new BinaryWriter(memory))
+            {
+                gameOptionsData.Serialize(writerBin, GameOptionsData.LatestVersion);
+                writer.WriteBytesAndSize(memory.ToArray());
+            }
+        }
+
+        public static GameOptionsData Deserialize(IMessageReader reader)
+        {
+            return GameOptionsData.Deserialize(reader.ReadBytesAndSize());
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Messages/C2S/Message01JoinGameC2S.cs b/src/Impostor.Api/Net/Messages/C2S/Message01JoinGameC2S.cs
new file mode 100644 (file)
index 0000000..7e6baf3
--- /dev/null
@@ -0,0 +1,16 @@
+namespace Impostor.Api.Net.Messages.C2S
+{
+    public static class Message01JoinGameC2S
+    {
+        public static void Serialize(IMessageWriter writer)
+        {
+            throw new System.NotImplementedException();
+        }
+
+        public static void Deserialize(IMessageReader reader, out int gameCode, out byte unknown)
+        {
+            gameCode = reader.ReadInt32();
+            unknown = reader.ReadByte();
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Messages/C2S/Message04RemovePlayerC2S.cs b/src/Impostor.Api/Net/Messages/C2S/Message04RemovePlayerC2S.cs
new file mode 100644 (file)
index 0000000..99cdcfa
--- /dev/null
@@ -0,0 +1,16 @@
+namespace Impostor.Api.Net.Messages.C2S
+{
+    public class Message04RemovePlayerC2S
+    {
+        public static void Serialize(IMessageWriter writer)
+        {
+            throw new System.NotImplementedException();
+        }
+
+        public static void Deserialize(IMessageReader reader, out int playerId, out byte reason)
+        {
+            playerId = reader.ReadPackedInt32();
+            reason = reader.ReadByte();
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Messages/C2S/Message10AlterGameC2S.cs b/src/Impostor.Api/Net/Messages/C2S/Message10AlterGameC2S.cs
new file mode 100644 (file)
index 0000000..3a92e58
--- /dev/null
@@ -0,0 +1,18 @@
+using Impostor.Api.Innersloth.Data;
+
+namespace Impostor.Api.Net.Messages.C2S
+{
+    public class Message10AlterGameC2S
+    {
+        public static void Serialize(IMessageWriter writer)
+        {
+            throw new System.NotImplementedException();
+        }
+
+        public static void Deserialize(IMessageReader reader, out AlterGameTags gameTag, out bool isPublic)
+        {
+            gameTag = (AlterGameTags)reader.ReadByte();
+            isPublic = reader.ReadBoolean();
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Messages/C2S/Message11KickPlayerC2S.cs b/src/Impostor.Api/Net/Messages/C2S/Message11KickPlayerC2S.cs
new file mode 100644 (file)
index 0000000..7c5b8b9
--- /dev/null
@@ -0,0 +1,16 @@
+namespace Impostor.Api.Net.Messages.C2S
+{
+    public class Message11KickPlayerC2S
+    {
+        public static void Serialize(IMessageWriter writer)
+        {
+            throw new System.NotImplementedException();
+        }
+
+        public static void Deserialize(IMessageReader reader, out int playerId, out bool isBan)
+        {
+            playerId = reader.ReadPackedInt32();
+            isBan = reader.ReadBoolean();
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Messages/C2S/Message16GetGameListC2S.cs b/src/Impostor.Api/Net/Messages/C2S/Message16GetGameListC2S.cs
new file mode 100644 (file)
index 0000000..219374d
--- /dev/null
@@ -0,0 +1,18 @@
+using Impostor.Api.Innersloth;
+
+namespace Impostor.Api.Net.Messages.C2S
+{
+    public class Message16GetGameListC2S
+    {
+        public static void Serialize(IMessageWriter writer)
+        {
+            throw new System.NotImplementedException();
+        }
+
+        public static void Deserialize(IMessageReader reader, out GameOptionsData options)
+        {
+            reader.ReadPackedInt32(); // Hardcoded 0.
+            options = GameOptionsData.Deserialize(reader.ReadBytesAndSize());
+        }
+    }
+}
\ No newline at end of file
index 5eb5798704abc08936c81bc3fecbe60d31158585..4f6765bfe3e2c308e3cb6b634c9dc53bf3d75ea6 100644 (file)
@@ -101,6 +101,12 @@ namespace Impostor.Api.Net.Messages
         /// <param name="value">Value to write.</param>
         void Write(GameCode value);
 
+        void WriteBytesAndSize(byte[] bytes);
+
+        void WriteBytesAndSize(byte[] bytes, int length);
+
+        void WriteBytesAndSize(byte[] bytes, int offset, int length);
+
         /// <summary>
         ///     Starts a new message.
         /// </summary>
diff --git a/src/Impostor.Api/Net/Messages/MessageFlags.cs b/src/Impostor.Api/Net/Messages/MessageFlags.cs
new file mode 100644 (file)
index 0000000..aea0c60
--- /dev/null
@@ -0,0 +1,22 @@
+namespace Impostor.Api.Net.Messages
+{
+    public static class MessageFlags
+    {
+        public const byte HostGame = 0;
+        public const byte JoinGame = 1;
+        public const byte StartGame = 2;
+        public const byte RemoveGame = 3;
+        public const byte RemovePlayer = 4;
+        public const byte GameData = 5;
+        public const byte GameDataTo = 6;
+        public const byte JoinedGame = 7;
+        public const byte EndGame = 8;
+        public const byte AlterGame = 10;
+        public const byte KickPlayer = 11;
+        public const byte WaitForHost = 12;
+        public const byte Redirect = 13;
+        public const byte ReselectServer = 14;
+        public const byte GetGameList = 9;
+        public const byte GetGameListV2 = 16;
+    }
+}
\ No newline at end of file
index 92fa153857eaf057dd86e8ef3dcb27802d1e7c40..16043585d58426f3414eaf319946649f830b6c62 100644 (file)
@@ -1,4 +1,4 @@
-using System;
+using System;
 
 namespace Impostor.Api.Net.Messages
 {
diff --git a/src/Impostor.Api/Net/Messages/S2C/Message00HostGameS2C.cs b/src/Impostor.Api/Net/Messages/S2C/Message00HostGameS2C.cs
new file mode 100644 (file)
index 0000000..8402d10
--- /dev/null
@@ -0,0 +1,20 @@
+using System;
+using Impostor.Api.Innersloth;
+
+namespace Impostor.Api.Net.Messages.S2C
+{
+    public static class Message00HostGameS2C
+    {
+        public static void Serialize(IMessageWriter writer, int gameCode)
+        {
+            writer.StartMessage(MessageFlags.HostGame);
+            writer.Write(gameCode);
+            writer.EndMessage();
+        }
+
+        public static GameOptionsData Deserialize(IMessageReader reader)
+        {
+            throw new NotImplementedException();
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Messages/S2C/Message01JoinGameS2C.cs b/src/Impostor.Api/Net/Messages/S2C/Message01JoinGameS2C.cs
new file mode 100644 (file)
index 0000000..159ed2f
--- /dev/null
@@ -0,0 +1,50 @@
+using System;
+using Impostor.Api.Innersloth.Data;
+
+namespace Impostor.Api.Net.Messages.S2C
+{
+    public class Message01JoinGameS2C
+    {
+        public static void SerializeJoin(IMessageWriter writer, bool clear, int gameCode, int playerId, int hostId)
+        {
+            if (clear)
+            {
+                writer.Clear(MessageType.Reliable);
+            }
+
+            writer.StartMessage(MessageFlags.JoinGame);
+            writer.Write(gameCode);
+            writer.Write(playerId);
+            writer.Write(hostId);
+            writer.EndMessage();
+        }
+
+        public static void SerializeError(IMessageWriter writer, bool clear, DisconnectReason reason, string message = null)
+        {
+            if (clear)
+            {
+                writer.Clear(MessageType.Reliable);
+            }
+
+            writer.StartMessage(MessageFlags.JoinGame);
+            writer.Write((int) reason);
+
+            if (reason == DisconnectReason.Custom)
+            {
+                if (message == null)
+                {
+                    throw new ArgumentNullException(nameof(message));
+                }
+
+                writer.Write(message);
+            }
+
+            writer.EndMessage();
+        }
+
+        public static void Deserialize(IMessageReader reader)
+        {
+            throw new System.NotImplementedException();
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Messages/S2C/Message04RemovePlayerS2C.cs b/src/Impostor.Api/Net/Messages/S2C/Message04RemovePlayerS2C.cs
new file mode 100644 (file)
index 0000000..abbb844
--- /dev/null
@@ -0,0 +1,29 @@
+using Impostor.Api.Innersloth.Data;
+
+namespace Impostor.Api.Net.Messages.S2C
+{
+    public class Message04RemovePlayerS2C
+    {
+        public static void Serialize(IMessageWriter writer, bool clear, int gameCode, int playerId, int hostId, DisconnectReason reason)
+        {
+            // Only a subset of DisconnectReason shows an unique message.
+            // ExitGame, Banned and Kicked.
+            if (clear)
+            {
+                writer.Clear(MessageType.Reliable);
+            }
+
+            writer.StartMessage(MessageFlags.RemovePlayer);
+            writer.Write(gameCode);
+            writer.Write(playerId);
+            writer.Write(hostId);
+            writer.Write((byte)reason);
+            writer.EndMessage();
+        }
+
+        public static void Deserialize(IMessageReader reader)
+        {
+            throw new System.NotImplementedException();
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Messages/S2C/Message07JoinedGameS2C.cs b/src/Impostor.Api/Net/Messages/S2C/Message07JoinedGameS2C.cs
new file mode 100644 (file)
index 0000000..da6eb40
--- /dev/null
@@ -0,0 +1,31 @@
+namespace Impostor.Api.Net.Messages.S2C
+{
+    public static class Message07JoinedGameS2C
+    {
+        public static void Serialize(IMessageWriter writer, bool clear, int gameCode, int playerId, int hostId, int[] otherPlayerIds)
+        {
+            if (clear)
+            {
+                writer.Clear(MessageType.Reliable);
+            }
+
+            writer.StartMessage(MessageFlags.JoinedGame);
+            writer.Write(gameCode);
+            writer.Write(playerId);
+            writer.Write(hostId);
+            writer.WritePacked(otherPlayerIds.Length);
+
+            foreach (var id in otherPlayerIds)
+            {
+                writer.WritePacked(id);
+            }
+
+            writer.EndMessage();
+        }
+
+        public static void Deserialize(IMessageReader reader)
+        {
+            throw new System.NotImplementedException();
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Messages/S2C/Message10AlterGameS2C.cs b/src/Impostor.Api/Net/Messages/S2C/Message10AlterGameS2C.cs
new file mode 100644 (file)
index 0000000..469cd84
--- /dev/null
@@ -0,0 +1,26 @@
+using Impostor.Api.Innersloth.Data;
+
+namespace Impostor.Api.Net.Messages.S2C
+{
+    public static class Message10AlterGameS2C
+    {
+        public static void Serialize(IMessageWriter writer, bool clear, int gameCode, bool isPublic)
+        {
+            if (clear)
+            {
+                writer.Clear(MessageType.Reliable);
+            }
+
+            writer.StartMessage(MessageFlags.AlterGame);
+            writer.Write(gameCode);
+            writer.Write((byte)AlterGameTags.ChangePrivacy);
+            writer.Write(isPublic);
+            writer.EndMessage();
+        }
+
+        public static void Deserialize(IMessageReader reader)
+        {
+            throw new System.NotImplementedException();
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Messages/S2C/Message11KickPlayerS2C.cs b/src/Impostor.Api/Net/Messages/S2C/Message11KickPlayerS2C.cs
new file mode 100644 (file)
index 0000000..1e2b6ef
--- /dev/null
@@ -0,0 +1,24 @@
+namespace Impostor.Api.Net.Messages.S2C
+{
+    public class Message11KickPlayerS2C
+    {
+        public static void Serialize(IMessageWriter writer, bool clear, int gameCode, int playerId, bool isBan)
+        {
+            if (clear)
+            {
+                writer.Clear(MessageType.Reliable);
+            }
+
+            writer.StartMessage(MessageFlags.KickPlayer);
+            writer.Write(gameCode);
+            writer.WritePacked(playerId);
+            writer.Write(isBan);
+            writer.EndMessage();
+        }
+
+        public static void Deserialize(IMessageReader reader)
+        {
+            throw new System.NotImplementedException();
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Messages/S2C/Message12WaitForHostS2C.cs b/src/Impostor.Api/Net/Messages/S2C/Message12WaitForHostS2C.cs
new file mode 100644 (file)
index 0000000..5964b1c
--- /dev/null
@@ -0,0 +1,23 @@
+namespace Impostor.Api.Net.Messages.S2C
+{
+    public class Message12WaitForHostS2C
+    {
+        public static void Serialize(IMessageWriter writer, bool clear, int gameCode, int playerId)
+        {
+            if (clear)
+            {
+                writer.Clear(MessageType.Reliable);
+            }
+
+            writer.StartMessage(MessageFlags.WaitForHost);
+            writer.Write(gameCode);
+            writer.Write(playerId);
+            writer.EndMessage();
+        }
+
+        public static void Deserialize(IMessageReader reader)
+        {
+            throw new System.NotImplementedException();
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Messages/S2C/Message13RedirectS2C.cs b/src/Impostor.Api/Net/Messages/S2C/Message13RedirectS2C.cs
new file mode 100644 (file)
index 0000000..4b93b0e
--- /dev/null
@@ -0,0 +1,25 @@
+using System.Net;
+
+namespace Impostor.Api.Net.Messages.S2C
+{
+    public class Message13RedirectS2C
+    {
+        public static void Serialize(IMessageWriter writer, bool clear, IPEndPoint ipEndPoint)
+        {
+            if (clear)
+            {
+                writer.Clear(MessageType.Reliable);
+            }
+
+            writer.StartMessage(MessageFlags.Redirect);
+            writer.Write(ipEndPoint.Address);
+            writer.Write((ushort)ipEndPoint.Port);
+            writer.EndMessage();
+        }
+
+        public static void Deserialize(IMessageReader reader)
+        {
+            throw new System.NotImplementedException();
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Messages/S2C/Message16GetGameListS2C.cs b/src/Impostor.Api/Net/Messages/S2C/Message16GetGameListS2C.cs
new file mode 100644 (file)
index 0000000..93386d7
--- /dev/null
@@ -0,0 +1,46 @@
+using System.Collections.Generic;
+using Impostor.Api.Games;
+
+namespace Impostor.Api.Net.Messages.S2C
+{
+    public class Message16GetGameListS2C
+    {
+        public static void Serialize(IMessageWriter writer, int skeldGameCount, int miraHqGameCount, int polusGameCount, IEnumerable<IGame> games)
+        {
+            writer.StartMessage(MessageFlags.GetGameListV2);
+
+            // Count
+            writer.StartMessage(1);
+            writer.Write(skeldGameCount); // The Skeld
+            writer.Write(miraHqGameCount); // Mira HQ
+            writer.Write(polusGameCount); // Polus
+            writer.EndMessage();
+
+            // Listing
+            writer.StartMessage(0);
+
+            foreach (var game in games)
+            {
+                writer.StartMessage(0);
+                writer.Write(game.PublicIp.Address);
+                writer.Write((ushort)game.PublicIp.Port);
+                writer.Write(game.Code);
+                writer.Write(game.Host.Client.Name);
+                writer.Write((byte)game.PlayerCount);
+                writer.WritePacked(1); // TODO: What does Age do?
+                writer.Write((byte)game.Options.MapId);
+                writer.Write((byte)game.Options.NumImpostors);
+                writer.Write((byte)game.Options.MaxPlayers);
+                writer.EndMessage();
+            }
+
+            writer.EndMessage();
+            writer.EndMessage();
+        }
+
+        public static void Deserialize(IMessageReader reader)
+        {
+            throw new System.NotImplementedException();
+        }
+    }
+}
\ No newline at end of file
index 78ce960e95adf9a108a9d608148d43a1794f8e86..d1a09e0b0eecec380858ab9f38a9d3869de1635c 100644 (file)
@@ -1,5 +1,4 @@
 using Impostor.Api.Net.Messages;
-using Impostor.Server.Net.Messages;
 
 namespace Impostor.Server.GameData
 {
index df7f7aa76c49b5dee8a52d392669a95ec31dd477..698f97ee0745aa682fe4b873ba0f171ca541bb3e 100644 (file)
@@ -1,5 +1,4 @@
 using Impostor.Api.Net.Messages;
-using Impostor.Server.Net.Messages;
 
 namespace Impostor.Server.GameData.Objects.Components
 {
index 9c3d5de33f59cf94390e13592897f1c7f20dea9e..e4a156b2dcd9a834540fc9dc74cd4a8b50b82a74 100644 (file)
@@ -1,7 +1,6 @@
 using System;
 using System.Collections.Generic;
 using Impostor.Api.Net.Messages;
-using Impostor.Server.Net.Messages;
 
 namespace Impostor.Server.GameData.Objects.Components
 {
index 2abf5c84cd22bd307a2b7fffabfcfb1c9a729536..dfcdfab99f263228296999d3c4391df8143e7934 100644 (file)
@@ -1,7 +1,6 @@
 using System;
 using System.Collections.Generic;
 using Impostor.Api.Net.Messages;
-using Impostor.Server.Net.Messages;
 
 namespace Impostor.Server.GameData.Objects
 {
index e317bd2e4a0d13de6cbe7a2ad2b3a626caec385e..516a7a9d15ff0d57af173703fb8ca312e55acc28 100644 (file)
@@ -1,5 +1,4 @@
 using Impostor.Api.Net.Messages;
-using Impostor.Server.Net.Messages;
 
 namespace Impostor.Server.GameData.Objects
 {
index 5e23d17565511f61524589f2d3eb88ef3d8f0637..3b27000fbdcadfcf515f08c4ade5522823d673a8 100644 (file)
@@ -3,7 +3,6 @@ using System.Collections.Generic;
 using Impostor.Api.Games;
 using Impostor.Api.Net.Messages;
 using Impostor.Server.GameData.Objects.Components;
-using Impostor.Server.Net.Messages;
 
 namespace Impostor.Server.GameData.Objects
 {
index bdfcdf4de7ce2a334a4b418ea3311aee24a2b8ab..c9f96c075c1120be7d4b142fab4982b17d6efd3f 100644 (file)
@@ -1,6 +1,5 @@
 using Impostor.Api.Games;
 using Impostor.Api.Net.Messages;
-using Impostor.Server.Net.Messages;
 
 namespace Impostor.Server.GameData.Objects
 {
index 6fc30bc09e0d1308a82d206dc35b8667e9db4375..70885268c73c8a64cb40b90beab389eabc6a72d4 100644 (file)
@@ -1,6 +1,5 @@
 using Impostor.Api.Games;
 using Impostor.Api.Net.Messages;
-using Impostor.Server.Net.Messages;
 
 namespace Impostor.Server.GameData.Objects
 {
index 821f495fe4bab03e97bdb746f24eedc0206848af..da7eec08408323f235d32fbadae2a982bc3d759e 100644 (file)
@@ -2,7 +2,6 @@
 using Impostor.Api.Games;
 using Impostor.Api.Net.Messages;
 using Impostor.Server.GameData.Objects.Components;
-using Impostor.Server.Net.Messages;
 using Microsoft.Extensions.DependencyInjection;
 
 namespace Impostor.Server.GameData.Objects
index 17f9931db6a7b5a10afbd0b0ea0f076dfcbc4c35..00d38c48453981ed9731a496d5c0d0fb69d2ea23 100644 (file)
@@ -1,6 +1,5 @@
 using Impostor.Api.Games;
 using Impostor.Api.Net.Messages;
-using Impostor.Server.Net.Messages;
 
 namespace Impostor.Server.GameData.Objects
 {
index 42a17ce59bb9d8f8b6837a599ff66182d8f0a699..d369a81f17ae65ba3cf57883aeb9b9e391e1112d 100644 (file)
@@ -5,10 +5,11 @@ using Impostor.Api.Games;
 using Impostor.Api.Innersloth;
 using Impostor.Api.Innersloth.Data;
 using Impostor.Api.Net.Messages;
+using Impostor.Api.Net.Messages.C2S;
+using Impostor.Api.Net.Messages.S2C;
 using Impostor.Server.Data;
 using Impostor.Server.Net.Hazel;
 using Impostor.Server.Net.Manager;
-using Impostor.Server.Net.Messages;
 using Microsoft.Extensions.Logging;
 
 namespace Impostor.Server.Net
@@ -38,7 +39,7 @@ namespace Impostor.Server.Net
                 case MessageFlags.HostGame:
                 {
                     // Read game settings.
-                    var gameInfo = Message00HostGame.Deserialize(reader);
+                    var gameInfo = Message00HostGameC2S.Deserialize(reader);
 
                     // Create game.
                     var game = await _gameManager.CreateAsync(gameInfo);
@@ -46,7 +47,7 @@ namespace Impostor.Server.Net
                     // Code in the packet below will be used in JoinGame.
                     using (var writer = MessageWriter.Get(MessageType.Reliable))
                     {
-                        Message00HostGame.Serialize(writer, game.Code);
+                        Message00HostGameS2C.Serialize(writer, game.Code);
                         await Connection.SendAsync(writer);
                     }
 
@@ -55,7 +56,7 @@ namespace Impostor.Server.Net
 
                 case MessageFlags.JoinGame:
                 {
-                    Message01JoinGame.Deserialize(
+                    Message01JoinGameC2S.Deserialize(
                         reader,
                         out var gameCode,
                         out _);
@@ -124,7 +125,7 @@ namespace Impostor.Server.Net
                         return;
                     }
 
-                    Message04RemovePlayer.Deserialize(
+                    Message04RemovePlayerC2S.Deserialize(
                         reader,
                         out var playerId,
                         out var reason);
@@ -186,7 +187,7 @@ namespace Impostor.Server.Net
                         return;
                     }
 
-                    Message10AlterGame.Deserialize(
+                    Message10AlterGameC2S.Deserialize(
                         reader,
                         out var gameTag,
                         out var value);
@@ -207,7 +208,7 @@ namespace Impostor.Server.Net
                         return;
                     }
 
-                    Message11KickPlayer.Deserialize(
+                    Message11KickPlayerC2S.Deserialize(
                         reader,
                         out var playerId,
                         out var isBan);
@@ -218,7 +219,7 @@ namespace Impostor.Server.Net
 
                 case MessageFlags.GetGameListV2:
                 {
-                    Message16GetGameListV2.Deserialize(reader, out var options);
+                    Message16GetGameListC2S.Deserialize(reader, out var options);
                     await OnRequestGameList(options);
                     break;
                 }
@@ -308,7 +309,7 @@ namespace Impostor.Server.Net
             var miraHqGameCount = _gameManager.GetGameCount(MapFlags.MiraHQ);
             var polusGameCount = _gameManager.GetGameCount(MapFlags.Polus);
 
-            Message16GetGameListV2.Serialize(message, skeldGameCount, miraHqGameCount, polusGameCount, games);
+            Message16GetGameListS2C.Serialize(message, skeldGameCount, miraHqGameCount, polusGameCount, games);
 
             return Connection.SendAsync(message);
         }
@@ -321,7 +322,7 @@ namespace Impostor.Server.Net
             }
 
             using var packet = MessageWriter.Get(MessageType.Reliable);
-            Message01JoinGame.SerializeError(packet, false, reason, message);
+            Message01JoinGameS2C.SerializeError(packet, false, reason, message);
             return Connection.SendAsync(packet);
         }
     }
index 3dda4caae68d23d907a90614072328a654cb1c7e..9ca4d36f34e6d45b551e9bac1b18ec1473c2d88e 100644 (file)
@@ -3,7 +3,6 @@ using System.Collections.Generic;
 using System.Threading.Tasks;
 using Impostor.Api.Net.Messages;
 using Impostor.Server.Net.Hazel;
-using Impostor.Server.Net.Messages;
 using Impostor.Server.Net.State;
 
 namespace Impostor.Server.Net
index 4a6a99623792bee6ffb4b70b6ddb3b13a28052b6..c5cb5d0fe4fb6cbaebbfc5522338661194b2db2c 100644 (file)
@@ -7,10 +7,10 @@ using Impostor.Api.Innersloth;
 using Impostor.Api.Innersloth.Data;
 using Impostor.Api.Net;
 using Impostor.Api.Net.Messages;
+using Impostor.Api.Net.Messages.S2C;
 using Impostor.Server.Data;
 using Impostor.Server.Net.Factories;
 using Impostor.Server.Net.Hazel;
-using Impostor.Server.Net.Messages;
 using Microsoft.Extensions.Logging;
 
 namespace Impostor.Server.Net.Manager
@@ -58,7 +58,7 @@ namespace Impostor.Server.Net.Manager
             if (name.Length > 10)
             {
                 using var packet = MessageWriter.Get(MessageType.Reliable);
-                Message01JoinGame.SerializeError(packet, false, DisconnectReason.Custom, DisconnectMessages.UsernameLength);
+                Message01JoinGameS2C.SerializeError(packet, false, DisconnectReason.Custom, DisconnectMessages.UsernameLength);
                 await connection.SendAsync(packet);
                 return;
             }
@@ -66,7 +66,7 @@ namespace Impostor.Server.Net.Manager
             if (!SupportedVersions.Contains(clientVersion))
             {
                 using var packet = MessageWriter.Get(MessageType.Reliable);
-                Message01JoinGame.SerializeError(packet, false, DisconnectReason.IncorrectVersion);
+                Message01JoinGameS2C.SerializeError(packet, false, DisconnectReason.IncorrectVersion);
                 await connection.SendAsync(packet);
                 return;
             }
diff --git a/src/Impostor.Server/Net/Messages/Message00HostGame.cs b/src/Impostor.Server/Net/Messages/Message00HostGame.cs
deleted file mode 100644 (file)
index 835424b..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-using Impostor.Api.Innersloth;
-using Impostor.Api.Net.Messages;
-
-namespace Impostor.Server.Net.Messages
-{
-    internal static class Message00HostGame
-    {
-        public static void Serialize(IMessageWriter writer, int gameCode)
-        {
-            writer.StartMessage(MessageFlags.HostGame);
-            writer.Write(gameCode);
-            writer.EndMessage();
-        }
-
-        public static GameOptionsData Deserialize(IMessageReader reader)
-        {
-            return GameOptionsData.Deserialize(reader.ReadBytesAndSize());
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/Impostor.Server/Net/Messages/Message01JoinGame.cs b/src/Impostor.Server/Net/Messages/Message01JoinGame.cs
deleted file mode 100644 (file)
index fb254b5..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-using System;
-using Impostor.Api.Innersloth.Data;
-using Impostor.Api.Net.Messages;
-
-namespace Impostor.Server.Net.Messages
-{
-    internal static class Message01JoinGame
-    {
-        public static void SerializeJoin(IMessageWriter writer, bool clear, int gameCode, int playerId, int hostId)
-        {
-            if (clear)
-            {
-                writer.Clear(MessageType.Reliable);
-            }
-
-            writer.StartMessage(MessageFlags.JoinGame);
-            writer.Write(gameCode);
-            writer.Write(playerId);
-            writer.Write(hostId);
-            writer.EndMessage();
-        }
-
-        public static void SerializeError(IMessageWriter writer, bool clear, DisconnectReason reason, string message = null)
-        {
-            if (clear)
-            {
-                writer.Clear(MessageType.Reliable);
-            }
-
-            writer.StartMessage(MessageFlags.JoinGame);
-            writer.Write((int) reason);
-
-            if (reason == DisconnectReason.Custom)
-            {
-                if (message == null)
-                {
-                    throw new ArgumentNullException(nameof(message));
-                }
-
-                writer.Write(message);
-            }
-
-            writer.EndMessage();
-        }
-
-        public static void Deserialize(IMessageReader reader, out int gameCode, out byte unknown)
-        {
-            gameCode = reader.ReadInt32();
-            unknown = reader.ReadByte();
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/Impostor.Server/Net/Messages/Message04RemovePlayer.cs b/src/Impostor.Server/Net/Messages/Message04RemovePlayer.cs
deleted file mode 100644 (file)
index e8e669e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-using Impostor.Api.Innersloth.Data;
-using Impostor.Api.Net.Messages;
-
-namespace Impostor.Server.Net.Messages
-{
-    internal static class Message04RemovePlayer
-    {
-        public static void Serialize(IMessageWriter writer, bool clear, int gameCode, int playerId, int hostId, DisconnectReason reason)
-        {
-            // Only a subset of DisconnectReason shows an unique message.
-            // ExitGame, Banned and Kicked.
-            if (clear)
-            {
-                writer.Clear(MessageType.Reliable);
-            }
-
-            writer.StartMessage(MessageFlags.RemovePlayer);
-            writer.Write(gameCode);
-            writer.Write(playerId);
-            writer.Write(hostId);
-            writer.Write((byte)reason);
-            writer.EndMessage();
-        }
-
-        public static void Deserialize(IMessageReader reader, out int playerId, out byte reason)
-        {
-            playerId = reader.ReadPackedInt32();
-            reason = reader.ReadByte();
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/Impostor.Server/Net/Messages/Message07JoinedGame.cs b/src/Impostor.Server/Net/Messages/Message07JoinedGame.cs
deleted file mode 100644 (file)
index d1957dc..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-using Impostor.Api.Net.Messages;
-
-namespace Impostor.Server.Net.Messages
-{
-    internal static class Message07JoinedGame
-    {
-        public static void Serialize(IMessageWriter writer, bool clear, int gameCode, int playerId, int hostId, int[] otherPlayerIds)
-        {
-            if (clear)
-            {
-                writer.Clear(MessageType.Reliable);
-            }
-
-            writer.StartMessage(MessageFlags.JoinedGame);
-            writer.Write(gameCode);
-            writer.Write(playerId);
-            writer.Write(hostId);
-            writer.WritePacked(otherPlayerIds.Length);
-
-            foreach (var id in otherPlayerIds)
-            {
-                writer.WritePacked(id);
-            }
-
-            writer.EndMessage();
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/Impostor.Server/Net/Messages/Message10AlterGame.cs b/src/Impostor.Server/Net/Messages/Message10AlterGame.cs
deleted file mode 100644 (file)
index eedf1bd..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-using Impostor.Api.Innersloth.Data;
-using Impostor.Api.Net.Messages;
-
-namespace Impostor.Server.Net.Messages
-{
-    internal static class Message10AlterGame
-    {
-        public static void Serialize(IMessageWriter writer, bool clear, int gameCode, bool isPublic)
-        {
-            if (clear)
-            {
-                writer.Clear(MessageType.Reliable);
-            }
-
-            writer.StartMessage(MessageFlags.AlterGame);
-            writer.Write(gameCode);
-            writer.Write((byte)AlterGameTags.ChangePrivacy);
-            writer.Write(isPublic);
-            writer.EndMessage();
-        }
-
-        public static void Deserialize(IMessageReader reader, out AlterGameTags gameTag, out bool isPublic)
-        {
-            gameTag = (AlterGameTags) reader.ReadByte();
-            isPublic = reader.ReadBoolean();
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/Impostor.Server/Net/Messages/Message11KickPlayer.cs b/src/Impostor.Server/Net/Messages/Message11KickPlayer.cs
deleted file mode 100644 (file)
index 4d36f20..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-using Impostor.Api.Net.Messages;
-
-namespace Impostor.Server.Net.Messages
-{
-    internal static class Message11KickPlayer
-    {
-        public static void Serialize(IMessageWriter writer, bool clear, int gameCode, int playerId, bool isBan)
-        {
-            if (clear)
-            {
-                writer.Clear(MessageType.Reliable);
-            }
-
-            writer.StartMessage(MessageFlags.KickPlayer);
-            writer.Write(gameCode);
-            writer.WritePacked(playerId);
-            writer.Write(isBan);
-            writer.EndMessage();
-        }
-
-        public static void Deserialize(IMessageReader reader, out int playerId, out bool isBan)
-        {
-            playerId = reader.ReadPackedInt32();
-            isBan = reader.ReadBoolean();
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/Impostor.Server/Net/Messages/Message12WaitForHost.cs b/src/Impostor.Server/Net/Messages/Message12WaitForHost.cs
deleted file mode 100644 (file)
index 67b75b9..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-using Impostor.Api.Net.Messages;
-
-namespace Impostor.Server.Net.Messages
-{
-    internal static class Message12WaitForHost
-    {
-        public static void Serialize(IMessageWriter writer, bool clear, int gameCode, int playerId)
-        {
-            if (clear)
-            {
-                writer.Clear(MessageType.Reliable);
-            }
-
-            writer.StartMessage(MessageFlags.WaitForHost);
-            writer.Write(gameCode);
-            writer.Write(playerId);
-            writer.EndMessage();
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/Impostor.Server/Net/Messages/Message13Redirect.cs b/src/Impostor.Server/Net/Messages/Message13Redirect.cs
deleted file mode 100644 (file)
index 3b8a092..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-using System.Net;
-using Impostor.Api.Net.Messages;
-
-namespace Impostor.Server.Net.Messages
-{
-    internal static class Message13Redirect
-    {
-        public static void Serialize(IMessageWriter writer, bool clear, IPEndPoint ipEndPoint)
-        {
-            if (clear)
-            {
-                writer.Clear(MessageType.Reliable);
-            }
-
-            writer.StartMessage(MessageFlags.Redirect);
-            writer.Write(ipEndPoint.Address);
-            writer.Write((ushort)ipEndPoint.Port);
-            writer.EndMessage();
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/Impostor.Server/Net/Messages/Message16GetGameListV2.cs b/src/Impostor.Server/Net/Messages/Message16GetGameListV2.cs
deleted file mode 100644 (file)
index da8f630..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-using System.Collections.Generic;
-using Impostor.Api.Games;
-using Impostor.Api.Innersloth;
-using Impostor.Api.Net.Messages;
-
-namespace Impostor.Server.Net.Messages
-{
-    internal static class Message16GetGameListV2
-    {
-        public static void Deserialize(IMessageReader reader, out GameOptionsData options)
-        {
-            reader.ReadPackedInt32(); // Hardcoded 0.
-            options = GameOptionsData.Deserialize(reader.ReadBytesAndSize());
-        }
-
-        public static void Serialize(IMessageWriter writer, int skeldGameCount, int miraHqGameCount, int polusGameCount, IEnumerable<IGame> games)
-        {
-            writer.StartMessage(MessageFlags.GetGameListV2);
-
-            // Count
-            writer.StartMessage(1);
-            writer.Write(skeldGameCount); // The Skeld
-            writer.Write(miraHqGameCount); // Mira HQ
-            writer.Write(polusGameCount); // Polus
-            writer.EndMessage();
-
-            // Listing
-            writer.StartMessage(0);
-
-            foreach (var game in games)
-            {
-                writer.StartMessage(0);
-                writer.Write(game.PublicIp.Address);
-                writer.Write((ushort) game.PublicIp.Port);
-                writer.Write(game.Code);
-                writer.Write(game.Host.Client.Name);
-                writer.Write((byte) game.PlayerCount);
-                writer.WritePacked(1); // TODO: What does Age do?
-                writer.Write((byte) game.Options.MapId);
-                writer.Write((byte) game.Options.NumImpostors);
-                writer.Write((byte) game.Options.MaxPlayers);
-                writer.EndMessage();
-            }
-
-            writer.EndMessage();
-            writer.EndMessage();
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/Impostor.Server/Net/Messages/MessageFlags.cs b/src/Impostor.Server/Net/Messages/MessageFlags.cs
deleted file mode 100644 (file)
index 595c02e..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-namespace Impostor.Server.Net.Messages
-{
-    internal static class MessageFlags
-    {
-        public const byte HostGame = 0;
-        public const byte JoinGame = 1;
-        public const byte StartGame = 2;
-        public const byte RemoveGame = 3;
-        public const byte RemovePlayer = 4;
-        public const byte GameData = 5;
-        public const byte GameDataTo = 6;
-        public const byte JoinedGame = 7;
-        public const byte EndGame = 8;
-        public const byte AlterGame = 10;
-        public const byte KickPlayer = 11;
-        public const byte WaitForHost = 12;
-        public const byte Redirect = 13;
-        public const byte ReselectServer = 14;
-        public const byte GetGameList = 9;
-        public const byte GetGameListV2 = 16;
-    }
-}
\ No newline at end of file
index a9ffa68753940903a472ef1e51793c3e07c3324b..0d001f3c7606e8dfbc8da8d637f48cca975ddb27 100644 (file)
@@ -3,10 +3,11 @@ using Hazel;
 using Impostor.Api.Innersloth;
 using Impostor.Api.Innersloth.Data;
 using Impostor.Api.Net.Messages;
+using Impostor.Api.Net.Messages.C2S;
+using Impostor.Api.Net.Messages.S2C;
 using Impostor.Server.Data;
 using Impostor.Server.Net.Hazel;
 using Impostor.Server.Net.Manager;
-using Impostor.Server.Net.Messages;
 using Serilog;
 using ILogger = Serilog.ILogger;
 
@@ -44,14 +45,14 @@ namespace Impostor.Server.Net.Redirector
                 case MessageFlags.HostGame:
                 {
                     using var packet = MessageWriter.Get(MessageType.Reliable);
-                    Message13Redirect.Serialize(packet, false, _nodeProvider.Get());
+                    Message13RedirectS2C.Serialize(packet, false, _nodeProvider.Get());
                     await Connection.SendAsync(packet);
                     break;
                 }
 
                 case MessageFlags.JoinGame:
                 {
-                    Message01JoinGame.Deserialize(
+                    Message01JoinGameC2S.Deserialize(
                         reader,
                         out var gameCode,
                         out _);
@@ -60,11 +61,11 @@ namespace Impostor.Server.Net.Redirector
                     var endpoint = _nodeLocator.Find(GameCodeParser.IntToGameName(gameCode));
                     if (endpoint == null)
                     {
-                        Message01JoinGame.SerializeError(packet, false, DisconnectReason.GameMissing);
+                        Message01JoinGameS2C.SerializeError(packet, false, DisconnectReason.GameMissing);
                     }
                     else
                     {
-                        Message13Redirect.Serialize(packet, false, endpoint);
+                        Message13RedirectS2C.Serialize(packet, false, endpoint);
                     }
 
                     await Connection.SendAsync(packet);
@@ -75,7 +76,7 @@ namespace Impostor.Server.Net.Redirector
                 {
                     // TODO: Implement.
                     using var packet = MessageWriter.Get(MessageType.Reliable);
-                    Message01JoinGame.SerializeError(packet, false, DisconnectReason.Custom, DisconnectMessages.NotImplemented);
+                    Message01JoinGameS2C.SerializeError(packet, false, DisconnectReason.Custom, DisconnectMessages.NotImplemented);
                     await Connection.SendAsync(packet);
                     break;
                 }
index bc832e408b09e1bf6d560df52dd1dbafb71aed57..ddbf2c7b17a0853b141c4848cdf514a2f18387f3 100644 (file)
@@ -3,8 +3,8 @@ using System.Threading.Tasks;
 using Impostor.Api.Innersloth.Data;
 using Impostor.Api.Net;
 using Impostor.Api.Net.Messages;
+using Impostor.Api.Net.Messages.S2C;
 using Impostor.Server.Net.Hazel;
-using Impostor.Server.Net.Messages;
 
 namespace Impostor.Server.Net.State
 {
@@ -44,7 +44,7 @@ namespace Impostor.Server.Net.State
 
         private void WriteRemovePlayerMessage(IMessageWriter message, bool clear, int playerId, DisconnectReason reason)
         {
-            Message04RemovePlayer.Serialize(message, clear, Code, playerId, HostId, reason);
+            Message04RemovePlayerS2C.Serialize(message, clear, Code, playerId, HostId, reason);
         }
 
         private void WriteJoinedGameMessage(IMessageWriter message, bool clear, IClientPlayer player)
@@ -54,22 +54,22 @@ namespace Impostor.Server.Net.State
                 .Select(x => x.Key)
                 .ToArray();
 
-            Message07JoinedGame.Serialize(message, clear, Code, player.Client.Id, HostId, playerIds);
+            Message07JoinedGameS2C.Serialize(message, clear, Code, player.Client.Id, HostId, playerIds);
         }
 
         private void WriteAlterGameMessage(IMessageWriter message, bool clear, bool isPublic)
         {
-            Message10AlterGame.Serialize(message, clear, Code, isPublic);
+            Message10AlterGameS2C.Serialize(message, clear, Code, isPublic);
         }
 
         private void WriteKickPlayerMessage(IMessageWriter message, bool clear, int playerId, bool isBan)
         {
-            Message11KickPlayer.Serialize(message, clear, Code, playerId, isBan);
+            Message11KickPlayerS2C.Serialize(message, clear, Code, playerId, isBan);
         }
 
         private void WriteWaitForHostMessage(IMessageWriter message, bool clear, IClientPlayer player)
         {
-            Message12WaitForHost.Serialize(message, clear, Code, player.Client.Id);
+            Message12WaitForHostS2C.Serialize(message, clear, Code, player.Client.Id);
         }
     }
 }
\ No newline at end of file
index 4b7f014e15101ed50eedfb1c076dd8238e5673b8..14179d690b11397f78827c685b4835a8131a5325 100644 (file)
@@ -11,10 +11,10 @@ using Impostor.Api.Innersloth;
 using Impostor.Api.Innersloth.Data;
 using Impostor.Api.Net;
 using Impostor.Api.Net.Messages;
+using Impostor.Api.Net.Messages.S2C;
 using Impostor.Server.Hazel;
 using Impostor.Server.Net.Hazel;
 using Impostor.Server.Net.Manager;
-using Impostor.Server.Net.Messages;
 using Impostor.Server.Net.Redirector;
 using Serilog;
 using ILogger = Serilog.ILogger;
@@ -99,7 +99,7 @@ namespace Impostor.Server.Net.State
 
         private ValueTask BroadcastJoinMessage(IMessageWriter message, bool clear, ClientPlayer player)
         {
-            Message01JoinGame.SerializeJoin(message, clear, Code, player.Client.Id, HostId);
+            Message01JoinGameS2C.SerializeJoin(message, clear, Code, player.Client.Id, HostId);
 
             return SendToAllExceptAsync(message, player.Client.Id);
         }