From f814d568e507be3d166df39a93f32d201502d7fd Mon Sep 17 00:00:00 2001 From: Nightklp <120942242+Nightklpgaming@users.noreply.github.com> Date: Thu, 3 Apr 2025 16:21:57 +0800 Subject: [PATCH 1/3] Update Bouncer.cs return a item when a item frame was interacted in protected region you do not have permission with --- TShockAPI/Bouncer.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/TShockAPI/Bouncer.cs b/TShockAPI/Bouncer.cs index 89ccf7bc..e56c6487 100644 --- a/TShockAPI/Bouncer.cs +++ b/TShockAPI/Bouncer.cs @@ -2491,6 +2491,11 @@ namespace TShockAPI if (!args.Player.HasBuildPermission(args.X, args.Y)) { + int num = Item.NewItem(new EntitySource_DebugCommand(), (args.X * 16) + 8, (args.Y * 16) + 8, args.Player.TPlayer.width, args.Player.TPlayer.height, args.ItemID, args.Stack, noBroadcast: true, args.Prefix, noGrabDelay: true); + Main.item[num].playerIndexTheItemIsReservedFor = args.Player.Index; + NetMessage.SendData((int)PacketTypes.ItemDrop, -1, -1, NetworkText.Empty, num, 1f); + NetMessage.SendData((int)PacketTypes.ItemOwner, -1, -1, NetworkText.Empty, num); + TShock.Log.ConsoleDebug(GetString("Bouncer / OnPlaceItemFrame rejected permissions from {0}", args.Player.Name)); NetMessage.SendData((int)PacketTypes.UpdateTileEntity, -1, -1, NetworkText.Empty, args.ItemFrame.ID, 0, 1); args.Handled = true; From 3af71c70fe4a32a460d32cb4f39efa0b3a45f5c8 Mon Sep 17 00:00:00 2001 From: Nightklp <120942242+Nightklpgaming@users.noreply.github.com> Date: Fri, 4 Apr 2025 12:48:09 +0800 Subject: [PATCH 2/3] Update TShockAPI/Bouncer.cs Co-authored-by: Arthri <41360489+Arthri@users.noreply.github.com> --- TShockAPI/Bouncer.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TShockAPI/Bouncer.cs b/TShockAPI/Bouncer.cs index e56c6487..13983171 100644 --- a/TShockAPI/Bouncer.cs +++ b/TShockAPI/Bouncer.cs @@ -2493,8 +2493,8 @@ namespace TShockAPI { int num = Item.NewItem(new EntitySource_DebugCommand(), (args.X * 16) + 8, (args.Y * 16) + 8, args.Player.TPlayer.width, args.Player.TPlayer.height, args.ItemID, args.Stack, noBroadcast: true, args.Prefix, noGrabDelay: true); Main.item[num].playerIndexTheItemIsReservedFor = args.Player.Index; - NetMessage.SendData((int)PacketTypes.ItemDrop, -1, -1, NetworkText.Empty, num, 1f); - NetMessage.SendData((int)PacketTypes.ItemOwner, -1, -1, NetworkText.Empty, num); + NetMessage.SendData((int)PacketTypes.ItemDrop, args.Player.Index, -1, NetworkText.Empty, num, 1f); + NetMessage.SendData((int)PacketTypes.ItemOwner, args.Player.Index, -1, NetworkText.Empty, num); TShock.Log.ConsoleDebug(GetString("Bouncer / OnPlaceItemFrame rejected permissions from {0}", args.Player.Name)); NetMessage.SendData((int)PacketTypes.UpdateTileEntity, -1, -1, NetworkText.Empty, args.ItemFrame.ID, 0, 1); From 43daa67465d15f1b1b6603132713b2adc035eeea Mon Sep 17 00:00:00 2001 From: Nightklp <120942242+Nightklpgaming@users.noreply.github.com> Date: Fri, 4 Apr 2025 12:49:31 +0800 Subject: [PATCH 3/3] Update TShockAPI/Bouncer.cs Co-authored-by: Arthri <41360489+Arthri@users.noreply.github.com> --- TShockAPI/Bouncer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TShockAPI/Bouncer.cs b/TShockAPI/Bouncer.cs index 13983171..08706650 100644 --- a/TShockAPI/Bouncer.cs +++ b/TShockAPI/Bouncer.cs @@ -2491,7 +2491,7 @@ namespace TShockAPI if (!args.Player.HasBuildPermission(args.X, args.Y)) { - int num = Item.NewItem(new EntitySource_DebugCommand(), (args.X * 16) + 8, (args.Y * 16) + 8, args.Player.TPlayer.width, args.Player.TPlayer.height, args.ItemID, args.Stack, noBroadcast: true, args.Prefix, noGrabDelay: true); + int num = Item.NewItem(null, (args.X * 16) + 8, (args.Y * 16) + 8, args.Player.TPlayer.width, args.Player.TPlayer.height, args.ItemID, args.Stack, noBroadcast: true, args.Prefix, noGrabDelay: true); Main.item[num].playerIndexTheItemIsReservedFor = args.Player.Index; NetMessage.SendData((int)PacketTypes.ItemDrop, args.Player.Index, -1, NetworkText.Empty, num, 1f); NetMessage.SendData((int)PacketTypes.ItemOwner, args.Player.Index, -1, NetworkText.Empty, num);