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
///