From 6fc0fbb0740cf20a8ff14b5f3bc74e53fa39fe1d Mon Sep 17 00:00:00 2001 From: AeonLucid Date: Sat, 24 Oct 2020 04:03:21 +0200 Subject: [PATCH] Fix recorder order after game creation --- .../Recorder/ClientRecorder.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/Impostor.Server/Recorder/ClientRecorder.cs b/src/Impostor.Server/Recorder/ClientRecorder.cs index b41a687..0917eb3 100644 --- a/src/Impostor.Server/Recorder/ClientRecorder.cs +++ b/src/Impostor.Server/Recorder/ClientRecorder.cs @@ -12,6 +12,7 @@ namespace Impostor.Server.Recorder private readonly PacketRecorder _recorder; private bool _isFirst; private bool _createdGame; + private bool _recordAfter; public ClientRecorder(ILogger logger, ClientManager clientManager, GameManager gameManager, string name, HazelConnection connection, PacketRecorder recorder) : base(logger, clientManager, gameManager, name, connection) @@ -19,6 +20,7 @@ namespace Impostor.Server.Recorder _recorder = recorder; _isFirst = true; _createdGame = false; + _recordAfter = true; } public override async ValueTask HandleMessageAsync(IMessageReader reader, MessageType messageType) @@ -36,6 +38,12 @@ namespace Impostor.Server.Recorder // Check if we were in-game before handling the message. var inGame = Player?.Game != null; + if (!_recordAfter) + { + // Trigger message event. + await _recorder.WriteMessageAsync(this, messageCopy, messageType); + } + // Handle the message. await base.HandleMessageAsync(reader, messageType); @@ -48,15 +56,20 @@ namespace Impostor.Server.Recorder { _createdGame = false; - // We created a game and are now in-game, stored that event. + // We created a game and are now in-game, store that event. if (!inGame && Player?.Game != null) { await _recorder.WriteGameCreatedAsync(this, Player.Game.Code); } + + _recordAfter = false; } - // Trigger message event. - await _recorder.WriteMessageAsync(this, messageCopy, messageType); + if (_recordAfter) + { + // Trigger message event. + await _recorder.WriteMessageAsync(this, messageCopy, messageType); + } } public override async ValueTask HandleDisconnectAsync(string reason) -- 2.39.5