From 8aaa4f8b3b27a23b9e69be05453a7a85fb01ad45 Mon Sep 17 00:00:00 2001 From: AeonLucid Date: Sat, 24 Oct 2020 01:24:52 +0200 Subject: [PATCH] Fix bug --- src/Impostor.Server/Net/State/ClientPlayer.cs | 3 +-- src/Impostor.Server/Net/State/Game.Incoming.cs | 2 ++ src/Impostor.Server/Net/State/Game.State.cs | 6 ++---- .../Mocks/MockHazelConnection.cs | 5 +++++ 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Impostor.Server/Net/State/ClientPlayer.cs b/src/Impostor.Server/Net/State/ClientPlayer.cs index 7bb6164..86a6a21 100644 --- a/src/Impostor.Server/Net/State/ClientPlayer.cs +++ b/src/Impostor.Server/Net/State/ClientPlayer.cs @@ -44,8 +44,7 @@ namespace Impostor.Server.Net.State public void DisableSpawnTimeout() { - _spawnTimeout.Dispose(); - _spawnTimeout = null; + _spawnTimeout.Change(-1, -1); } /// diff --git a/src/Impostor.Server/Net/State/Game.Incoming.cs b/src/Impostor.Server/Net/State/Game.Incoming.cs index 06b5272..308bed4 100644 --- a/src/Impostor.Server/Net/State/Game.Incoming.cs +++ b/src/Impostor.Server/Net/State/Game.Incoming.cs @@ -182,6 +182,8 @@ namespace Impostor.Server.Net.State await PlayerAdd(sender); } + sender.InitializeSpawnTimeout(); + using (var message = MessageWriter.Get(MessageType.Reliable)) { WriteJoinedGameMessage(message, false, sender); diff --git a/src/Impostor.Server/Net/State/Game.State.cs b/src/Impostor.Server/Net/State/Game.State.cs index f375e66..bfa9893 100644 --- a/src/Impostor.Server/Net/State/Game.State.cs +++ b/src/Impostor.Server/Net/State/Game.State.cs @@ -28,8 +28,6 @@ namespace Impostor.Server.Net.State await InitGameDataAsync(player); } - player.InitializeSpawnTimeout(); - await _eventManager.CallAsync(new PlayerJoinedGameEvent(this, player)); } @@ -81,10 +79,10 @@ namespace Impostor.Server.Net.State { await Task.Delay(Constants.ConnectionTimeout); - if (player.Client.Connection.IsConnected) + if (player.Client.Connection.IsConnected && player.Client.Connection is HazelConnection hazel) { _logger.LogInformation("{0} - Player {1} ({2}) kept connection open after leaving, disposing.", Code, player.Client.Name, playerId); - ((HazelConnection) player.Client.Connection).DisposeInnerConnection(); + hazel.DisposeInnerConnection(); } }); diff --git a/src/Impostor.Tools.ServerReplay/Mocks/MockHazelConnection.cs b/src/Impostor.Tools.ServerReplay/Mocks/MockHazelConnection.cs index 941fdb1..43f0257 100644 --- a/src/Impostor.Tools.ServerReplay/Mocks/MockHazelConnection.cs +++ b/src/Impostor.Tools.ServerReplay/Mocks/MockHazelConnection.cs @@ -22,5 +22,10 @@ namespace Impostor.Tools.ServerReplay.Mocks { return ValueTask.CompletedTask; } + + public ValueTask DisconnectAsync(string reason) + { + return ValueTask.CompletedTask; + } } } \ No newline at end of file -- 2.39.5