From 809f8b7b3a44ae93a98d2dfcb46818209e237db6 Mon Sep 17 00:00:00 2001 From: ProfessorXZ Date: Thu, 28 Jul 2016 22:41:37 +0200 Subject: [PATCH] Fixes #1251 --- TShockAPI/GetDataHandlers.cs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index 0e3ca3b7..526f1f0b 100755 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -1254,6 +1254,7 @@ namespace TShockAPI { PacketTypes.GemLockToggle, HandleGemLockToggle }, { PacketTypes.CatchNPC, HandleCatchNpc }, { PacketTypes.KillPortal, HandleKillPortal }, + { PacketTypes.PlaceTileEntity, HandlePlaceTileEntity }, { PacketTypes.ToggleParty, HandleToggleParty } }; } @@ -4108,6 +4109,37 @@ namespace TShockAPI return false; } + private static bool HandlePlaceTileEntity(GetDataHandlerArgs args) + { + var x = args.Data.ReadInt16(); + var y = args.Data.ReadInt16(); + var type = args.Data.ReadByte(); + + if (TShock.TileBans.TileIsBanned((short)TileID.LogicSensor, args.Player)) + { + args.Player.SendTileSquare(x, y, 1); + args.Player.SendErrorMessage("You do not have permission to place Logic Sensors."); + return true; + } + + if (TShock.CheckIgnores(args.Player)) + { + return true; + } + + if (TShock.CheckTilePermission(args.Player, x, y)) + { + return true; + } + + if (TShock.CheckRangePermission(args.Player, x, y)) + { + return true; + } + + return false; + } + private static bool HandleToggleParty(GetDataHandlerArgs args) { if (args.Player != null && !args.Player.HasPermission(Permissions.toggleparty))