From 503cd221d5ef14eb7d9252bb876e854aa5cf00dd Mon Sep 17 00:00:00 2001 From: AeonLucid Date: Mon, 19 Oct 2020 15:05:44 +0200 Subject: [PATCH] Adapt C2S / S2C for messages and move to Api namespace --- .../Innersloth/GameOptionsData.cs | 2 ++ .../Net/Messages/C2S/Message00HostGameC2S.cs | 23 ++++++++++++++++ .../Net/Messages/C2S/Message01JoinGameC2S.cs | 16 +++++++++++ .../Messages/C2S/Message04RemovePlayerC2S.cs | 16 +++++++++++ .../Net/Messages/C2S/Message10AlterGameC2S.cs | 18 +++++++++++++ .../Messages/C2S/Message11KickPlayerC2S.cs | 16 +++++++++++ .../Messages/C2S/Message16GetGameListC2S.cs | 18 +++++++++++++ .../Net/Messages/IMessageWriter.cs | 6 +++++ .../Net/Messages/MessageFlags.cs | 4 +-- src/Impostor.Api/Net/Messages/MessageType.cs | 2 +- .../Net/Messages/S2C/Message00HostGameS2C.cs} | 10 +++---- .../Net/Messages/S2C/Message01JoinGameS2C.cs} | 10 +++---- .../Messages/S2C/Message04RemovePlayerS2C.cs} | 10 +++---- .../Messages/S2C/Message07JoinedGameS2C.cs} | 11 +++++--- .../Messages/S2C/Message10AlterGameS2C.cs} | 10 +++---- .../Messages/S2C/Message11KickPlayerS2C.cs} | 11 +++----- .../Messages/S2C/Message12WaitForHostS2C.cs} | 11 +++++--- .../Net/Messages/S2C/Message13RedirectS2C.cs} | 10 ++++--- .../Messages/S2C/Message16GetGameListS2C.cs} | 27 +++++++++---------- .../GameData/InnerNetObject.cs | 1 - .../Objects/Components/InnerPlayerPhysics.cs | 1 - .../Objects/Components/InnerVoteBanSystem.cs | 1 - .../Objects/InnerGameData.PlayerInfo.cs | 1 - .../Objects/InnerGameData.TaskInfo.cs | 1 - .../GameData/Objects/InnerGameData.cs | 1 - .../GameData/Objects/InnerLobbyBehaviour.cs | 1 - .../GameData/Objects/InnerMeetingHud.cs | 1 - .../GameData/Objects/InnerPlayerControl.cs | 1 - .../GameData/Objects/InnerShipStatus.cs | 1 - src/Impostor.Server/Net/Client.cs | 21 ++++++++------- src/Impostor.Server/Net/ClientBase.cs | 1 - .../Net/Manager/ClientManager.cs | 6 ++--- .../Net/Redirector/ClientRedirector.cs | 13 ++++----- .../Net/State/Game.Outgoing.cs | 12 ++++----- src/Impostor.Server/Net/State/Game.cs | 4 +-- 35 files changed, 201 insertions(+), 97 deletions(-) create mode 100644 src/Impostor.Api/Net/Messages/C2S/Message00HostGameC2S.cs create mode 100644 src/Impostor.Api/Net/Messages/C2S/Message01JoinGameC2S.cs create mode 100644 src/Impostor.Api/Net/Messages/C2S/Message04RemovePlayerC2S.cs create mode 100644 src/Impostor.Api/Net/Messages/C2S/Message10AlterGameC2S.cs create mode 100644 src/Impostor.Api/Net/Messages/C2S/Message11KickPlayerC2S.cs create mode 100644 src/Impostor.Api/Net/Messages/C2S/Message16GetGameListC2S.cs rename src/{Impostor.Server => Impostor.Api}/Net/Messages/MessageFlags.cs (89%) rename src/{Impostor.Server/Net/Messages/Message00HostGame.cs => Impostor.Api/Net/Messages/S2C/Message00HostGameS2C.cs} (59%) rename src/{Impostor.Server/Net/Messages/Message01JoinGame.cs => Impostor.Api/Net/Messages/S2C/Message01JoinGameS2C.cs} (79%) rename src/{Impostor.Server/Net/Messages/Message04RemovePlayer.cs => Impostor.Api/Net/Messages/S2C/Message04RemovePlayerS2C.cs} (69%) rename src/{Impostor.Server/Net/Messages/Message07JoinedGame.cs => Impostor.Api/Net/Messages/S2C/Message07JoinedGameS2C.cs} (73%) rename src/{Impostor.Server/Net/Messages/Message10AlterGame.cs => Impostor.Api/Net/Messages/S2C/Message10AlterGameS2C.cs} (61%) rename src/{Impostor.Server/Net/Messages/Message11KickPlayer.cs => Impostor.Api/Net/Messages/S2C/Message11KickPlayerS2C.cs} (60%) rename src/{Impostor.Server/Net/Messages/Message12WaitForHost.cs => Impostor.Api/Net/Messages/S2C/Message12WaitForHostS2C.cs} (64%) rename src/{Impostor.Server/Net/Messages/Message13Redirect.cs => Impostor.Api/Net/Messages/S2C/Message13RedirectS2C.cs} (66%) rename src/{Impostor.Server/Net/Messages/Message16GetGameListV2.cs => Impostor.Api/Net/Messages/S2C/Message16GetGameListS2C.cs} (61%) diff --git a/src/Impostor.Api/Innersloth/GameOptionsData.cs b/src/Impostor.Api/Innersloth/GameOptionsData.cs index cac6371..cd26653 100644 --- a/src/Impostor.Api/Innersloth/GameOptionsData.cs +++ b/src/Impostor.Api/Innersloth/GameOptionsData.cs @@ -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 index 0000000..7245db2 --- /dev/null +++ b/src/Impostor.Api/Net/Messages/C2S/Message00HostGameC2S.cs @@ -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 index 0000000..7e6baf3 --- /dev/null +++ b/src/Impostor.Api/Net/Messages/C2S/Message01JoinGameC2S.cs @@ -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 index 0000000..99cdcfa --- /dev/null +++ b/src/Impostor.Api/Net/Messages/C2S/Message04RemovePlayerC2S.cs @@ -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 index 0000000..3a92e58 --- /dev/null +++ b/src/Impostor.Api/Net/Messages/C2S/Message10AlterGameC2S.cs @@ -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 index 0000000..7c5b8b9 --- /dev/null +++ b/src/Impostor.Api/Net/Messages/C2S/Message11KickPlayerC2S.cs @@ -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 index 0000000..219374d --- /dev/null +++ b/src/Impostor.Api/Net/Messages/C2S/Message16GetGameListC2S.cs @@ -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 diff --git a/src/Impostor.Api/Net/Messages/IMessageWriter.cs b/src/Impostor.Api/Net/Messages/IMessageWriter.cs index 5eb5798..4f6765b 100644 --- a/src/Impostor.Api/Net/Messages/IMessageWriter.cs +++ b/src/Impostor.Api/Net/Messages/IMessageWriter.cs @@ -101,6 +101,12 @@ namespace Impostor.Api.Net.Messages /// Value to write. void Write(GameCode value); + void WriteBytesAndSize(byte[] bytes); + + void WriteBytesAndSize(byte[] bytes, int length); + + void WriteBytesAndSize(byte[] bytes, int offset, int length); + /// /// Starts a new message. /// diff --git a/src/Impostor.Server/Net/Messages/MessageFlags.cs b/src/Impostor.Api/Net/Messages/MessageFlags.cs similarity index 89% rename from src/Impostor.Server/Net/Messages/MessageFlags.cs rename to src/Impostor.Api/Net/Messages/MessageFlags.cs index 595c02e..aea0c60 100644 --- a/src/Impostor.Server/Net/Messages/MessageFlags.cs +++ b/src/Impostor.Api/Net/Messages/MessageFlags.cs @@ -1,6 +1,6 @@ -namespace Impostor.Server.Net.Messages +namespace Impostor.Api.Net.Messages { - internal static class MessageFlags + public static class MessageFlags { public const byte HostGame = 0; public const byte JoinGame = 1; diff --git a/src/Impostor.Api/Net/Messages/MessageType.cs b/src/Impostor.Api/Net/Messages/MessageType.cs index 92fa153..1604358 100644 --- a/src/Impostor.Api/Net/Messages/MessageType.cs +++ b/src/Impostor.Api/Net/Messages/MessageType.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace Impostor.Api.Net.Messages { diff --git a/src/Impostor.Server/Net/Messages/Message00HostGame.cs b/src/Impostor.Api/Net/Messages/S2C/Message00HostGameS2C.cs similarity index 59% rename from src/Impostor.Server/Net/Messages/Message00HostGame.cs rename to src/Impostor.Api/Net/Messages/S2C/Message00HostGameS2C.cs index 835424b..8402d10 100644 --- a/src/Impostor.Server/Net/Messages/Message00HostGame.cs +++ b/src/Impostor.Api/Net/Messages/S2C/Message00HostGameS2C.cs @@ -1,9 +1,9 @@ -using Impostor.Api.Innersloth; -using Impostor.Api.Net.Messages; +using System; +using Impostor.Api.Innersloth; -namespace Impostor.Server.Net.Messages +namespace Impostor.Api.Net.Messages.S2C { - internal static class Message00HostGame + public static class Message00HostGameS2C { public static void Serialize(IMessageWriter writer, int gameCode) { @@ -14,7 +14,7 @@ namespace Impostor.Server.Net.Messages public static GameOptionsData Deserialize(IMessageReader reader) { - return GameOptionsData.Deserialize(reader.ReadBytesAndSize()); + throw new NotImplementedException(); } } } \ No newline at end of file diff --git a/src/Impostor.Server/Net/Messages/Message01JoinGame.cs b/src/Impostor.Api/Net/Messages/S2C/Message01JoinGameS2C.cs similarity index 79% rename from src/Impostor.Server/Net/Messages/Message01JoinGame.cs rename to src/Impostor.Api/Net/Messages/S2C/Message01JoinGameS2C.cs index fb254b5..159ed2f 100644 --- a/src/Impostor.Server/Net/Messages/Message01JoinGame.cs +++ b/src/Impostor.Api/Net/Messages/S2C/Message01JoinGameS2C.cs @@ -1,10 +1,9 @@ using System; using Impostor.Api.Innersloth.Data; -using Impostor.Api.Net.Messages; -namespace Impostor.Server.Net.Messages +namespace Impostor.Api.Net.Messages.S2C { - internal static class Message01JoinGame + public class Message01JoinGameS2C { public static void SerializeJoin(IMessageWriter writer, bool clear, int gameCode, int playerId, int hostId) { @@ -43,10 +42,9 @@ namespace Impostor.Server.Net.Messages writer.EndMessage(); } - public static void Deserialize(IMessageReader reader, out int gameCode, out byte unknown) + public static void Deserialize(IMessageReader reader) { - gameCode = reader.ReadInt32(); - unknown = reader.ReadByte(); + throw new System.NotImplementedException(); } } } \ No newline at end of file diff --git a/src/Impostor.Server/Net/Messages/Message04RemovePlayer.cs b/src/Impostor.Api/Net/Messages/S2C/Message04RemovePlayerS2C.cs similarity index 69% rename from src/Impostor.Server/Net/Messages/Message04RemovePlayer.cs rename to src/Impostor.Api/Net/Messages/S2C/Message04RemovePlayerS2C.cs index e8e669e..abbb844 100644 --- a/src/Impostor.Server/Net/Messages/Message04RemovePlayer.cs +++ b/src/Impostor.Api/Net/Messages/S2C/Message04RemovePlayerS2C.cs @@ -1,9 +1,8 @@ using Impostor.Api.Innersloth.Data; -using Impostor.Api.Net.Messages; -namespace Impostor.Server.Net.Messages +namespace Impostor.Api.Net.Messages.S2C { - internal static class Message04RemovePlayer + public class Message04RemovePlayerS2C { public static void Serialize(IMessageWriter writer, bool clear, int gameCode, int playerId, int hostId, DisconnectReason reason) { @@ -22,10 +21,9 @@ namespace Impostor.Server.Net.Messages writer.EndMessage(); } - public static void Deserialize(IMessageReader reader, out int playerId, out byte reason) + public static void Deserialize(IMessageReader reader) { - playerId = reader.ReadPackedInt32(); - reason = reader.ReadByte(); + throw new System.NotImplementedException(); } } } \ No newline at end of file diff --git a/src/Impostor.Server/Net/Messages/Message07JoinedGame.cs b/src/Impostor.Api/Net/Messages/S2C/Message07JoinedGameS2C.cs similarity index 73% rename from src/Impostor.Server/Net/Messages/Message07JoinedGame.cs rename to src/Impostor.Api/Net/Messages/S2C/Message07JoinedGameS2C.cs index d1957dc..da6eb40 100644 --- a/src/Impostor.Server/Net/Messages/Message07JoinedGame.cs +++ b/src/Impostor.Api/Net/Messages/S2C/Message07JoinedGameS2C.cs @@ -1,8 +1,6 @@ -using Impostor.Api.Net.Messages; - -namespace Impostor.Server.Net.Messages +namespace Impostor.Api.Net.Messages.S2C { - internal static class Message07JoinedGame + public static class Message07JoinedGameS2C { public static void Serialize(IMessageWriter writer, bool clear, int gameCode, int playerId, int hostId, int[] otherPlayerIds) { @@ -24,5 +22,10 @@ namespace Impostor.Server.Net.Messages writer.EndMessage(); } + + public static void Deserialize(IMessageReader reader) + { + throw new System.NotImplementedException(); + } } } \ No newline at end of file diff --git a/src/Impostor.Server/Net/Messages/Message10AlterGame.cs b/src/Impostor.Api/Net/Messages/S2C/Message10AlterGameS2C.cs similarity index 61% rename from src/Impostor.Server/Net/Messages/Message10AlterGame.cs rename to src/Impostor.Api/Net/Messages/S2C/Message10AlterGameS2C.cs index eedf1bd..469cd84 100644 --- a/src/Impostor.Server/Net/Messages/Message10AlterGame.cs +++ b/src/Impostor.Api/Net/Messages/S2C/Message10AlterGameS2C.cs @@ -1,9 +1,8 @@ using Impostor.Api.Innersloth.Data; -using Impostor.Api.Net.Messages; -namespace Impostor.Server.Net.Messages +namespace Impostor.Api.Net.Messages.S2C { - internal static class Message10AlterGame + public static class Message10AlterGameS2C { public static void Serialize(IMessageWriter writer, bool clear, int gameCode, bool isPublic) { @@ -19,10 +18,9 @@ namespace Impostor.Server.Net.Messages writer.EndMessage(); } - public static void Deserialize(IMessageReader reader, out AlterGameTags gameTag, out bool isPublic) + public static void Deserialize(IMessageReader reader) { - gameTag = (AlterGameTags) reader.ReadByte(); - isPublic = reader.ReadBoolean(); + throw new System.NotImplementedException(); } } } \ No newline at end of file diff --git a/src/Impostor.Server/Net/Messages/Message11KickPlayer.cs b/src/Impostor.Api/Net/Messages/S2C/Message11KickPlayerS2C.cs similarity index 60% rename from src/Impostor.Server/Net/Messages/Message11KickPlayer.cs rename to src/Impostor.Api/Net/Messages/S2C/Message11KickPlayerS2C.cs index 4d36f20..1e2b6ef 100644 --- a/src/Impostor.Server/Net/Messages/Message11KickPlayer.cs +++ b/src/Impostor.Api/Net/Messages/S2C/Message11KickPlayerS2C.cs @@ -1,8 +1,6 @@ -using Impostor.Api.Net.Messages; - -namespace Impostor.Server.Net.Messages +namespace Impostor.Api.Net.Messages.S2C { - internal static class Message11KickPlayer + public class Message11KickPlayerS2C { public static void Serialize(IMessageWriter writer, bool clear, int gameCode, int playerId, bool isBan) { @@ -18,10 +16,9 @@ namespace Impostor.Server.Net.Messages writer.EndMessage(); } - public static void Deserialize(IMessageReader reader, out int playerId, out bool isBan) + public static void Deserialize(IMessageReader reader) { - playerId = reader.ReadPackedInt32(); - isBan = reader.ReadBoolean(); + throw new System.NotImplementedException(); } } } \ No newline at end of file diff --git a/src/Impostor.Server/Net/Messages/Message12WaitForHost.cs b/src/Impostor.Api/Net/Messages/S2C/Message12WaitForHostS2C.cs similarity index 64% rename from src/Impostor.Server/Net/Messages/Message12WaitForHost.cs rename to src/Impostor.Api/Net/Messages/S2C/Message12WaitForHostS2C.cs index 67b75b9..5964b1c 100644 --- a/src/Impostor.Server/Net/Messages/Message12WaitForHost.cs +++ b/src/Impostor.Api/Net/Messages/S2C/Message12WaitForHostS2C.cs @@ -1,8 +1,6 @@ -using Impostor.Api.Net.Messages; - -namespace Impostor.Server.Net.Messages +namespace Impostor.Api.Net.Messages.S2C { - internal static class Message12WaitForHost + public class Message12WaitForHostS2C { public static void Serialize(IMessageWriter writer, bool clear, int gameCode, int playerId) { @@ -16,5 +14,10 @@ namespace Impostor.Server.Net.Messages 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.Server/Net/Messages/Message13Redirect.cs b/src/Impostor.Api/Net/Messages/S2C/Message13RedirectS2C.cs similarity index 66% rename from src/Impostor.Server/Net/Messages/Message13Redirect.cs rename to src/Impostor.Api/Net/Messages/S2C/Message13RedirectS2C.cs index 3b8a092..4b93b0e 100644 --- a/src/Impostor.Server/Net/Messages/Message13Redirect.cs +++ b/src/Impostor.Api/Net/Messages/S2C/Message13RedirectS2C.cs @@ -1,9 +1,8 @@ using System.Net; -using Impostor.Api.Net.Messages; -namespace Impostor.Server.Net.Messages +namespace Impostor.Api.Net.Messages.S2C { - internal static class Message13Redirect + public class Message13RedirectS2C { public static void Serialize(IMessageWriter writer, bool clear, IPEndPoint ipEndPoint) { @@ -17,5 +16,10 @@ namespace Impostor.Server.Net.Messages 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.Server/Net/Messages/Message16GetGameListV2.cs b/src/Impostor.Api/Net/Messages/S2C/Message16GetGameListS2C.cs similarity index 61% rename from src/Impostor.Server/Net/Messages/Message16GetGameListV2.cs rename to src/Impostor.Api/Net/Messages/S2C/Message16GetGameListS2C.cs index da8f630..93386d7 100644 --- a/src/Impostor.Server/Net/Messages/Message16GetGameListV2.cs +++ b/src/Impostor.Api/Net/Messages/S2C/Message16GetGameListS2C.cs @@ -1,18 +1,10 @@ using System.Collections.Generic; using Impostor.Api.Games; -using Impostor.Api.Innersloth; -using Impostor.Api.Net.Messages; -namespace Impostor.Server.Net.Messages +namespace Impostor.Api.Net.Messages.S2C { - internal static class Message16GetGameListV2 + public class Message16GetGameListS2C { - 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 games) { writer.StartMessage(MessageFlags.GetGameListV2); @@ -31,19 +23,24 @@ namespace Impostor.Server.Net.Messages { writer.StartMessage(0); writer.Write(game.PublicIp.Address); - writer.Write((ushort) game.PublicIp.Port); + writer.Write((ushort)game.PublicIp.Port); writer.Write(game.Code); writer.Write(game.Host.Client.Name); - writer.Write((byte) game.PlayerCount); + 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.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 diff --git a/src/Impostor.Server/GameData/InnerNetObject.cs b/src/Impostor.Server/GameData/InnerNetObject.cs index 78ce960..d1a09e0 100644 --- a/src/Impostor.Server/GameData/InnerNetObject.cs +++ b/src/Impostor.Server/GameData/InnerNetObject.cs @@ -1,5 +1,4 @@ using Impostor.Api.Net.Messages; -using Impostor.Server.Net.Messages; namespace Impostor.Server.GameData { diff --git a/src/Impostor.Server/GameData/Objects/Components/InnerPlayerPhysics.cs b/src/Impostor.Server/GameData/Objects/Components/InnerPlayerPhysics.cs index df7f7aa..698f97e 100644 --- a/src/Impostor.Server/GameData/Objects/Components/InnerPlayerPhysics.cs +++ b/src/Impostor.Server/GameData/Objects/Components/InnerPlayerPhysics.cs @@ -1,5 +1,4 @@ using Impostor.Api.Net.Messages; -using Impostor.Server.Net.Messages; namespace Impostor.Server.GameData.Objects.Components { diff --git a/src/Impostor.Server/GameData/Objects/Components/InnerVoteBanSystem.cs b/src/Impostor.Server/GameData/Objects/Components/InnerVoteBanSystem.cs index 9c3d5de..e4a156b 100644 --- a/src/Impostor.Server/GameData/Objects/Components/InnerVoteBanSystem.cs +++ b/src/Impostor.Server/GameData/Objects/Components/InnerVoteBanSystem.cs @@ -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 { diff --git a/src/Impostor.Server/GameData/Objects/InnerGameData.PlayerInfo.cs b/src/Impostor.Server/GameData/Objects/InnerGameData.PlayerInfo.cs index 2abf5c8..dfcdfab 100644 --- a/src/Impostor.Server/GameData/Objects/InnerGameData.PlayerInfo.cs +++ b/src/Impostor.Server/GameData/Objects/InnerGameData.PlayerInfo.cs @@ -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 { diff --git a/src/Impostor.Server/GameData/Objects/InnerGameData.TaskInfo.cs b/src/Impostor.Server/GameData/Objects/InnerGameData.TaskInfo.cs index e317bd2..516a7a9 100644 --- a/src/Impostor.Server/GameData/Objects/InnerGameData.TaskInfo.cs +++ b/src/Impostor.Server/GameData/Objects/InnerGameData.TaskInfo.cs @@ -1,5 +1,4 @@ using Impostor.Api.Net.Messages; -using Impostor.Server.Net.Messages; namespace Impostor.Server.GameData.Objects { diff --git a/src/Impostor.Server/GameData/Objects/InnerGameData.cs b/src/Impostor.Server/GameData/Objects/InnerGameData.cs index 5e23d17..3b27000 100644 --- a/src/Impostor.Server/GameData/Objects/InnerGameData.cs +++ b/src/Impostor.Server/GameData/Objects/InnerGameData.cs @@ -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 { diff --git a/src/Impostor.Server/GameData/Objects/InnerLobbyBehaviour.cs b/src/Impostor.Server/GameData/Objects/InnerLobbyBehaviour.cs index bdfcdf4..c9f96c0 100644 --- a/src/Impostor.Server/GameData/Objects/InnerLobbyBehaviour.cs +++ b/src/Impostor.Server/GameData/Objects/InnerLobbyBehaviour.cs @@ -1,6 +1,5 @@ using Impostor.Api.Games; using Impostor.Api.Net.Messages; -using Impostor.Server.Net.Messages; namespace Impostor.Server.GameData.Objects { diff --git a/src/Impostor.Server/GameData/Objects/InnerMeetingHud.cs b/src/Impostor.Server/GameData/Objects/InnerMeetingHud.cs index 6fc30bc..7088526 100644 --- a/src/Impostor.Server/GameData/Objects/InnerMeetingHud.cs +++ b/src/Impostor.Server/GameData/Objects/InnerMeetingHud.cs @@ -1,6 +1,5 @@ using Impostor.Api.Games; using Impostor.Api.Net.Messages; -using Impostor.Server.Net.Messages; namespace Impostor.Server.GameData.Objects { diff --git a/src/Impostor.Server/GameData/Objects/InnerPlayerControl.cs b/src/Impostor.Server/GameData/Objects/InnerPlayerControl.cs index 821f495..da7eec0 100644 --- a/src/Impostor.Server/GameData/Objects/InnerPlayerControl.cs +++ b/src/Impostor.Server/GameData/Objects/InnerPlayerControl.cs @@ -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 diff --git a/src/Impostor.Server/GameData/Objects/InnerShipStatus.cs b/src/Impostor.Server/GameData/Objects/InnerShipStatus.cs index 17f9931..00d38c4 100644 --- a/src/Impostor.Server/GameData/Objects/InnerShipStatus.cs +++ b/src/Impostor.Server/GameData/Objects/InnerShipStatus.cs @@ -1,6 +1,5 @@ using Impostor.Api.Games; using Impostor.Api.Net.Messages; -using Impostor.Server.Net.Messages; namespace Impostor.Server.GameData.Objects { diff --git a/src/Impostor.Server/Net/Client.cs b/src/Impostor.Server/Net/Client.cs index 42a17ce..d369a81 100644 --- a/src/Impostor.Server/Net/Client.cs +++ b/src/Impostor.Server/Net/Client.cs @@ -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); } } diff --git a/src/Impostor.Server/Net/ClientBase.cs b/src/Impostor.Server/Net/ClientBase.cs index 3dda4ca..9ca4d36 100644 --- a/src/Impostor.Server/Net/ClientBase.cs +++ b/src/Impostor.Server/Net/ClientBase.cs @@ -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 diff --git a/src/Impostor.Server/Net/Manager/ClientManager.cs b/src/Impostor.Server/Net/Manager/ClientManager.cs index 4a6a996..c5cb5d0 100644 --- a/src/Impostor.Server/Net/Manager/ClientManager.cs +++ b/src/Impostor.Server/Net/Manager/ClientManager.cs @@ -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/Redirector/ClientRedirector.cs b/src/Impostor.Server/Net/Redirector/ClientRedirector.cs index a9ffa68..0d001f3 100644 --- a/src/Impostor.Server/Net/Redirector/ClientRedirector.cs +++ b/src/Impostor.Server/Net/Redirector/ClientRedirector.cs @@ -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; } diff --git a/src/Impostor.Server/Net/State/Game.Outgoing.cs b/src/Impostor.Server/Net/State/Game.Outgoing.cs index bc832e4..ddbf2c7 100644 --- a/src/Impostor.Server/Net/State/Game.Outgoing.cs +++ b/src/Impostor.Server/Net/State/Game.Outgoing.cs @@ -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 diff --git a/src/Impostor.Server/Net/State/Game.cs b/src/Impostor.Server/Net/State/Game.cs index 4b7f014..14179d6 100644 --- a/src/Impostor.Server/Net/State/Game.cs +++ b/src/Impostor.Server/Net/State/Game.cs @@ -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); } -- 2.39.5