]> git.deb.at Git - rhonda/impostor.git/commitdiff
Fix bug
authorAeonLucid <aeonlucid@outlook.com>
Fri, 23 Oct 2020 23:24:52 +0000 (01:24 +0200)
committerAeonLucid <aeonlucid@outlook.com>
Fri, 23 Oct 2020 23:24:52 +0000 (01:24 +0200)
src/Impostor.Server/Net/State/ClientPlayer.cs
src/Impostor.Server/Net/State/Game.Incoming.cs
src/Impostor.Server/Net/State/Game.State.cs
src/Impostor.Tools.ServerReplay/Mocks/MockHazelConnection.cs

index 7bb6164bf9f2435c3bf901866d09a774ebd7016a..86a6a212a6c62236953c42fa180236529f13abf0 100644 (file)
@@ -44,8 +44,7 @@ namespace Impostor.Server.Net.State
 
         public void DisableSpawnTimeout()
         {
-            _spawnTimeout.Dispose();
-            _spawnTimeout = null;
+            _spawnTimeout.Change(-1, -1);
         }
 
         /// <inheritdoc />
index 06b5272a9a3408000f5a78c817073d98df7392b5..308bed476dc9bf46c350bd09c29789a92a1aface 100644 (file)
@@ -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);
index f375e665a94d10b0e651b77d9b97c79ff9220256..bfa9893ae08ee0ea9df34365228a010c0fff239b 100644 (file)
@@ -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();
                 }
             });
 
index 941fdb1b749811da880598e994beb970864803b2..43f0257b6dce3281e847b561bcbeb95cad646702 100644 (file)
@@ -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