summaryrefslogtreecommitdiff
path: root/src/main/java/lv/enes/mc/eris_alchemy/utils
diff options
context:
space:
mode:
authorGravatar Uko Koknevics2024-12-07 07:23:41 +0200
committerGravatar Uko Koknevics2024-12-07 07:23:41 +0200
commit042b1a7273c79e8c562606622f384dd0dbd188ba (patch)
tree1297d585cb341f835f5c2891f960f2c0175d7c6e /src/main/java/lv/enes/mc/eris_alchemy/utils
parentRelease 0.3.0 (diff)
downloadmc-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.java3
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/utils/ItemUtils.java15
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;
8import net.minecraft.resources.ResourceLocation; 8import net.minecraft.resources.ResourceLocation;
9import net.minecraft.tags.TagKey; 9import net.minecraft.tags.TagKey;
10import net.minecraft.world.item.crafting.Ingredient; 10import net.minecraft.world.item.crafting.Ingredient;
11import net.minecraft.world.item.crafting.ShapedRecipe;
12 11
13import java.lang.reflect.Type; 12import java.lang.reflect.Type;
14import java.util.function.Supplier; 13import java.util.function.Supplier;
@@ -16,7 +15,7 @@ import java.util.function.Supplier;
16public class IngredientProvider implements JsonDeserializer<Supplier<Ingredient>> { 15public 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 @@
1package lv.enes.mc.eris_alchemy.utils; 1package lv.enes.mc.eris_alchemy.utils;
2 2
3import com.google.gson.JsonObject;
4import com.google.gson.JsonSyntaxException;
5import lv.enes.mc.eris_alchemy.ErisAlchemy;
3import net.minecraft.core.Holder; 6import net.minecraft.core.Holder;
4import net.minecraft.core.registries.BuiltInRegistries; 7import net.minecraft.core.registries.BuiltInRegistries;
5import net.minecraft.resources.ResourceLocation; 8import net.minecraft.resources.ResourceLocation;
6import net.minecraft.world.item.Item; 9import net.minecraft.world.item.Item;
7import net.minecraft.world.item.ItemStack; 10import net.minecraft.world.item.ItemStack;
11import net.minecraft.world.item.crafting.ShapedRecipe;
8import net.minecraft.world.level.ItemLike; 12import net.minecraft.world.level.ItemLike;
9 13
14import java.util.Optional;
15
10public final class ItemUtils { 16public 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}