diff --git a/MCGalaxy/Games/RoundsGame/RoundsGame.cs b/MCGalaxy/Games/RoundsGame/RoundsGame.cs index 35f07aac1..85731c6a2 100644 --- a/MCGalaxy/Games/RoundsGame/RoundsGame.cs +++ b/MCGalaxy/Games/RoundsGame/RoundsGame.cs @@ -17,6 +17,7 @@ permissions and limitations under the Licenses. */ using System; using System.Collections.Generic; +using System.IO; using System.Threading; using MCGalaxy.Events.GameEvents; @@ -88,6 +89,7 @@ public virtual void Start(Player p, string map, int rounds) { /// Attempts to auto start this game with infinite rounds. public void AutoStart() { if (!GetConfig().StartImmediately) return; + try { Start(Player.Console, "", int.MaxValue); } catch (Exception ex) { @@ -292,5 +294,12 @@ protected void UpdateAllMotd() { if (p.Supports(CpeExt.InstantMOTD)) p.SendMapMotd(); } } + + public virtual void ReloadConfig() { + GetConfig().Load(); + + if (File.Exists(GetConfig().Path)) return; + GetConfig().Save(); + } } } diff --git a/MCGalaxy/Modules/Games/CTF/CtfPlugin.cs b/MCGalaxy/Modules/Games/CTF/CtfPlugin.cs index 84469dd9c..d515988bb 100644 --- a/MCGalaxy/Modules/Games/CTF/CtfPlugin.cs +++ b/MCGalaxy/Modules/Games/CTF/CtfPlugin.cs @@ -28,21 +28,20 @@ public sealed class CTFPlugin : Plugin static Command cmdCTF = new CmdCTF(); public override void Load(bool startup) { - OnConfigUpdatedEvent.Register(OnConfigUpdated, Priority.Low); Command.Register(cmdCTF); + + CTFGame game = CTFGame.Instance; + game.Config.Path = "properties/ctf.properties"; + game.ReloadConfig(); + game.AutoStart(); - CTFGame.Instance.Config.Path = "properties/ctf.properties"; - OnConfigUpdated(); - CTFGame.Instance.AutoStart(); + OnConfigUpdatedEvent.Register(game.ReloadConfig, Priority.Low); } public override void Unload(bool shutdown) { - OnConfigUpdatedEvent.Unregister(OnConfigUpdated); + CTFGame game = CTFGame.Instance; + OnConfigUpdatedEvent.Unregister(game.ReloadConfig); Command.Unregister(cmdCTF); } - - void OnConfigUpdated() { - CTFGame.Instance.Config.Load(); - } } } diff --git a/MCGalaxy/Modules/Games/Countdown/CountdownPlugin.cs b/MCGalaxy/Modules/Games/Countdown/CountdownPlugin.cs index f05625c0d..5768efe39 100644 --- a/MCGalaxy/Modules/Games/Countdown/CountdownPlugin.cs +++ b/MCGalaxy/Modules/Games/Countdown/CountdownPlugin.cs @@ -28,21 +28,20 @@ public sealed class CountdownPlugin : Plugin static Command cmdCD = new CmdCountdown(); public override void Load(bool startup) { - OnConfigUpdatedEvent.Register(OnConfigUpdated, Priority.Low); Command.Register(cmdCD); - CountdownGame.Instance.Config.Path = "properties/countdown.properties"; - OnConfigUpdated(); - CountdownGame.Instance.AutoStart(); + CountdownGame game = CountdownGame.Instance; + game.Config.Path = "properties/countdown.properties"; + game.ReloadConfig(); + game.AutoStart(); + + OnConfigUpdatedEvent.Register(game.ReloadConfig, Priority.Low); } public override void Unload(bool shutdown) { - OnConfigUpdatedEvent.Unregister(OnConfigUpdated); + CountdownGame game = CountdownGame.Instance; + OnConfigUpdatedEvent.Unregister(game.ReloadConfig); Command.Unregister(cmdCD); } - - void OnConfigUpdated() { - CountdownGame.Instance.Config.Load(); - } } } diff --git a/MCGalaxy/Modules/Games/LavaSurvival/LSPlugin.cs b/MCGalaxy/Modules/Games/LavaSurvival/LSPlugin.cs index 0e8978104..5bfab6d3a 100644 --- a/MCGalaxy/Modules/Games/LavaSurvival/LSPlugin.cs +++ b/MCGalaxy/Modules/Games/LavaSurvival/LSPlugin.cs @@ -28,21 +28,20 @@ public sealed class LSPlugin : Plugin static Command cmdLS = new CmdLavaSurvival(); public override void Load(bool startup) { - OnConfigUpdatedEvent.Register(OnConfigUpdated, Priority.Low); Command.Register(cmdLS); - LSGame.Instance.Config.Path = "properties/lavasurvival.properties"; - OnConfigUpdated(); - LSGame.Instance.AutoStart(); + LSGame game = LSGame.Instance; + game.Config.Path = "properties/lavasurvival.properties"; + game.ReloadConfig(); + game.AutoStart(); + + OnConfigUpdatedEvent.Register(game.ReloadConfig, Priority.Low); } public override void Unload(bool shutdown) { - OnConfigUpdatedEvent.Unregister(OnConfigUpdated); + LSGame game = LSGame.Instance; + OnConfigUpdatedEvent.Unregister(game.ReloadConfig); Command.Unregister(cmdLS); } - - void OnConfigUpdated() { - LSGame.Instance.Config.Load(); - } } } diff --git a/MCGalaxy/Modules/Games/TNTWars/TWPlugin.cs b/MCGalaxy/Modules/Games/TNTWars/TWPlugin.cs index 96928c2ef..c50fdcb0c 100644 --- a/MCGalaxy/Modules/Games/TNTWars/TWPlugin.cs +++ b/MCGalaxy/Modules/Games/TNTWars/TWPlugin.cs @@ -28,21 +28,20 @@ public sealed class TWPlugin : Plugin static Command cmdTW = new CmdTntWars(); public override void Load(bool startup) { - OnConfigUpdatedEvent.Register(OnConfigUpdated, Priority.Low); Command.Register(cmdTW); - TWGame.Instance.Config.Path = "properties/tntwars.properties"; - OnConfigUpdated(); - TWGame.Instance.AutoStart(); + TWGame game = TWGame.Instance; + game.Config.Path = "properties/tntwars.properties"; + game.ReloadConfig(); + game.AutoStart(); + + OnConfigUpdatedEvent.Register(game.ReloadConfig, Priority.Low); } public override void Unload(bool shutdown) { - OnConfigUpdatedEvent.Unregister(OnConfigUpdated); + TWGame game = TWGame.Instance; + OnConfigUpdatedEvent.Unregister(game.ReloadConfig); Command.Unregister(cmdTW); } - - void OnConfigUpdated() { - TWGame.Instance.Config.Load(); - } } } diff --git a/MCGalaxy/Modules/Games/ZombieSurvival/ZSGame.cs b/MCGalaxy/Modules/Games/ZombieSurvival/ZSGame.cs index bcfa81e4f..900376d17 100644 --- a/MCGalaxy/Modules/Games/ZombieSurvival/ZSGame.cs +++ b/MCGalaxy/Modules/Games/ZombieSurvival/ZSGame.cs @@ -350,5 +350,10 @@ public bool SetQueuedLevel(Player p, string name) { if (Map != null) Map.Message(map + " was queued as the next map."); return true; } + + public override void ReloadConfig() { + base.ReloadConfig(); + infectMessages = ZSConfig.LoadInfectMessages(); + } } } diff --git a/MCGalaxy/Modules/Games/ZombieSurvival/ZSPlugin.cs b/MCGalaxy/Modules/Games/ZombieSurvival/ZSPlugin.cs index 3359a13d8..1d769bf64 100644 --- a/MCGalaxy/Modules/Games/ZombieSurvival/ZSPlugin.cs +++ b/MCGalaxy/Modules/Games/ZombieSurvival/ZSPlugin.cs @@ -28,22 +28,20 @@ public sealed class ZSPlugin : Plugin static Command cmdZS = new CmdZombieSurvival(); public override void Load(bool startup) { - OnConfigUpdatedEvent.Register(OnConfigUpdated, Priority.Low); Command.Register(cmdZS); - ZSGame.Instance.Config.Path = "properties/zombiesurvival.properties"; - OnConfigUpdated(); - ZSGame.Instance.AutoStart(); + ZSGame game = ZSGame.Instance; + game.Config.Path = "properties/zombiesurvival.properties"; + game.ReloadConfig(); + game.AutoStart(); + + OnConfigUpdatedEvent.Register(game.ReloadConfig, Priority.Low); } public override void Unload(bool shutdown) { - OnConfigUpdatedEvent.Unregister(OnConfigUpdated); + ZSGame game = ZSGame.Instance; + OnConfigUpdatedEvent.Unregister(game.ReloadConfig); Command.Unregister(cmdZS); } - - void OnConfigUpdated() { - ZSGame.Instance.Config.Load(); - ZSGame.Instance.infectMessages = ZSConfig.LoadInfectMessages(); - } } }