From 7189ba63624426d09681d6b59bd5637708f7d898 Mon Sep 17 00:00:00 2001 From: mfnalex Date: Wed, 5 Jun 2024 07:15:52 +1000 Subject: [PATCH] #1360: Add Material#isCompostable and Material#getCompostChance --- .../bukkit/craftbukkit/inventory/CraftItemType.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemType.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemType.java index f4d5b624f..fe7cd23ec 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemType.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemType.java @@ -10,6 +10,7 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemBlock; import net.minecraft.world.item.ItemRecord; import net.minecraft.world.item.component.ItemAttributeModifiers; +import net.minecraft.world.level.block.BlockComposter; import net.minecraft.world.level.block.entity.TileEntityFurnace; import org.bukkit.Material; import org.bukkit.NamespacedKey; @@ -176,6 +177,17 @@ public class CraftItemType implements ItemType.Typed, Han return TileEntityFurnace.isFuel(new net.minecraft.world.item.ItemStack(item)); } + @Override + public boolean isCompostable() { + return BlockComposter.COMPOSTABLES.containsKey(item); + } + + @Override + public float getCompostChance() { + Preconditions.checkArgument(isCompostable(), "The item type " + getKey() + " is not compostable"); + return BlockComposter.COMPOSTABLES.getFloat(item); + } + @Override public ItemType getCraftingRemainingItem() { Item expectedItem = item.getCraftingRemainingItem();