From: miniduikboot Date: Tue, 28 Nov 2023 22:09:39 +0000 (+0100) Subject: Process comments X-Git-Tag: v1.9.0~6^2~5 X-Git-Url: https://git.deb.at/?a=commitdiff_plain;h=e303065688993f271d5c375c52237f5efa46b8a2;p=rhonda%2Fimpostor.git Process comments --- diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerHideAndSeekManager.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerHideAndSeekManager.cs index b8468fe..09c9a5a 100644 --- a/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerHideAndSeekManager.cs +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerHideAndSeekManager.cs @@ -1,4 +1,5 @@ -using Impostor.Api.Net.Custom; +using Impostor.Api.Events.Managers; +using Impostor.Api.Net.Custom; using Impostor.Api.Net.Inner.Objects.GameManager; using Impostor.Server.Net.Inner.Objects.GameManager.Logic.HideAndSeek; using Impostor.Server.Net.State; @@ -8,7 +9,7 @@ namespace Impostor.Server.Net.Inner.Objects.GameManager; internal partial class InnerHideAndSeekManager : InnerGameManager, IInnerHideAndSeekManager { - public InnerHideAndSeekManager(ICustomMessageManager customMessageManager, Game game, ILogger logger) : base(customMessageManager, game, logger) + public InnerHideAndSeekManager(ICustomMessageManager customMessageManager, Game game, ILogger logger, IEventManager eventManager) : base(customMessageManager, game, logger) { LogicMusic = AddGameLogic(new LogicHnSMusic()); LogicMinigame = AddGameLogic(new LogicMinigameHnS()); @@ -16,7 +17,7 @@ internal partial class InnerHideAndSeekManager : InnerGameManager, IInnerHideAnd LogicFlow = AddGameLogic(LogicFlowHnS); LogicUsables = AddGameLogic(new LogicUsablesHnS()); LogicRoleSelection = AddGameLogic(new LogicRoleSelectionHnS()); - LogicOptionsHnS = new LogicOptionsHnS(game); + LogicOptionsHnS = new LogicOptionsHnS(game, eventManager); LogicOptions = AddGameLogic(this.LogicOptionsHnS); LogicDangerLevel = AddGameLogic(new LogicHnSDangerLevel()); LogicPing = AddGameLogic(new LogicPingsHnS()); diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerNormalGameManager.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerNormalGameManager.cs index a3e715a..e00bac2 100644 --- a/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerNormalGameManager.cs +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerNormalGameManager.cs @@ -1,4 +1,5 @@ -using Impostor.Api.Net.Custom; +using Impostor.Api.Events.Managers; +using Impostor.Api.Net.Custom; using Impostor.Api.Net.Inner.Objects.GameManager; using Impostor.Server.Net.Inner.Objects.GameManager.Logic; using Impostor.Server.Net.Inner.Objects.GameManager.Logic.Normal; @@ -9,12 +10,12 @@ namespace Impostor.Server.Net.Inner.Objects.GameManager; internal class InnerNormalGameManager : InnerGameManager, IInnerNormalGameManager { - public InnerNormalGameManager(ICustomMessageManager customMessageManager, Game game, ILogger logger) : base(customMessageManager, game, logger) + public InnerNormalGameManager(ICustomMessageManager customMessageManager, Game game, ILogger logger, IEventManager eventManager) : base(customMessageManager, game, logger) { LogicFlow = AddGameLogic(new LogicGameFlowNormal()); LogicMinigame = AddGameLogic(new LogicMinigame()); LogicRoleSelection = AddGameLogic(new LogicRoleSelectionNormal()); LogicUsables = AddGameLogic(new LogicUsablesBasic()); - LogicOptions = AddGameLogic(new LogicOptionsNormal(game)); + LogicOptions = AddGameLogic(new LogicOptionsNormal(game, eventManager)); } } diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicOptionsHnS.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicOptionsHnS.cs index 9a4e89a..2d588d9 100644 --- a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicOptionsHnS.cs +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicOptionsHnS.cs @@ -1,10 +1,11 @@ -using Impostor.Server.Net.State; +using Impostor.Api.Events.Managers; +using Impostor.Server.Net.State; namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.HideAndSeek; internal class LogicOptionsHnS : LogicOptions { - public LogicOptionsHnS(Game game) : base(game) + public LogicOptionsHnS(Game game, IEventManager eventManager) : base(game, eventManager) { } } 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 fcda22d..d97473b 100644 --- a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicOptions.cs +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicOptions.cs @@ -1,4 +1,6 @@ -using Impostor.Api.Innersloth.GameOptions; +using Impostor.Api.Events.Managers; +using Impostor.Api.Innersloth.GameOptions; +using Impostor.Server.Events; using Impostor.Server.Net.State; namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic; @@ -6,10 +8,12 @@ namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic; internal abstract class LogicOptions : GameLogicComponent { private readonly Game _game; + private readonly IEventManager _eventManager; - protected LogicOptions(Game game) + protected LogicOptions(Game game, IEventManager eventManager) { _game = game; + _eventManager = eventManager; } public override bool Serialize(IMessageWriter writer, bool initialState) @@ -18,8 +22,11 @@ internal abstract class LogicOptions : GameLogicComponent return true; } - public override void Deserialize(IMessageReader reader, bool initialState) + public override async void Deserialize(IMessageReader reader, bool initialState) { GameOptionsFactory.DeserializeInto(reader, _game.Options); + await _eventManager.CallAsync(new GameOptionsChangedEvent( + _game, + Api.Events.IGameOptionsChangedEvent.ChangeReason.Rpc)); } } diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicOptionsNormal.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicOptionsNormal.cs index 944fc56..88c0f22 100644 --- a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicOptionsNormal.cs +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicOptionsNormal.cs @@ -1,10 +1,11 @@ -using Impostor.Server.Net.State; +using Impostor.Api.Events.Managers; +using Impostor.Server.Net.State; namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.Normal; internal class LogicOptionsNormal : LogicOptions { - public LogicOptionsNormal(Game game) : base(game) + public LogicOptionsNormal(Game game, IEventManager eventManager) : base(game, eventManager) { } } diff --git a/src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs b/src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs index 9b3539d..e562fa8 100644 --- a/src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs +++ b/src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs @@ -143,9 +143,6 @@ namespace Impostor.Server.Net.Inner.Objects } Rpc02SyncSettings.DeserializeInto(reader, Game.Options); - await _eventManager.CallAsync(new GameOptionsChangedEvent( - Game, - Api.Events.IGameOptionsChangedEvent.ChangeReason.Rpc)); break; } diff --git a/src/Impostor.Server/Net/State/Game.Api.cs b/src/Impostor.Server/Net/State/Game.Api.cs index 4ed4279..9a95d49 100644 --- a/src/Impostor.Server/Net/State/Game.Api.cs +++ b/src/Impostor.Server/Net/State/Game.Api.cs @@ -71,11 +71,17 @@ namespace Impostor.Server.Net.State } else { - alreadyCallingOptionsChangedEvent = true; - await _eventManager.CallAsync(new GameOptionsChangedEvent( - this, - Api.Events.IGameOptionsChangedEvent.ChangeReason.Api)); - alreadyCallingOptionsChangedEvent = false; + try + { + alreadyCallingOptionsChangedEvent = true; + await _eventManager.CallAsync(new GameOptionsChangedEvent( + this, + Api.Events.IGameOptionsChangedEvent.ChangeReason.Api)); + } + finally + { + alreadyCallingOptionsChangedEvent = false; + } } }