diff --git a/TShockAPI/BackupManager.cs b/TShockAPI/BackupManager.cs index 1bff999e..d065ae61 100644 --- a/TShockAPI/BackupManager.cs +++ b/TShockAPI/BackupManager.cs @@ -67,7 +67,7 @@ namespace TShockAPI if (worldpath != null && !Directory.Exists(worldpath)) Directory.CreateDirectory(worldpath); - Tools.Broadcast("Server map saving, potential lag spike"); + //Tools.Broadcast("Server map saving, potential lag spike"); WorldGen.saveWorld(); Console.WriteLine("World backed up"); diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs index d5056e8a..97c816bc 100755 --- a/TShockAPI/Commands.cs +++ b/TShockAPI/Commands.cs @@ -1003,9 +1003,9 @@ namespace TShockAPI private static void Save(CommandArgs args) { - Tools.Broadcast("Server map saving, potential lag spike"); + //Tools.Broadcast("Server map saving, potential lag spike"); WorldGen.saveWorld(); - args.Player.SendMessage("World saved."); + //args.Player.SendMessage("World saved."); } private static void MaxSpawns(CommandArgs args) diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 58afa83c..b43175db 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -48,6 +48,8 @@ namespace TShockAPI public static IDbConnection Sql; + public static bool WorldSaving = false; + public override Version Version { get { return VersionNum; } @@ -105,6 +107,7 @@ namespace TShockAPI NetHooks.GreetPlayer += OnGreetPlayer; NetHooks.SendData += OnSendData; NpcHooks.StrikeNpc += NpcHooks_OnStrikeNpc; + WorldHooks.SaveWorld += OnSaveWorld; AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; Bans.LoadBans(); @@ -131,6 +134,7 @@ namespace TShockAPI NetHooks.GreetPlayer -= OnGreetPlayer; NetHooks.SendData -= OnSendData; NpcHooks.StrikeNpc -= NpcHooks_OnStrikeNpc; + WorldHooks.SaveWorld -= OnSaveWorld; } /// @@ -533,6 +537,19 @@ namespace TShockAPI } } + private void OnSaveWorld(bool resettime, HandledEventArgs e) + { + if (!WorldSaving) + { + WorldSaving = true; + Tools.Broadcast("Saving world, might lag.", Color.Red); + WorldGen.saveWorld(resettime); + Tools.Broadcast("World saved.", Color.LimeGreen); + WorldSaving = false; + e.Handled = true; + } + } + /* * Useful stuff: * */