diff --git a/TShockAPI/BackupManager.cs b/TShockAPI/BackupManager.cs index d065ae61..0dfd5c1c 100644 --- a/TShockAPI/BackupManager.cs +++ b/TShockAPI/BackupManager.cs @@ -67,11 +67,9 @@ namespace TShockAPI if (worldpath != null && !Directory.Exists(worldpath)) Directory.CreateDirectory(worldpath); - //Tools.Broadcast("Server map saving, potential lag spike"); - WorldGen.saveWorld(); - - Console.WriteLine("World backed up"); - Log.Info(string.Format("World backed up ({0})", Main.worldPathName)); + Tools.Broadcast("Server map saving, potential lag spike"); + Thread SaveWorld = new Thread(Tools.SaveWorld); + SaveWorld.Start(); Main.worldPathName = worldname; } diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index b43175db..279c15a0 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -23,6 +23,7 @@ using System.Diagnostics; using System.IO; using System.Net; using System.Reflection; +using System.Threading; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; using Terraria; @@ -543,8 +544,8 @@ namespace TShockAPI { WorldSaving = true; Tools.Broadcast("Saving world, might lag.", Color.Red); - WorldGen.saveWorld(resettime); - Tools.Broadcast("World saved.", Color.LimeGreen); + Thread SaveWorld = new Thread(Tools.SaveWorld); + SaveWorld.Start(); WorldSaving = false; e.Handled = true; } diff --git a/TShockAPI/Tools.cs b/TShockAPI/Tools.cs index 7392b8db..59437414 100755 --- a/TShockAPI/Tools.cs +++ b/TShockAPI/Tools.cs @@ -101,6 +101,18 @@ namespace TShockAPI return result; } + /// + /// Saves the map data + /// + public static void SaveWorld() + { + WorldGen.saveWorld(); + + Broadcast("World Saved", Color.Yellow); + Console.WriteLine("World backed up"); + Log.Info(string.Format("World backed up ({0})", Main.worldPathName)); + } + /// /// Broadcasts a message to all players ///