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/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index 4b0a025b..b8910c7e 100755 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -2622,9 +2622,10 @@ namespace TShockAPI || type == ProjectileID.DeathLaser || type == ProjectileID.Landmine || type == ProjectileID.BulletDeadeye || type == ProjectileID.BoulderStaffOfEarth || (type > ProjectileID.ConfettiMelee && type < ProjectileID.SpiritHeal) - || (type >= ProjectileID.FlamingWood && ProjectileID.GreekFire3 <= 328) + || (type >= ProjectileID.FlamingWood && type <= ProjectileID.GreekFire3) || (type >= ProjectileID.PineNeedleHostile && type <= ProjectileID.Spike) - || (type >= ProjectileID.MartianTurretBolt && type <= ProjectileID.RayGunnerLaser)) + || (type >= ProjectileID.MartianTurretBolt && type <= ProjectileID.RayGunnerLaser) + || type == ProjectileID.CultistBossLightningOrb) { TShock.Log.Debug("Certain projectiles have been ignored for cheat detection."); } diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index d6f141d1..c0a8fbe2 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -602,14 +602,6 @@ namespace TShockAPI throw new InvalidOperationException("Invalid value given for command line argument \"-ip\"."); } - break; - } - case "-world": - { - string worldPath = parms[++i]; - Main.instance.SetWorld(worldPath);; - ServerApi.LogWriter.PluginWriteLine(this, string.Format("World set for auto loading: {0}", worldPath), TraceLevel.Verbose); - break; } case "-worldname": @@ -988,7 +980,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)) {