From 4371ad4d9a0c9a9b7d91884630ccdf78423c941a Mon Sep 17 00:00:00 2001 From: White Date: Mon, 20 Jul 2015 23:25:33 +0930 Subject: [PATCH] Logging out is now safe in SSC. Fixes #1037 --- TShockAPI/Commands.cs | 15 +++++++++++++++ TShockAPI/TShock.cs | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs index 673efc69..96af5129 100755 --- a/TShockAPI/Commands.cs +++ b/TShockAPI/Commands.cs @@ -862,6 +862,17 @@ namespace TShockAPI PlayerHooks.OnPlayerLogout(args.Player); + + if (Main.ServerSideCharacter) + { + args.Player.IgnoreActionsForInventory = String.Format("Server side characters is enabled! Please {0}register or {0}login to play!", Commands.Specifier); + if (!args.Player.IgnoreActionsForClearingTrashCan && (!args.Player.Dead || args.Player.TPlayer.difficulty != 2)) + { + args.Player.PlayerData.CopyCharacter(args.Player); + TShock.CharacterDB.InsertPlayerData(args.Player); + } + } + args.Player.PlayerData = new PlayerData(args.Player); args.Player.Group = TShock.Groups.GetGroupByName(TShock.Config.DefaultGuestGroupName); args.Player.tempGroup = null; @@ -873,6 +884,10 @@ namespace TShockAPI args.Player.IsLoggedIn = false; args.Player.SendSuccessMessage("You have been successfully logged out of your account."); + if (Main.ServerSideCharacter) + { + args.Player.SendWarningMessage("Server side characters are enabled. You need to be logged in to play."); + } } private static void PasswordUser(CommandArgs args) diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index d6f141d1..5247b0da 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -988,7 +988,7 @@ namespace TShockAPI player.IgnoreActionsForDisabledArmor = check; if (CheckIgnores(player)) { - player.Disable("check ignores failed in SecondUpdate()", false); + player.Disable("check ignores failed in OnSecondUpdate()", false); } else if (Itembans.ItemIsBanned(player.TPlayer.inventory[player.TPlayer.selectedItem].name, player)) {