From 3f0514f98434fffe5a6ff4cd96751d66c8f0e3f5 Mon Sep 17 00:00:00 2001 From: lexikiq Date: Mon, 10 May 2021 02:50:51 -0400 Subject: [PATCH] Check if target block is replaceable --- patches/server/0006-Add-CraftItemStack-canPlaceOn.patch | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/patches/server/0006-Add-CraftItemStack-canPlaceOn.patch b/patches/server/0006-Add-CraftItemStack-canPlaceOn.patch index 9b277b4..b61b935 100644 --- a/patches/server/0006-Add-CraftItemStack-canPlaceOn.patch +++ b/patches/server/0006-Add-CraftItemStack-canPlaceOn.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: lexikiq -Date: Mon, 10 May 2021 01:58:38 -0400 +Date: Mon, 10 May 2021 02:50:34 -0400 Subject: [PATCH] Add CraftItemStack#canPlaceOn @@ -30,7 +30,7 @@ index 2cb451db6ca23290f700dc428a7622f64fb90b97..1763ada73e4ef422f95eb5c3f42f19d7 this.a = true; this.b = movingobjectpositionblock.getBlockPosition().shift(movingobjectpositionblock.getDirection()); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 09d7a86b5f6cffdf6664ad657dd4f8dd8eabdd70..faf174f7cf48579203822e86df57a58b199a7b7b 100644 +index 09d7a86b5f6cffdf6664ad657dd4f8dd8eabdd70..192131cd2bbc872eb284d998ed555e1ae2d18888 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -3,21 +3,41 @@ package org.bukkit.craftbukkit.inventory; @@ -75,7 +75,7 @@ index 09d7a86b5f6cffdf6664ad657dd4f8dd8eabdd70..faf174f7cf48579203822e86df57a58b @DelegateDeserialization(ItemStack.class) public final class CraftItemStack extends ItemStack { -@@ -105,6 +125,55 @@ public final class CraftItemStack extends ItemStack { +@@ -105,6 +125,57 @@ public final class CraftItemStack extends ItemStack { setItemMeta(itemMeta); } @@ -103,6 +103,8 @@ index 09d7a86b5f6cffdf6664ad657dd4f8dd8eabdd70..faf174f7cf48579203822e86df57a58b + EntityHuman human = player != null ? (EntityHuman) ((CraftEntity) player).getHandle() : null; + CraftBlock craftBlock = (CraftBlock) block; + CraftBlock relativeBlock = (CraftBlock) block.getRelative(face); ++ if (!relativeBlock.isReplaceable()) ++ return false; + Location playerLoc = player != null ? player.getLocation() : relativeBlock.getLocation(); + EnumDirection direction = EnumDirection.valueOf(face.name()); +