diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index d9dafa7c..c4c33dd6 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -961,7 +961,22 @@ namespace TShockAPI { player.Spawn(); } - if (!Main.ServerSideCharacter || (Main.ServerSideCharacter && player.IsLoggedIn)) + + if (Main.ServerSideCharacter && !player.IsLoggedIn) + { + DisableFlags flags = Config.DisableSecondUpdateLogs ? DisableFlags.WriteToConsole : DisableFlags.WriteToLogAndConsole; + + if (CheckIgnores(player)) + { + player.Disable("not being logged in while SSC is enabled", flags); + } + else if (Itembans.ItemIsBanned(player.TPlayer.inventory[player.TPlayer.selectedItem].name, player)) + { + player.Disable($"holding banned item: {player.TPlayer.inventory[player.TPlayer.selectedItem].name}", flags); + player.SendErrorMessage($"You are holding a banned item: {player.TPlayer.inventory[player.TPlayer.selectedItem].name}"); + } + } + else if (!Main.ServerSideCharacter || (Main.ServerSideCharacter && player.IsLoggedIn)) { string check = "none"; foreach (Item item in player.TPlayer.inventory) @@ -1030,11 +1045,17 @@ namespace TShockAPI } } player.IgnoreActionsForDisabledArmor = check; - if (CheckIgnores(player) || Itembans.ItemIsBanned(player.TPlayer.inventory[player.TPlayer.selectedItem].name, player)) + DisableFlags flags = Config.DisableSecondUpdateLogs ? DisableFlags.WriteToConsole : DisableFlags.WriteToLogAndConsole; + + if (CheckIgnores(player)) { - DisableFlags flags = Config.DisableSecondUpdateLogs ? DisableFlags.WriteToConsole : DisableFlags.WriteToLogAndConsole; player.Disable("check ignores failed in OnSecondUpdate()", flags); } + else if (Itembans.ItemIsBanned(player.TPlayer.inventory[player.TPlayer.selectedItem].name, player)) + { + player.Disable($"holding banned item: {player.TPlayer.inventory[player.TPlayer.selectedItem].name}", flags); + player.SendErrorMessage($"You are holding a banned item: {player.TPlayer.inventory[player.TPlayer.selectedItem].name}"); + } } var oldRegion = player.CurrentRegion;