Skip to content

Commit

Permalink
Fix public/private when joining a game
Browse files Browse the repository at this point in the history
  • Loading branch information
AeonLucid committed Oct 11, 2020
1 parent 99b49cf commit 7de9b71
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 8 deletions.
8 changes: 5 additions & 3 deletions src/Impostor.Server/Net/Messages/Message10AlterGame.cs
Expand Up @@ -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)
{
Expand All @@ -13,13 +13,15 @@ public static void Serialize(IMessageWriter writer, bool clear, int gameCode)

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();
}
}
}
2 changes: 1 addition & 1 deletion src/Impostor.Server/Net/State/Game.Incoming.cs
Expand Up @@ -152,7 +152,7 @@ private async ValueTask HandleJoinGameNew(IClientPlayer sender, bool isNew)
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);
Expand Down
4 changes: 2 additions & 2 deletions src/Impostor.Server/Net/State/Game.Outgoing.cs
Expand Up @@ -21,9 +21,9 @@ private void WriteJoinedGameMessage(IMessageWriter message, bool clear, IClientP
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)
Expand Down
2 changes: 1 addition & 1 deletion src/Impostor.Server/Net/State/Game.State.cs
Expand Up @@ -94,7 +94,7 @@ private async ValueTask CheckLimboPlayers()
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);
Expand Down

0 comments on commit 7de9b71

Please sign in to comment.