From 4e5edcee49b5b1dce68c5dff83d3b656a720fd84 Mon Sep 17 00:00:00 2001 From: AeonLucid Date: Mon, 19 Dec 2022 15:55:27 +0100 Subject: [PATCH] Add warning when not consuming all bytes of a logic component --- .../Inner/Objects/GameManager/InnerGameManager.cs | 14 +++++++++++++- .../GameManager/Logic/GameLogicComponent.cs | 1 - 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerGameManager.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerGameManager.cs index 8ed3a00..0d9b2a6 100644 --- a/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerGameManager.cs +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerGameManager.cs @@ -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; diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/GameLogicComponent.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/GameLogicComponent.cs index 5e2b4d5..c2e0d33 100644 --- a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/GameLogicComponent.cs +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/GameLogicComponent.cs @@ -17,6 +17,5 @@ internal abstract class GameLogicComponent public virtual void Deserialize(IMessageReader reader, bool initialState) { - throw new NotImplementedException(); } } -- 2.39.5