diff --git a/patches/minecraft/net/minecraft/advancements/DisplayInfo.java.patch b/patches/minecraft/net/minecraft/advancements/DisplayInfo.java.patch new file mode 100644 index 000000000..e04d10241 --- /dev/null +++ b/patches/minecraft/net/minecraft/advancements/DisplayInfo.java.patch @@ -0,0 +1,13 @@ +--- ../src-base/minecraft/net/minecraft/advancements/DisplayInfo.java ++++ ../src-work/minecraft/net/minecraft/advancements/DisplayInfo.java +@@ -132,7 +132,9 @@ + { + Item item = JsonUtils.func_188180_i(p_193221_0_, "item"); + int i = JsonUtils.func_151208_a(p_193221_0_, "data", 0); +- return new ItemStack(item, 1, i); ++ ItemStack ret = new ItemStack(item, 1, i); ++ ret.func_77982_d(net.minecraftforge.common.util.JsonUtils.readNBT(p_193221_0_, "nbt")); ++ return ret; + } + } + diff --git a/src/main/java/net/minecraftforge/common/util/JsonUtils.java b/src/main/java/net/minecraftforge/common/util/JsonUtils.java index e399a6f1b..c74fdf85b 100644 --- a/src/main/java/net/minecraftforge/common/util/JsonUtils.java +++ b/src/main/java/net/minecraftforge/common/util/JsonUtils.java @@ -31,9 +31,16 @@ import com.google.common.reflect.TypeToken; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import com.google.gson.JsonParseException; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; +import com.google.gson.JsonSyntaxException; +import net.minecraft.nbt.JsonToNBT; +import net.minecraft.nbt.NBTException; +import net.minecraft.nbt.NBTTagCompound; + +import javax.annotation.Nullable; public class JsonUtils { @@ -88,6 +95,24 @@ public class JsonUtils } } + @Nullable + public static NBTTagCompound readNBT(JsonObject json, String key) + { + if (net.minecraft.util.JsonUtils.hasField(json, key)) + { + try + { + return JsonToNBT.getTagFromJson(net.minecraft.util.JsonUtils.getString(json, key)); + } catch (NBTException e) + { + throw new JsonSyntaxException("Malformed NBT tag", e); + } + } else + { + return null; + } + } + @SuppressWarnings({ "serial", "unchecked" }) private static TypeToken> mapOf(final Type arg) {