diff --git a/Torch.Server/TorchServer.cs b/Torch.Server/TorchServer.cs
index 5e2ae81..b0e7a9e 100644
--- a/Torch.Server/TorchServer.cs
+++ b/Torch.Server/TorchServer.cs
@@ -121,7 +121,38 @@ namespace Torch.Server
///
public ServerState State { get; private set; }
- public event Action Initialized;
+ private Action _initializedEvent;
+
+ public event Action Initialized
+ {
+ add
+ {
+ var action = _initializedEvent;
+ Action action2;
+ do
+ {
+ action2 = action;
+ var action3 = (Action)Delegate.Combine(action2, value);
+ action = Interlocked.CompareExchange(ref _initializedEvent, action3, action2);
+ }
+ while (action != action2);
+
+ if (GetManager().DedicatedConfig != null)
+ value(this); //if already initialized
+ }
+ remove
+ {
+ var action = _initializedEvent;
+ Action action2;
+ do
+ {
+ action2 = action;
+ var action3 = (Action)Delegate.Remove(action2, value);
+ action = Interlocked.CompareExchange(ref _initializedEvent, action3, action2);
+ }
+ while (action != action2);
+ }
+ }
public int OnlinePlayers { get; private set; }
@@ -132,7 +163,7 @@ namespace Torch.Server
base.Init();
GetManager().LoadInstance(InstancePath);
CanRun = true;
- Initialized?.Invoke(this);
+ _initializedEvent?.Invoke(this);
Log.Info($"Initialized server '{InstanceName}' at '{InstancePath}'");
}