package lv.enes.mc.eris_alchemy.utils; import com.google.gson.JsonObject; import com.google.gson.JsonSyntaxException; import lv.enes.mc.eris_alchemy.ErisAlchemy; import net.minecraft.core.Holder; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.ShapedRecipe; import net.minecraft.world.level.ItemLike; import java.util.Optional; public final class ItemUtils { public static Item get(ResourceLocation id) { return BuiltInRegistries.ITEM.get(id); } public static ResourceLocation getId(Holder holder) { return getId(holder.value()); } public static ResourceLocation getId(ItemLike item) { return BuiltInRegistries.ITEM.getKey(item.asItem()); } public static ResourceLocation getId(ItemStack stack) { return getId(stack.getItem()); } public static Optional itemStackFromJson(JsonObject json) { try { return Optional.of(ShapedRecipe.itemStackFromJson(json)); } catch (JsonSyntaxException ex) { ErisAlchemy.LOGGER.warn("Exception while trying to parse item stack from JSON", ex); return Optional.empty(); } } private ItemUtils() {} }