From: js6pak Date: Sun, 3 Dec 2023 21:59:05 +0000 (+0100) Subject: Make GameLogicComponent methods async X-Git-Tag: v1.9.0~6^2~1 X-Git-Url: https://git.deb.at/?a=commitdiff_plain;h=f281639763c09772933e9d9f287d1bca439365a4;p=rhonda%2Fimpostor.git Make GameLogicComponent methods async --- diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerGameManager.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerGameManager.cs index 6281c16..ee727f3 100644 --- a/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerGameManager.cs +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerGameManager.cs @@ -51,14 +51,14 @@ internal abstract class InnerGameManager : InnerNetObject, IInnerGameManager return _logicComponents.IndexOf(logic); } - public override ValueTask HandleRpcAsync(ClientPlayer sender, ClientPlayer? target, RpcCalls call, IMessageReader reader) + public override async ValueTask HandleRpcAsync(ClientPlayer sender, ClientPlayer? target, RpcCalls call, IMessageReader reader) { foreach (var logicComponent in _logicComponents) { - logicComponent.HandleRpc(call, reader); + await logicComponent.HandleRpcAsync(call, reader); } - return ValueTask.FromResult(true); + return true; } public override ValueTask SerializeAsync(IMessageWriter writer, bool initialState) 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 3847b53..6993ddb 100644 --- a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/GameLogicComponent.cs +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/GameLogicComponent.cs @@ -6,12 +6,12 @@ namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic; internal abstract class GameLogicComponent { - public virtual void HandleRpc(RpcCalls callId, IMessageReader reader) + public virtual ValueTask HandleRpcAsync(RpcCalls callId, IMessageReader reader) { throw new NotImplementedException($"Unhandled RpcCall {callId}"); } - public virtual bool Serialize(IMessageWriter writer, bool initialState) + public virtual ValueTask SerializeAsync(IMessageWriter writer, bool initialState) { throw new NotImplementedException(); } diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicOptions.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicOptions.cs index f444582..2622e52 100644 --- a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicOptions.cs +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicOptions.cs @@ -17,10 +17,10 @@ internal abstract class LogicOptions : GameLogicComponent _eventManager = eventManager; } - public override bool Serialize(IMessageWriter writer, bool initialState) + public override ValueTask SerializeAsync(IMessageWriter writer, bool initialState) { GameOptionsFactory.Serialize(writer, _game.Options); - return true; + return ValueTask.FromResult(true); } public override async ValueTask DeserializeAsync(IMessageReader reader, bool initialState) diff --git a/src/Impostor.Server/Net/State/Game.Api.cs b/src/Impostor.Server/Net/State/Game.Api.cs index e3fc4cb..8a61f7c 100644 --- a/src/Impostor.Server/Net/State/Game.Api.cs +++ b/src/Impostor.Server/Net/State/Game.Api.cs @@ -56,7 +56,7 @@ namespace Impostor.Server.Net.State writer.WritePacked(GameNet.GameManager.NetId); writer.StartMessage((byte)gameOptionsTag); - GameNet.GameManager.LogicOptions.Serialize(writer, false); + await GameNet.GameManager.LogicOptions.SerializeAsync(writer, false); writer.EndMessage(); writer.EndMessage();