From b7f0112acdc024dedc53a3813ad0943c3647aea0 Mon Sep 17 00:00:00 2001 From: Shank Date: Sun, 12 Jun 2011 03:12:59 -0600 Subject: [PATCH] Configuration File now adds missing entries thanks to how JSON works and how default values work. --- TShockAPI/ConfigurationManager.cs | 44 ++++++++++++++----------------- TShockAPI/FileTools.cs | 11 ++++++-- TShockAPI/TShock.cs | 2 +- 3 files changed, 30 insertions(+), 27 deletions(-) diff --git a/TShockAPI/ConfigurationManager.cs b/TShockAPI/ConfigurationManager.cs index 2b8bbb4e..1f4cfa22 100644 --- a/TShockAPI/ConfigurationManager.cs +++ b/TShockAPI/ConfigurationManager.cs @@ -30,16 +30,16 @@ namespace TShockAPI public static int defaultMaxSpawns = 4; public static int defaultSpawnRate = 700; public static int serverPort = 7777; - public static bool enableWhitelist; - public static bool infiniteInvasion; - public static bool permaPvp; + public static bool enableWhitelist = false; + public static bool infiniteInvasion = false; + public static bool permaPvp = false; public static int killCount; public static bool kickCheater = true; public static bool banCheater = true; public static bool kickGriefer = true; public static bool banGriefer = true; - public static bool banTnt; - public static bool kickTnt; + public static bool banTnt = true; + public static bool kickTnt = true; public static bool banBoom = true; public static bool kickBoom = true; public static bool spawnProtect = true; @@ -92,33 +92,29 @@ namespace TShockAPI public static void WriteJsonConfiguration() { - if (!Directory.Exists(FileTools.SaveDir)) + if (System.IO.File.Exists(FileTools.SaveDir + "config.json")) { - Directory.CreateDirectory(FileTools.SaveDir); - } - if (File.Exists(FileTools.SaveDir + "config.json")) - { - return; + System.IO.File.Delete(FileTools.SaveDir + "config.json"); } FileTools.CreateFile(FileTools.SaveDir + "config.json"); ConfigFile cfg = new ConfigFile(); - cfg.InvasionMultiplier = 50; - cfg.DefaultMaximumSpawns = 4; - cfg.DefaultSpawnRate = 700; - cfg.ServerPort = 7777; - cfg.EnableWhitelist = false; - cfg.InfiniteInvasion = false; - cfg.AlwaysPvP = false; + cfg.InvasionMultiplier = invasionMultiplier; + cfg.DefaultMaximumSpawns = defaultMaxSpawns; + cfg.DefaultSpawnRate = defaultSpawnRate; + cfg.ServerPort = serverPort; + cfg.EnableWhitelist = enableWhitelist; + cfg.InfiniteInvasion = infiniteInvasion; + cfg.AlwaysPvP = permaPvp; cfg.KickCheaters = kickCheater; cfg.BanCheaters = banCheater; cfg.KickGriefers = kickGriefer; cfg.BanGriefers = banGriefer; - cfg.BanKillTileAbusers = true; - cfg.KickKillTileAbusers = true; - cfg.BanExplosives = true; - cfg.KickExplosives = true; - cfg.SpawnProtection = true; - cfg.SpawnProtectionRadius = 5; + cfg.BanKillTileAbusers = banGriefer; + cfg.KickKillTileAbusers = kickGriefer; + cfg.BanExplosives = banBoom; + cfg.KickExplosives = kickBoom; + cfg.SpawnProtection = spawnProtect; + cfg.SpawnProtectionRadius = spawnProtectRadius; cfg.MaxSlots = maxSlots; cfg.RangeChecks = rangeChecks; cfg.SpamChecks = spamChecks; diff --git a/TShockAPI/FileTools.cs b/TShockAPI/FileTools.cs index db4a7e51..fc9eb531 100644 --- a/TShockAPI/FileTools.cs +++ b/TShockAPI/FileTools.cs @@ -92,8 +92,15 @@ namespace TShockAPI sw.Write(Resources.users); sw.Close(); } - ConfigurationManager.WriteJsonConfiguration(); - ConfigurationManager.ReadJsonConfiguration(); + if (File.Exists(FileTools.SaveDir + "config.json")) + { + ConfigurationManager.ReadJsonConfiguration(); + } else + { + ConfigurationManager.WriteJsonConfiguration(); + ConfigurationManager.ReadJsonConfiguration(); + } + Netplay.serverPort = ConfigurationManager.serverPort; } diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index a73df744..15177a15 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -206,7 +206,7 @@ namespace TShockAPI public override void DeInitialize() { Bans.SaveBans(); - + ConfigurationManager.WriteJsonConfiguration(); GameHooks.PostInitialize -= OnPostInit; GameHooks.Update -= OnUpdate; ServerHooks.Chat -= OnChat;