diff --git a/TGS.ControlPanel/InstanceSelector.cs b/TGS.ControlPanel/InstanceSelector.cs index 6794995db2..09264953a9 100644 --- a/TGS.ControlPanel/InstanceSelector.cs +++ b/TGS.ControlPanel/InstanceSelector.cs @@ -58,6 +58,7 @@ namespace TGS.ControlPanel void RefreshInstances() { InstanceListBox.Items.Clear(); + server.RebuildInstanceList(); foreach(var I in server.Instances) InstanceListBox.Items.Add(I); var HasServerAdmin = server.InstanceManager != null; diff --git a/TGS.Interface/IServer.cs b/TGS.Interface/IServer.cs index a81c6de744..e9234f9a58 100644 --- a/TGS.Interface/IServer.cs +++ b/TGS.Interface/IServer.cs @@ -35,5 +35,10 @@ namespace TGS.Interface /// The name of the to get /// The named on success, on failure IInstance GetInstance(string name); + + /// + /// Rebuilds the internal cached list + /// + void RebuildInstanceList(); } } diff --git a/TGS.Interface/Server.cs b/TGS.Interface/Server.cs index d934528832..d5c953ee1f 100644 --- a/TGS.Interface/Server.cs +++ b/TGS.Interface/Server.cs @@ -15,7 +15,7 @@ namespace TGS.Interface { lock (this) if (knownInstances == null) - knownInstances = serverInterface.GetComponent(null).ListInstances(); + RebuildInstanceList(); foreach (var I in knownInstances) { IInstance nextInstance; @@ -92,5 +92,12 @@ namespace TGS.Interface { return new Instance(serverInterface, new InstanceMetadata { Name = name, Enabled = false }); } + + /// + public void RebuildInstanceList() + { + lock (this) + knownInstances = serverInterface.GetComponent(null).ListInstances(); + } } }