Files
CatServer/patches/net/minecraft/advancements/critereon/ItemPredicate.java.patch
2019-02-24 22:29:41 +08:00

17 lines
1.1 KiB
Diff

--- ../src-base/minecraft/net/minecraft/advancements/critereon/ItemPredicate.java
+++ ../src-work/minecraft/net/minecraft/advancements/critereon/ItemPredicate.java
@@ -104,6 +104,13 @@
if (element != null && !element.isJsonNull())
{
JsonObject jsonobject = JsonUtils.getJsonObject(element, "item");
+ if (jsonobject.has("type"))
+ {
+ final ResourceLocation rl = new ResourceLocation(JsonUtils.getString(jsonobject, "type"));
+ final Map<ResourceLocation, java.util.function.Function<JsonObject, ItemPredicate>> map = net.minecraftforge.advancements.critereon.ItemPredicates.getPredicates();
+ if (map.containsKey(rl)) return map.get(rl).apply(jsonobject);
+ else throw new JsonSyntaxException("There is no ItemPredicate of type "+rl);
+ }
MinMaxBounds minmaxbounds = MinMaxBounds.deserialize(jsonobject.get("count"));
MinMaxBounds minmaxbounds1 = MinMaxBounds.deserialize(jsonobject.get("durability"));
Integer integer = jsonobject.has("data") ? JsonUtils.getInt(jsonobject, "data") : null;