From fa024b70c564f64563eb13157d39fec67f4f2394 Mon Sep 17 00:00:00 2001 From: miniduikboot Date: Sun, 3 Dec 2023 22:49:13 +0100 Subject: [PATCH] Process comments --- .../Events/Game/IGameOptionsChangedEvent.cs | 2 +- .../Handlers/GameEventListener.cs | 2 +- .../Objects/GameManager/Logic/GameLogicComponent.cs | 4 +++- .../GameManager/Logic/HideAndSeek/LogicGameFlowHnS.cs | 6 ++++-- .../Inner/Objects/GameManager/Logic/LogicOptions.cs | 6 ++++-- src/Impostor.Server/Net/State/Game.Api.cs | 11 ++++++----- 6 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/Impostor.Api/Events/Game/IGameOptionsChangedEvent.cs b/src/Impostor.Api/Events/Game/IGameOptionsChangedEvent.cs index 007ace9..85392c4 100644 --- a/src/Impostor.Api/Events/Game/IGameOptionsChangedEvent.cs +++ b/src/Impostor.Api/Events/Game/IGameOptionsChangedEvent.cs @@ -24,7 +24,7 @@ namespace Impostor.Api.Events /// so changes made to Game.Options are not synced until /// SyncSettingsAsync is called afterwards. /// - Rpc, + Host, /// /// The options were changed by a plugin using the diff --git a/src/Impostor.Plugins.Example/Handlers/GameEventListener.cs b/src/Impostor.Plugins.Example/Handlers/GameEventListener.cs index 90dd0ee..2ae9904 100644 --- a/src/Impostor.Plugins.Example/Handlers/GameEventListener.cs +++ b/src/Impostor.Plugins.Example/Handlers/GameEventListener.cs @@ -80,7 +80,7 @@ namespace Impostor.Plugins.Example.Handlers } [EventListener] - public async void OnGameOptionsChanged(IGameOptionsChangedEvent e) + public void OnGameOptionsChanged(IGameOptionsChangedEvent e) { _logger.LogInformation( "Game {code} > new options because of {source}", 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 3952c35..cb1f5f4 100644 --- a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/GameLogicComponent.cs +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/GameLogicComponent.cs @@ -1,4 +1,5 @@ using System; +using System.Threading.Tasks; using Impostor.Api.Net.Inner; namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic; @@ -15,7 +16,8 @@ internal abstract class GameLogicComponent throw new NotImplementedException(); } - public virtual void Deserialize(IMessageReader reader, bool initialState) + public virtual ValueTask Deserialize(IMessageReader reader, bool initialState) { + return default; } } diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicGameFlowHnS.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicGameFlowHnS.cs index efc93ae..31ca336 100644 --- a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicGameFlowHnS.cs +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicGameFlowHnS.cs @@ -1,4 +1,5 @@ -using Impostor.Api.Net.Inner.Objects.GameManager.Logic.HideAndSeek; +using System.Threading.Tasks; +using Impostor.Api.Net.Inner.Objects.GameManager.Logic.HideAndSeek; namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.HideAndSeek; @@ -8,11 +9,12 @@ internal class LogicGameFlowHnS : LogicGameFlow, ILogicGameFlowHnS public float CurrentHideTime { get; private set; } - public override void Deserialize(IMessageReader reader, bool initialState) + public override ValueTask Deserialize(IMessageReader reader, bool initialState) { var num = reader.ReadSingle(); CurrentFinalHideTime = reader.ReadSingle(); CurrentHideTime = num; + return default; } } 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 d97473b..626b1d9 100644 --- a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicOptions.cs +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicOptions.cs @@ -1,3 +1,4 @@ +using System.Threading.Tasks; using Impostor.Api.Events.Managers; using Impostor.Api.Innersloth.GameOptions; using Impostor.Server.Events; @@ -22,11 +23,12 @@ internal abstract class LogicOptions : GameLogicComponent return true; } - public override async void Deserialize(IMessageReader reader, bool initialState) + public override async ValueTask Deserialize(IMessageReader reader, bool initialState) { GameOptionsFactory.DeserializeInto(reader, _game.Options); await _eventManager.CallAsync(new GameOptionsChangedEvent( _game, - Api.Events.IGameOptionsChangedEvent.ChangeReason.Rpc)); + Api.Events.IGameOptionsChangedEvent.ChangeReason.Host) + ); } } diff --git a/src/Impostor.Server/Net/State/Game.Api.cs b/src/Impostor.Server/Net/State/Game.Api.cs index 9a95d49..bc5da05 100644 --- a/src/Impostor.Server/Net/State/Game.Api.cs +++ b/src/Impostor.Server/Net/State/Game.Api.cs @@ -14,7 +14,7 @@ namespace Impostor.Server.Net.State { internal partial class Game : IGame { - private bool alreadyCallingOptionsChangedEvent = false; + private bool _alreadyCallingOptionsChangedEvent = false; IClientPlayer? IGame.Host => Host; @@ -65,7 +65,7 @@ namespace Impostor.Server.Net.State await SendToAllAsync(writer); // Prevent bad plugins from causing a server crash by recursing into this function - if (alreadyCallingOptionsChangedEvent) + if (_alreadyCallingOptionsChangedEvent) { _logger.LogError("Plugin called SyncSettingsAsync while processing a GameOptionsChangedEvent, aborting to prevent recursion"); } @@ -73,14 +73,15 @@ namespace Impostor.Server.Net.State { try { - alreadyCallingOptionsChangedEvent = true; + _alreadyCallingOptionsChangedEvent = true; await _eventManager.CallAsync(new GameOptionsChangedEvent( this, - Api.Events.IGameOptionsChangedEvent.ChangeReason.Api)); + Api.Events.IGameOptionsChangedEvent.ChangeReason.Api) + ); } finally { - alreadyCallingOptionsChangedEvent = false; + _alreadyCallingOptionsChangedEvent = false; } } } -- 2.39.5