Check if target block is replaceable

This commit is contained in:
lexikiq
2021-05-10 02:50:51 -04:00
parent 5a9c92b1c1
commit 3f0514f984

View File

@@ -1,6 +1,6 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: lexikiq <noellekiq@gmail.com>
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());
+