From ef35ffe091bf717047ed57c27827b9a83e8128ed Mon Sep 17 00:00:00 2001 From: Zack Piispanen Date: Fri, 4 Oct 2013 16:59:57 -0400 Subject: [PATCH] Ensure we only save SSC when SSC is enabled. --- TShockAPI/Commands.cs | 2 +- TShockAPI/GetDataHandlers.cs | 4 ++-- TShockAPI/TSPlayer.cs | 10 ++++++++-- TShockAPI/TShock.cs | 6 +++--- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs index 1fcb5daf..e454e8c2 100755 --- a/TShockAPI/Commands.cs +++ b/TShockAPI/Commands.cs @@ -475,7 +475,7 @@ namespace TShockAPI args.Player.IsLoggedIn = true; args.Player.IgnoreActionsForInventory = "none"; - if (!args.Player.IgnoreActionsForClearingTrashCan) + if (!args.Player.IgnoreActionsForClearingTrashCan && TShock.Config.ServerSideCharacter) { args.Player.PlayerData.CopyCharacter(args.Player); TShock.CharacterDB.InsertPlayerData(args.Player); diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index fb976773..6f26279e 100755 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -1443,7 +1443,7 @@ namespace TShockAPI args.Player.IsLoggedIn = true; args.Player.IgnoreActionsForInventory = "none"; - if (!args.Player.IgnoreActionsForClearingTrashCan) + if (!args.Player.IgnoreActionsForClearingTrashCan && TShock.Config.ServerSideCharacter) { args.Player.PlayerData.CopyCharacter(args.Player); TShock.CharacterDB.InsertPlayerData(args.Player); @@ -1521,7 +1521,7 @@ namespace TShockAPI args.Player.IsLoggedIn = true; args.Player.IgnoreActionsForInventory = "none"; - if (!args.Player.IgnoreActionsForClearingTrashCan) + if (!args.Player.IgnoreActionsForClearingTrashCan && TShock.Config.ServerSideCharacter) { args.Player.PlayerData.CopyCharacter(args.Player); TShock.CharacterDB.InsertPlayerData(args.Player); diff --git a/TShockAPI/TSPlayer.cs b/TShockAPI/TSPlayer.cs index ca101828..18ad7adf 100755 --- a/TShockAPI/TSPlayer.cs +++ b/TShockAPI/TSPlayer.cs @@ -779,6 +779,7 @@ namespace TShockAPI SendData(PacketTypes.PlayerTeam, "", Index); } + private DateTime LastDisableNotification = DateTime.UtcNow; public virtual void Disable(string reason = "") { LastThreat = DateTime.UtcNow; @@ -786,8 +787,13 @@ namespace TShockAPI SetBuff(32, 330, true); //Slow SetBuff(23, 330, true); //Cursed if (!string.IsNullOrEmpty(reason)) - Log.ConsoleInfo(string.Format("Player {0} has been disabled for {1}.", Name, reason)); - + { + if ((DateTime.UtcNow - LastDisableNotification).TotalMilliseconds > 5000) + { + Log.ConsoleInfo(string.Format("Player {0} has been disabled for {1}.", Name, reason)); + LastDisableNotification = DateTime.UtcNow; + } + } var trace = new StackTrace(); StackFrame frame = null; frame = trace.GetFrame(1); diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 184e5933..f537c1fc 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -618,8 +618,8 @@ namespace TShockAPI OnSecondUpdate(); LastCheck = DateTime.UtcNow; } - - if ((DateTime.UtcNow - LastSave).TotalMinutes >= Config.ServerSideCharacterSave) + + if (TShock.Config.ServerSideCharacter && (DateTime.UtcNow - LastSave).TotalMinutes >= Config.ServerSideCharacterSave) { foreach (TSPlayer player in Players) { @@ -903,7 +903,7 @@ namespace TShockAPI } Log.Info(string.Format("{0} disconnected.", tsplr.Name)); - if (tsplr.IsLoggedIn && !tsplr.IgnoreActionsForClearingTrashCan) + if (tsplr.IsLoggedIn && !tsplr.IgnoreActionsForClearingTrashCan && TShock.Config.ServerSideCharacter) { tsplr.PlayerData.CopyCharacter(tsplr); CharacterDB.InsertPlayerData(tsplr);