diff --git a/Torch.Server/Managers/InstanceManager.cs b/Torch.Server/Managers/InstanceManager.cs index 5011932..245f8d1 100644 --- a/Torch.Server/Managers/InstanceManager.cs +++ b/Torch.Server/Managers/InstanceManager.cs @@ -167,6 +167,16 @@ namespace Torch.Server.Managers public void SaveConfig() { + var cf = Torch.Config as TorchConfig; + if (cf?.ReservedPlayers?.Count > 0) + { + foreach (var res in cf.ReservedPlayers) + { + if (!DedicatedConfig.Reserved.Contains(res)) + DedicatedConfig.Reserved.Add(res); + } + } + DedicatedConfig.Save(Path.Combine(Torch.Config.InstancePath, CONFIG_NAME)); Log.Info("Saved dedicated config."); diff --git a/Torch.Server/Managers/MultiplayerManagerDedicated.cs b/Torch.Server/Managers/MultiplayerManagerDedicated.cs index 7fd5b10..ddee914 100644 --- a/Torch.Server/Managers/MultiplayerManagerDedicated.cs +++ b/Torch.Server/Managers/MultiplayerManagerDedicated.cs @@ -219,8 +219,7 @@ namespace Torch.Server.Managers _log.Warn($"Rejecting user {info.SteamID} because they are not whitelisted in Torch.cfg."); internalAuth = JoinResult.NotInGroup; } - else if (config.EnableReservedSlots && (config.ReservedPlayers.Contains(info.SteamID) || - MySandboxGame.ConfigDedicated.Reserved.Contains(info.SteamID))) + else if (MySandboxGame.ConfigDedicated.Reserved.Contains(info.SteamID)) internalAuth = JoinResult.OK; //Admins can bypass member limit else if (MySandboxGame.ConfigDedicated.Administrators.Contains(info.SteamID.ToString()) || diff --git a/Torch.Server/TorchConfig.cs b/Torch.Server/TorchConfig.cs index f686315..0b9fdad 100644 --- a/Torch.Server/TorchConfig.cs +++ b/Torch.Server/TorchConfig.cs @@ -68,9 +68,14 @@ namespace Torch.Server public string LastUsedTheme { get; set; } = "Torch Theme"; - public bool EnableReservedSlots { get; set; } = false; + //TODO: REMOVE ME BY JULY 2019 + [Obsolete("Use vanilla reserved slot config")] public HashSet ReservedPlayers { get; set; } = new HashSet(); + //Prevent reserved players being written to disk, but allow it to bre read + //remove this when ReservedPlayers is removed + private bool ShouldSerializeReservedPlayers() => false; + [XmlIgnore] private string _path; diff --git a/Torch.Server/Views/ConfigControl.xaml b/Torch.Server/Views/ConfigControl.xaml index f6e9f99..9d0cb99 100644 --- a/Torch.Server/Views/ConfigControl.xaml +++ b/Torch.Server/Views/ConfigControl.xaml @@ -58,87 +58,89 @@ - - - - - - - + + + +