13
0
geforkt von Mirrors/Paper

Don't throw NPE for unplaced blockstate on #getDrops (#10366)

Dieser Commit ist enthalten in:
Lulu13022002 2024-04-06 23:26:56 +02:00
Ursprung 8a2bd44f1f
Commit 2089697232
2 geänderte Dateien mit 10 neuen und 12 gelöschten Zeilen

Datei anzeigen

@ -19,9 +19,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ * 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
+ * @throws IllegalStateException if this block state is not placed
+ */
+ @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
@ -29,9 +32,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ *
+ * @param tool The tool or item in hand used for digging
+ * @return an immutable list of dropped items for the block state
+ * @throws IllegalStateException if this block state is not placed
+ */
+ @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
@ -40,6 +46,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ * @param tool The tool or item in hand used for digging
+ * @param entity the entity destroying the block
+ * @return an immutable list of dropped items for the block state
+ * @throws IllegalStateException if this block state is not placed
+ */
+ @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);

Datei anzeigen

@ -16,17 +16,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
}
+
+ @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) {
+ this.requirePlaced();
+ net.minecraft.world.item.ItemStack nms = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item);
+
+ // Modelled off EntityHuman#hasBlock