From: AeonLucid Date: Fri, 23 Oct 2020 23:24:52 +0000 (+0200) Subject: Fix bug X-Git-Tag: v1.2.2~96^2~30 X-Git-Url: https://git.deb.at/?a=commitdiff_plain;h=8aaa4f8b3b27a23b9e69be05453a7a85fb01ad45;p=rhonda%2Fimpostor.git Fix bug --- 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