diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index bde05a79..f243de42 100644 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -111,6 +111,8 @@ namespace TShockAPI {PacketTypes.LiquidSet, HandleLiquidSet}, {PacketTypes.PlayerSpawn, HandleSpawn}, {PacketTypes.SyncPlayers, HandleSync}, + {PacketTypes.ChestGetContents, HandleChest}, + {PacketTypes.SignNew, HandleSign} }; } @@ -571,7 +573,7 @@ namespace TShockAPI { Log.Debug(string.Format("Liquid(PlyXY:{0}_{1}, TileXY:{2}_{3}, Result:{4}_{5}, Amount:{6})", plyX, plyY, tileX, tileY, Math.Abs(plyX - tileX), Math.Abs(plyY - tileY), liquid)); - return Tools.HandleGriefer(args.Player, TShock.Config.LiquidAbuseReason); ; + return Tools.HandleGriefer(args.Player, TShock.Config.LiquidAbuseReason); } if (TShock.Config.SpawnProtection) @@ -709,5 +711,28 @@ namespace TShockAPI return false; } + + private static bool HandleChest(GetDataHandlerArgs args) + { + var x = args.Data.ReadInt32(); + var y = args.Data.ReadInt32(); + if (TShock.Config.RangeChecks && ((Math.Abs(args.Player.TileX - x) > 32) || (Math.Abs(args.Player.TileY - y) > 32))) + { + return Tools.HandleGriefer(args.Player, TShock.Config.RangeCheckBanReason); + } + return false; + } + + private static bool HandleSign(GetDataHandlerArgs args) + { + var id = args.Data.ReadInt16(); + var x = args.Data.ReadInt32(); + var y = args.Data.ReadInt32(); + if (TShock.Config.RangeChecks && ((Math.Abs(args.Player.TileX - x) > 32) || (Math.Abs(args.Player.TileY - y) > 32))) + { + return Tools.HandleGriefer(args.Player, TShock.Config.RangeCheckBanReason); + } + return false; + } } }