Commits
mfnalex authored and md_5 committed 7189ba63624
3 3 | import com.google.common.base.Preconditions; |
4 4 | import com.google.common.collect.ImmutableMultimap; |
5 5 | import com.google.common.collect.Multimap; |
6 6 | import java.util.function.Consumer; |
7 7 | import net.minecraft.core.component.DataComponents; |
8 8 | import net.minecraft.core.registries.Registries; |
9 9 | import net.minecraft.world.item.Item; |
10 10 | import net.minecraft.world.item.ItemBlock; |
11 11 | import net.minecraft.world.item.ItemRecord; |
12 12 | import net.minecraft.world.item.component.ItemAttributeModifiers; |
13 + | import net.minecraft.world.level.block.BlockComposter; |
13 14 | import net.minecraft.world.level.block.entity.TileEntityFurnace; |
14 15 | import org.bukkit.Material; |
15 16 | import org.bukkit.NamespacedKey; |
16 17 | import org.bukkit.Registry; |
17 18 | import org.bukkit.World; |
18 19 | import org.bukkit.attribute.Attribute; |
19 20 | import org.bukkit.attribute.AttributeModifier; |
20 21 | import org.bukkit.block.BlockType; |
21 22 | import org.bukkit.craftbukkit.CraftEquipmentSlot; |
22 23 | import org.bukkit.craftbukkit.CraftRegistry; |
169 170 | |
170 171 | public boolean isRecord() { |
171 172 | return item instanceof ItemRecord; |
172 173 | } |
173 174 | |
174 175 | |
175 176 | public boolean isFuel() { |
176 177 | return TileEntityFurnace.isFuel(new net.minecraft.world.item.ItemStack(item)); |
177 178 | } |
178 179 | |
180 + | |
181 + | public boolean isCompostable() { |
182 + | return BlockComposter.COMPOSTABLES.containsKey(item); |
183 + | } |
184 + | |
185 + | |
186 + | public float getCompostChance() { |
187 + | Preconditions.checkArgument(isCompostable(), "The item type " + getKey() + " is not compostable"); |
188 + | return BlockComposter.COMPOSTABLES.getFloat(item); |
189 + | } |
190 + | |
179 191 | |
180 192 | public ItemType getCraftingRemainingItem() { |
181 193 | Item expectedItem = item.getCraftingRemainingItem(); |
182 194 | return expectedItem == null ? null : minecraftToBukkitNew(expectedItem); |
183 195 | } |
184 196 | |
185 197 | // @Override |
186 198 | // public EquipmentSlot getEquipmentSlot() { |
187 199 | // return CraftEquipmentSlot.getSlot(EntityInsentient.getEquipmentSlotForItem(CraftItemStack.asNMSCopy(ItemStack.of(this)))); |
188 200 | // } |