From: AeonLucid Date: Sun, 11 Oct 2020 00:30:36 +0000 (+0200) Subject: Fix public/private when joining a game X-Git-Tag: v1.2.2~116 X-Git-Url: https://git.deb.at/?a=commitdiff_plain;h=7de9b71b929fffe1114e6ef86e3a84b2cd521ea1;p=rhonda%2Fimpostor.git Fix public/private when joining a game --- diff --git a/src/Impostor.Server/Net/Messages/Message10AlterGame.cs b/src/Impostor.Server/Net/Messages/Message10AlterGame.cs index 772c4c4..f81e3a3 100644 --- a/src/Impostor.Server/Net/Messages/Message10AlterGame.cs +++ b/src/Impostor.Server/Net/Messages/Message10AlterGame.cs @@ -4,7 +4,7 @@ namespace Impostor.Server.Net.Messages { internal static class Message10AlterGame { - public static void Serialize(IMessageWriter writer, bool clear, int gameCode) + public static void Serialize(IMessageWriter writer, bool clear, int gameCode, bool isPublic) { if (clear) { @@ -13,13 +13,15 @@ namespace Impostor.Server.Net.Messages writer.StartMessage(MessageFlags.HostGame); writer.Write(gameCode); + writer.Write((byte)AlterGameTags.ChangePrivacy); + writer.Write(isPublic); writer.EndMessage(); } - public static void Deserialize(IMessageReader reader, out AlterGameTags gameTag, out bool value) + public static void Deserialize(IMessageReader reader, out AlterGameTags gameTag, out bool isPublic) { gameTag = (AlterGameTags) reader.ReadByte(); - value = reader.ReadBoolean(); + isPublic = reader.ReadBoolean(); } } } \ No newline at end of file diff --git a/src/Impostor.Server/Net/State/Game.Incoming.cs b/src/Impostor.Server/Net/State/Game.Incoming.cs index af6ba6c..26a80b3 100644 --- a/src/Impostor.Server/Net/State/Game.Incoming.cs +++ b/src/Impostor.Server/Net/State/Game.Incoming.cs @@ -152,7 +152,7 @@ namespace Impostor.Server.Net.State using (var message = CreateMessage(MessageType.Reliable)) { WriteJoinedGameMessage(message, false, sender); - WriteAlterGameMessage(message, false); + WriteAlterGameMessage(message, false, IsPublic); sender.Limbo = LimboStates.NotLimbo; await message.SendToAsync(sender); diff --git a/src/Impostor.Server/Net/State/Game.Outgoing.cs b/src/Impostor.Server/Net/State/Game.Outgoing.cs index c5538aa..446668c 100644 --- a/src/Impostor.Server/Net/State/Game.Outgoing.cs +++ b/src/Impostor.Server/Net/State/Game.Outgoing.cs @@ -21,9 +21,9 @@ namespace Impostor.Server.Net.State Message07JoinedGame.Serialize(message, clear, Code, player.Client.Id, HostId, playerIds); } - private void WriteAlterGameMessage(IMessageWriter message, bool clear) + private void WriteAlterGameMessage(IMessageWriter message, bool clear, bool isPublic) { - Message10AlterGame.Serialize(message, clear, Code); + Message10AlterGame.Serialize(message, clear, Code, isPublic); } private void WriteKickPlayerMessage(IMessageWriter message, bool clear, int playerId, bool isBan) diff --git a/src/Impostor.Server/Net/State/Game.State.cs b/src/Impostor.Server/Net/State/Game.State.cs index 66d856d..5e9b38b 100644 --- a/src/Impostor.Server/Net/State/Game.State.cs +++ b/src/Impostor.Server/Net/State/Game.State.cs @@ -94,7 +94,7 @@ namespace Impostor.Server.Net.State foreach (var (_, player) in _players.Where(x => x.Value.Limbo == LimboStates.WaitingForHost)) { WriteJoinedGameMessage(message, true, player); - WriteAlterGameMessage(message, false); + WriteAlterGameMessage(message, false, IsPublic); player.Limbo = LimboStates.NotLimbo; await message.SendToAsync(player.Client); diff --git a/submodules/Hazel-Networking b/submodules/Hazel-Networking index 7a7caf8..0c61aa4 160000 --- a/submodules/Hazel-Networking +++ b/submodules/Hazel-Networking @@ -1 +1 @@ -Subproject commit 7a7caf89e0c49ed59b3442987089a03df7de6c7a +Subproject commit 0c61aa426a2e47be9ac82c601c2f19b9345992a1