]> git.deb.at Git - rhonda/impostor.git/commitdiff
Process comments
authorminiduikboot <mini@duikbo.at>
Tue, 28 Nov 2023 22:09:39 +0000 (23:09 +0100)
committerminiduikboot <mini@duikbo.at>
Tue, 28 Nov 2023 22:09:39 +0000 (23:09 +0100)
src/Impostor.Server/Net/Inner/Objects/GameManager/InnerHideAndSeekManager.cs
src/Impostor.Server/Net/Inner/Objects/GameManager/InnerNormalGameManager.cs
src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicOptionsHnS.cs
src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicOptions.cs
src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicOptionsNormal.cs
src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs
src/Impostor.Server/Net/State/Game.Api.cs

index b8468fe10ece4c8600f790f664e7432702d1b210..09c9a5a4851da16aa5763b34a32b9c6b5729c6e1 100644 (file)
@@ -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<ICustomRpc> customMessageManager, Game game, ILogger<InnerGameManager> logger) : base(customMessageManager, game, logger)
+    public InnerHideAndSeekManager(ICustomMessageManager<ICustomRpc> customMessageManager, Game game, ILogger<InnerGameManager> 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());
index a3e715ad5c48751063b35d568e9d927ddfb7d9ec..e00bac2588978ffd0c153736d090450764c0a69f 100644 (file)
@@ -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<ICustomRpc> customMessageManager, Game game, ILogger<InnerGameManager> logger) : base(customMessageManager, game, logger)
+    public InnerNormalGameManager(ICustomMessageManager<ICustomRpc> customMessageManager, Game game, ILogger<InnerGameManager> 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));
     }
 }
index 9a4e89a61103866ca00369afb50536c78795ee23..2d588d9ae7ee2700043472f78cfce31096000e03 100644 (file)
@@ -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)
     {
     }
 }
index fcda22d9d12e4640651c6e645aace273b0c54bcb..d97473b97bfd6fb02d5a6bf14b1c1367796ed466 100644 (file)
@@ -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));
     }
 }
index 944fc56e4ada405ddd166a1aa8caed9c6cfed17b..88c0f223e96f760494e98f6c4887577064dc599f 100644 (file)
@@ -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)
     {
     }
 }
index 9b3539def3e6db1d58e7084ff3b1827fb8c6f799..e562fa87e2416775379d84c7e4b86a47add28602 100644 (file)
@@ -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;
                 }
 
index 4ed4279e310e2fb842b8a74934a23dca41287fc0..9a95d497ef7696c324b44e87efcebf3ca6c6a06f 100644 (file)
@@ -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;
+                }
             }
         }