Commits

mfnalex authored and md_5 committed 7189ba63624
#1360: Add Material#isCompostable and Material#getCompostChance
No tags

src/main/java/org/bukkit/craftbukkit/inventory/CraftItemType.java

Modified
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 @Override
170 171 public boolean isRecord() {
171 172 return item instanceof ItemRecord;
172 173 }
173 174
174 175 @Override
175 176 public boolean isFuel() {
176 177 return TileEntityFurnace.isFuel(new net.minecraft.world.item.ItemStack(item));
177 178 }
178 179
180 + @Override
181 + public boolean isCompostable() {
182 + return BlockComposter.COMPOSTABLES.containsKey(item);
183 + }
184 +
185 + @Override
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 @Override
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 // }

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut