diff --git a/TShockAPI/ConfigFile.cs b/TShockAPI/ConfigFile.cs index 858210ca..f8009983 100644 --- a/TShockAPI/ConfigFile.cs +++ b/TShockAPI/ConfigFile.cs @@ -230,6 +230,9 @@ namespace TShockAPI [Description("Prevent banks on SSI")] public bool DisablePiggybanksOnSSI = false; + [Description("Prevent players from interacting with the world if dead")] public bool PreventDeadModification = + false; + public static ConfigFile Read(string path) { if (!File.Exists(path)) diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index 46d7e92f..055a8e0e 100644 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -1649,6 +1649,9 @@ namespace TShockAPI if (tileX < 0 || tileX >= Main.maxTilesX || tileY < 0 || tileY >= Main.maxTilesY) return false; + if (args.Player.Dead && TShock.Config.PreventDeadModification) + return true; + if (args.Player.AwaitingName) { var protectedregions = TShock.Regions.InAreaRegionName(tileX, tileY); @@ -2221,6 +2224,9 @@ namespace TShockAPI if (tileX < 0 || tileX >= Main.maxTilesX || tileY < 0 || tileY >= Main.maxTilesY) return false; + if (args.Player.Dead && TShock.Config.PreventDeadModification) + return true; + if (TShock.CheckIgnores(args.Player)) { args.Player.SendTileSquare(tileX, tileY);