diff --git a/TShockAPI/ConfigFile.cs b/TShockAPI/ConfigFile.cs index e5508afd..6e6de82b 100644 --- a/TShockAPI/ConfigFile.cs +++ b/TShockAPI/ConfigFile.cs @@ -56,6 +56,7 @@ namespace TShockAPI public int spawnTileX; public int spawnTileY; + public int Spawn_WorldID; public bool RememberLeavePos = false; } diff --git a/TShockAPI/ConfigurationManager.cs b/TShockAPI/ConfigurationManager.cs index d8660687..0dd04bbc 100644 --- a/TShockAPI/ConfigurationManager.cs +++ b/TShockAPI/ConfigurationManager.cs @@ -77,6 +77,10 @@ namespace TShockAPI /// public static bool ListServer = false; + public static int Spawn_WorldID; + public static int originalSpawnX; + public static int originalSpawnY; + public static void ReadJsonConfiguration() { TextReader tr = new StreamReader(FileTools.ConfigPath); @@ -115,8 +119,11 @@ namespace TShockAPI BackupInterval = cfg.BackupInterval; BackupKeepFor = cfg.BackupKeepFor; ListServer = cfg.ListServer; + originalSpawnX = Main.spawnTileX; + originalSpawnY = Main.spawnTileY; Main.spawnTileX = cfg.spawnTileX; Main.spawnTileY = cfg.spawnTileY; + Spawn_WorldID = cfg.Spawn_WorldID; RememberLeavePos = cfg.RememberLeavePos; } @@ -155,7 +162,7 @@ namespace TShockAPI cfg.spawnTileX = Main.spawnTileX; cfg.spawnTileY = Main.spawnTileY; cfg.RememberLeavePos = RememberLeavePos; - + cfg.Spawn_WorldID = Spawn_WorldID; string json = JsonConvert.SerializeObject(cfg, Formatting.Indented); TextWriter tr = new StreamWriter(FileTools.ConfigPath); tr.Write(json); diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 41b1ce36..1598038e 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -257,6 +257,13 @@ namespace TShockAPI } } + if (ConfigurationManager.Spawn_WorldID != Main.worldID) + { + Main.spawnTileX = ConfigurationManager.originalSpawnX; + Main.spawnTileY = ConfigurationManager.originalSpawnY; + ConfigurationManager.Spawn_WorldID = Main.worldID; + } + Players[ply] = player; Netplay.spamCheck = ConfigurationManager.SpamChecks; }