Add getDrops to BlockState

Originally added isPreferredTool to BlockData but
upstream added that.
This commit is contained in:
MelnCat 2022-08-12 23:24:53 -07:00
parent dc61471a8c
commit 2b86699483

View file

@ -253,5 +253,41 @@ public interface BlockState extends Metadatable {
* @return true if collidable * @return true if collidable
*/ */
boolean isCollidable(); boolean isCollidable();
/**
* 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
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
* with a specific tool
*
* @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
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
* block state with a specific tool
*
* @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);
// Paper end // Paper end
} }