diff options
| author | 2024-12-07 07:23:41 +0200 | |
|---|---|---|
| committer | 2024-12-07 07:23:41 +0200 | |
| commit | 042b1a7273c79e8c562606622f384dd0dbd188ba (patch) | |
| tree | 1297d585cb341f835f5c2891f960f2c0175d7c6e /src/main/java/lv/enes/mc/eris_alchemy/utils | |
| parent | Release 0.3.0 (diff) | |
| download | mc-eris-alchemy-042b1a7273c79e8c562606622f384dd0dbd188ba.tar.gz mc-eris-alchemy-042b1a7273c79e8c562606622f384dd0dbd188ba.tar.xz mc-eris-alchemy-042b1a7273c79e8c562606622f384dd0dbd188ba.zip | |
Fix a crash when loading without any other mods present.
Diffstat (limited to 'src/main/java/lv/enes/mc/eris_alchemy/utils')
| -rw-r--r-- | src/main/java/lv/enes/mc/eris_alchemy/utils/IngredientProvider.java | 3 | ||||
| -rw-r--r-- | src/main/java/lv/enes/mc/eris_alchemy/utils/ItemUtils.java | 15 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/utils/IngredientProvider.java b/src/main/java/lv/enes/mc/eris_alchemy/utils/IngredientProvider.java index e859114..6390c88 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/utils/IngredientProvider.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/utils/IngredientProvider.java | |||
| @@ -8,7 +8,6 @@ import net.minecraft.core.registries.Registries; | |||
| 8 | import net.minecraft.resources.ResourceLocation; | 8 | import net.minecraft.resources.ResourceLocation; |
| 9 | import net.minecraft.tags.TagKey; | 9 | import net.minecraft.tags.TagKey; |
| 10 | import net.minecraft.world.item.crafting.Ingredient; | 10 | import net.minecraft.world.item.crafting.Ingredient; |
| 11 | import net.minecraft.world.item.crafting.ShapedRecipe; | ||
| 12 | 11 | ||
| 13 | import java.lang.reflect.Type; | 12 | import java.lang.reflect.Type; |
| 14 | import java.util.function.Supplier; | 13 | import java.util.function.Supplier; |
| @@ -16,7 +15,7 @@ import java.util.function.Supplier; | |||
| 16 | public class IngredientProvider implements JsonDeserializer<Supplier<Ingredient>> { | 15 | public class IngredientProvider implements JsonDeserializer<Supplier<Ingredient>> { |
| 17 | public static Supplier<Ingredient> deserialize(JsonElement el) { | 16 | public static Supplier<Ingredient> deserialize(JsonElement el) { |
| 18 | if (el.isJsonObject()) { | 17 | if (el.isJsonObject()) { |
| 19 | return () -> Ingredient.of(ShapedRecipe.itemStackFromJson(el.getAsJsonObject())); | 18 | return () -> ItemUtils.itemStackFromJson(el.getAsJsonObject()).map(Ingredient::of).orElse(Ingredient.EMPTY); |
| 20 | } else if (el.isJsonPrimitive() && el.getAsJsonPrimitive().isString()) { | 19 | } else if (el.isJsonPrimitive() && el.getAsJsonPrimitive().isString()) { |
| 21 | return deserialize(el.getAsString().strip()); | 20 | return deserialize(el.getAsString().strip()); |
| 22 | } else { | 21 | } else { |
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/utils/ItemUtils.java b/src/main/java/lv/enes/mc/eris_alchemy/utils/ItemUtils.java index 7ac7358..0801d11 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/utils/ItemUtils.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/utils/ItemUtils.java | |||
| @@ -1,12 +1,18 @@ | |||
| 1 | package lv.enes.mc.eris_alchemy.utils; | 1 | package lv.enes.mc.eris_alchemy.utils; |
| 2 | 2 | ||
| 3 | import com.google.gson.JsonObject; | ||
| 4 | import com.google.gson.JsonSyntaxException; | ||
| 5 | import lv.enes.mc.eris_alchemy.ErisAlchemy; | ||
| 3 | import net.minecraft.core.Holder; | 6 | import net.minecraft.core.Holder; |
| 4 | import net.minecraft.core.registries.BuiltInRegistries; | 7 | import net.minecraft.core.registries.BuiltInRegistries; |
| 5 | import net.minecraft.resources.ResourceLocation; | 8 | import net.minecraft.resources.ResourceLocation; |
| 6 | import net.minecraft.world.item.Item; | 9 | import net.minecraft.world.item.Item; |
| 7 | import net.minecraft.world.item.ItemStack; | 10 | import net.minecraft.world.item.ItemStack; |
| 11 | import net.minecraft.world.item.crafting.ShapedRecipe; | ||
| 8 | import net.minecraft.world.level.ItemLike; | 12 | import net.minecraft.world.level.ItemLike; |
| 9 | 13 | ||
| 14 | import java.util.Optional; | ||
| 15 | |||
| 10 | public final class ItemUtils { | 16 | public final class ItemUtils { |
| 11 | public static Item get(ResourceLocation id) { | 17 | public static Item get(ResourceLocation id) { |
| 12 | return BuiltInRegistries.ITEM.get(id); | 18 | return BuiltInRegistries.ITEM.get(id); |
| @@ -24,5 +30,14 @@ public final class ItemUtils { | |||
| 24 | return getId(stack.getItem()); | 30 | return getId(stack.getItem()); |
| 25 | } | 31 | } |
| 26 | 32 | ||
| 33 | public static Optional<ItemStack> itemStackFromJson(JsonObject json) { | ||
| 34 | try { | ||
| 35 | return Optional.of(ShapedRecipe.itemStackFromJson(json)); | ||
| 36 | } catch (JsonSyntaxException ex) { | ||
| 37 | ErisAlchemy.LOGGER.error("Exception while trying to parse item stack from JSON", ex); | ||
| 38 | return Optional.empty(); | ||
| 39 | } | ||
| 40 | } | ||
| 41 | |||
| 27 | private ItemUtils() {} | 42 | private ItemUtils() {} |
| 28 | } | 43 | } |