]> git.deb.at Git - rhonda/impostor.git/commitdiff
Add warning when not consuming all bytes of a logic component
authorAeonLucid <aeonlucid@gmail.com>
Mon, 19 Dec 2022 14:55:27 +0000 (15:55 +0100)
committerAeonLucid <aeonlucid@gmail.com>
Mon, 19 Dec 2022 14:55:27 +0000 (15:55 +0100)
src/Impostor.Server/Net/Inner/Objects/GameManager/InnerGameManager.cs
src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/GameLogicComponent.cs

index 8ed3a00410d7e64d492923e48088576d48e90576..0d9b2a62e5d61e5810a5d8ebbb08f5ac48c574b5 100644 (file)
@@ -78,7 +78,19 @@ internal abstract class InnerGameManager : InnerNetObject, IInnerGameManager
                 continue;
             }
 
-            this._logicComponents[tag].Deserialize(innerReader, initialState);
+            var component = this._logicComponents[tag];
+
+            component.Deserialize(innerReader, initialState);
+
+            if (innerReader.Position < innerReader.Length)
+            {
+                _logger.LogWarning(
+                    "Server did not consume all bytes from {0} component {1} ({2} < {3}).",
+                    nameof(InnerGameManager),
+                    component.GetType().FullName,
+                    reader.Position,
+                    reader.Length);
+            }
         }
 
         return ValueTask.CompletedTask;
index 5e2b4d55a8af84abadf030d762d8a285addcd707..c2e0d33a5c7b79b70695572dfddb2b818a25cdf0 100644 (file)
@@ -17,6 +17,5 @@ internal abstract class GameLogicComponent
 
     public virtual void Deserialize(IMessageReader reader, bool initialState)
     {
-        throw new NotImplementedException();
     }
 }