mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 23:10:16 +01:00
Don't throw NPE for unplaced blockstate on #getDrops (#10366)
This commit is contained in:
parent
bbee11fb0e
commit
d8456ee65b
2 changed files with 14 additions and 16 deletions
|
@ -7,10 +7,10 @@ Originally added isPreferredTool to BlockData but
|
||||||
upstream added that.
|
upstream added that.
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/block/BlockState.java b/src/main/java/org/bukkit/block/BlockState.java
|
diff --git a/src/main/java/org/bukkit/block/BlockState.java b/src/main/java/org/bukkit/block/BlockState.java
|
||||||
index c439cf0bb6c50db2b3304c60e50046f096392f9f..ef35316fa66ac8d9c7836b9c8af56dcefbf6ff2e 100644
|
index c439cf0bb6c50db2b3304c60e50046f096392f9f..19837f0eae67854f48e777bc7d4a13b53fa4b436 100644
|
||||||
--- a/src/main/java/org/bukkit/block/BlockState.java
|
--- a/src/main/java/org/bukkit/block/BlockState.java
|
||||||
+++ b/src/main/java/org/bukkit/block/BlockState.java
|
+++ b/src/main/java/org/bukkit/block/BlockState.java
|
||||||
@@ -243,5 +243,34 @@ public interface BlockState extends Metadatable {
|
@@ -243,5 +243,41 @@ public interface BlockState extends Metadatable {
|
||||||
* @return true if collidable
|
* @return true if collidable
|
||||||
*/
|
*/
|
||||||
boolean isCollidable();
|
boolean isCollidable();
|
||||||
|
@ -19,9 +19,12 @@ index c439cf0bb6c50db2b3304c60e50046f096392f9f..ef35316fa66ac8d9c7836b9c8af56dce
|
||||||
+ * Returns an immutable list of items which would drop by destroying this block state.
|
+ * Returns an immutable list of items which would drop by destroying this block state.
|
||||||
+ *
|
+ *
|
||||||
+ * @return an immutable list of dropped items for the block state
|
+ * @return an immutable list of dropped items for the block state
|
||||||
|
+ * @throws IllegalStateException if this block state is not placed
|
||||||
+ */
|
+ */
|
||||||
+ @NotNull
|
+ @NotNull
|
||||||
+ java.util.@org.jetbrains.annotations.Unmodifiable Collection<org.bukkit.inventory.ItemStack> getDrops();
|
+ default java.util.@org.jetbrains.annotations.Unmodifiable Collection<org.bukkit.inventory.ItemStack> getDrops() {
|
||||||
|
+ return this.getDrops(null);
|
||||||
|
+ }
|
||||||
+
|
+
|
||||||
+ /**
|
+ /**
|
||||||
+ * Returns an immutable list of items which would drop by destroying this block state
|
+ * Returns an immutable list of items which would drop by destroying this block state
|
||||||
|
@ -29,9 +32,12 @@ index c439cf0bb6c50db2b3304c60e50046f096392f9f..ef35316fa66ac8d9c7836b9c8af56dce
|
||||||
+ *
|
+ *
|
||||||
+ * @param tool The tool or item in hand used for digging
|
+ * @param tool The tool or item in hand used for digging
|
||||||
+ * @return an immutable list of dropped items for the block state
|
+ * @return an immutable list of dropped items for the block state
|
||||||
|
+ * @throws IllegalStateException if this block state is not placed
|
||||||
+ */
|
+ */
|
||||||
+ @NotNull
|
+ @NotNull
|
||||||
+ java.util.@org.jetbrains.annotations.Unmodifiable Collection<org.bukkit.inventory.ItemStack> getDrops(@Nullable org.bukkit.inventory.ItemStack tool);
|
+ default java.util.@org.jetbrains.annotations.Unmodifiable Collection<org.bukkit.inventory.ItemStack> getDrops(@Nullable org.bukkit.inventory.ItemStack tool) {
|
||||||
|
+ return this.getDrops(tool, null);
|
||||||
|
+ }
|
||||||
+
|
+
|
||||||
+ /**
|
+ /**
|
||||||
+ * Returns an immutable list of items which would drop by the entity destroying this
|
+ * Returns an immutable list of items which would drop by the entity destroying this
|
||||||
|
@ -40,6 +46,7 @@ index c439cf0bb6c50db2b3304c60e50046f096392f9f..ef35316fa66ac8d9c7836b9c8af56dce
|
||||||
+ * @param tool The tool or item in hand used for digging
|
+ * @param tool The tool or item in hand used for digging
|
||||||
+ * @param entity the entity destroying the block
|
+ * @param entity the entity destroying the block
|
||||||
+ * @return an immutable list of dropped items for the block state
|
+ * @return an immutable list of dropped items for the block state
|
||||||
|
+ * @throws IllegalStateException if this block state is not placed
|
||||||
+ */
|
+ */
|
||||||
+ @NotNull
|
+ @NotNull
|
||||||
+ java.util.@org.jetbrains.annotations.Unmodifiable Collection<org.bukkit.inventory.ItemStack> getDrops(@Nullable org.bukkit.inventory.ItemStack tool, @Nullable org.bukkit.entity.Entity entity);
|
+ java.util.@org.jetbrains.annotations.Unmodifiable Collection<org.bukkit.inventory.ItemStack> getDrops(@Nullable org.bukkit.inventory.ItemStack tool, @Nullable org.bukkit.entity.Entity entity);
|
||||||
|
|
|
@ -7,26 +7,17 @@ Originally added isPreferredTool to BlockData but
|
||||||
upstream added that.
|
upstream added that.
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
|
||||||
index 08716e757b2e100f7bc47a046f02db664d882aba..d11d854ae90b99aa2ce227994d07fe1fe9b4a60a 100644
|
index 08716e757b2e100f7bc47a046f02db664d882aba..2cfaa59a0bb6b5253b5a8dcc38ae65e0f085fd3f 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
|
||||||
@@ -337,5 +337,33 @@ public class CraftBlockState implements BlockState {
|
@@ -337,5 +337,24 @@ public class CraftBlockState implements BlockState {
|
||||||
public boolean isCollidable() {
|
public boolean isCollidable() {
|
||||||
return this.data.getBlock().hasCollision;
|
return this.data.getBlock().hasCollision;
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public java.util.Collection<org.bukkit.inventory.ItemStack> getDrops() {
|
|
||||||
+ return this.getDrops(null);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Override
|
|
||||||
+ public java.util.Collection<org.bukkit.inventory.ItemStack> getDrops(org.bukkit.inventory.ItemStack item) {
|
|
||||||
+ return this.getDrops(item, null);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Override
|
|
||||||
+ public java.util.Collection<org.bukkit.inventory.ItemStack> getDrops(org.bukkit.inventory.ItemStack item, org.bukkit.entity.Entity entity) {
|
+ public java.util.Collection<org.bukkit.inventory.ItemStack> getDrops(org.bukkit.inventory.ItemStack item, org.bukkit.entity.Entity entity) {
|
||||||
|
+ this.requirePlaced();
|
||||||
+ net.minecraft.world.item.ItemStack nms = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item);
|
+ net.minecraft.world.item.ItemStack nms = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item);
|
||||||
+
|
+
|
||||||
+ // Modelled off EntityHuman#hasBlock
|
+ // Modelled off EntityHuman#hasBlock
|
||||||
|
|
Loading…
Reference in a new issue