diff --git a/Torch.Server/Managers/RemoteAPIManager.cs b/Torch.Server/Managers/RemoteAPIManager.cs index 4d7fe1c..645a426 100644 --- a/Torch.Server/Managers/RemoteAPIManager.cs +++ b/Torch.Server/Managers/RemoteAPIManager.cs @@ -17,12 +17,24 @@ namespace Torch.Server.Managers /// public override void Attach() { - if (MySandboxGame.ConfigDedicated.RemoteApiEnabled && !string.IsNullOrEmpty(MySandboxGame.ConfigDedicated.RemoteSecurityKey)) + Torch.GameStateChanged += TorchOnGameStateChanged; + base.Attach(); + } + + /// + public override void Detach() + { + Torch.GameStateChanged -= TorchOnGameStateChanged; + base.Detach(); + } + + private void TorchOnGameStateChanged(MySandboxGame game, TorchGameState newstate) + { + if (newstate == TorchGameState.Loading && MySandboxGame.ConfigDedicated.RemoteApiEnabled && !string.IsNullOrEmpty(MySandboxGame.ConfigDedicated.RemoteSecurityKey)) { var myRemoteServer = new MyRemoteServer(MySandboxGame.ConfigDedicated.RemoteApiPort, MySandboxGame.ConfigDedicated.RemoteSecurityKey); LogManager.GetCurrentClassLogger().Info($"Remote API started on port {myRemoteServer.Port}"); } - base.Attach(); } } } \ No newline at end of file