Move OnChestItemChange to Bouncer
Fix issue where TShock didn't properly do anti-cheat on chest item changes.
This commit is contained in:
parent
bcc1816071
commit
845fc3b7c8
3 changed files with 43 additions and 24 deletions
|
|
@ -42,6 +42,7 @@ namespace TShockAPI
|
|||
{
|
||||
// Setup hooks
|
||||
|
||||
GetDataHandlers.ChestItemChange.Register(OnChestItemChange);
|
||||
GetDataHandlers.NPCHome.Register(OnUpdateNPCHome);
|
||||
GetDataHandlers.ChestOpen.Register(OnChestOpen);
|
||||
GetDataHandlers.PlaceChest.Register(OnPlaceChest);
|
||||
|
|
@ -56,6 +57,40 @@ namespace TShockAPI
|
|||
GetDataHandlers.TileEdit.Register(OnTileEdit);
|
||||
}
|
||||
|
||||
internal void OnChestItemChange(object sender, GetDataHandlers.ChestItemEventArgs args)
|
||||
{
|
||||
short id = args.ID;
|
||||
byte slot = args.Slot;
|
||||
short stacks = args.Stacks;
|
||||
byte prefix = args.Prefix;
|
||||
short type = args.Type;
|
||||
|
||||
if (args.Player.TPlayer.chest != id)
|
||||
{
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
if (TShock.CheckIgnores(args.Player))
|
||||
{
|
||||
args.Player.SendData(PacketTypes.ChestItem, "", id, slot);
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
if (TShock.CheckTilePermission(args.Player, Main.chest[id].x, Main.chest[id].y) && TShock.Config.RegionProtectChests)
|
||||
{
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
if (TShock.CheckRangePermission(args.Player, Main.chest[id].x, Main.chest[id].y))
|
||||
{
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>The Bouncer handler for when an NPC is rehomed.</summary>
|
||||
/// <param name="sender">The object that triggered the event.</param>
|
||||
/// <param name="args">The packet arguments that the event has.</param>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue