Skip to content

Commit

Permalink
Create game config files if they don't exist, move config updating mo…
Browse files Browse the repository at this point in the history
…re into games themselves
  • Loading branch information
UnknownShadow200 committed Aug 13, 2024
1 parent f059c0c commit 40f8c83
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 46 deletions.
9 changes: 9 additions & 0 deletions MCGalaxy/Games/RoundsGame/RoundsGame.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -88,6 +89,7 @@ public virtual void Start(Player p, string map, int rounds) {
/// <summary> Attempts to auto start this game with infinite rounds. </summary>
public void AutoStart() {
if (!GetConfig().StartImmediately) return;

try {
Start(Player.Console, "", int.MaxValue);
} catch (Exception ex) {
Expand Down Expand Up @@ -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();
}
}
}
17 changes: 8 additions & 9 deletions MCGalaxy/Modules/Games/CTF/CtfPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
}
}
17 changes: 8 additions & 9 deletions MCGalaxy/Modules/Games/Countdown/CountdownPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
}
}
17 changes: 8 additions & 9 deletions MCGalaxy/Modules/Games/LavaSurvival/LSPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
}
}
17 changes: 8 additions & 9 deletions MCGalaxy/Modules/Games/TNTWars/TWPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
}
}
5 changes: 5 additions & 0 deletions MCGalaxy/Modules/Games/ZombieSurvival/ZSGame.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
}
}
18 changes: 8 additions & 10 deletions MCGalaxy/Modules/Games/ZombieSurvival/ZSPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
}
}

0 comments on commit 40f8c83

Please sign in to comment.