--- a/net/minecraft/server/DataConverterMap.java +++ b/net/minecraft/server/DataConverterMap.java @@ -22,7 +22,7 @@ public TypeRewriteRule makeRule() { Type type = this.getInputSchema().getType(DataConverterTypes.ITEM_STACK); OpticFinder opticfinder = DSL.fieldFinder("id", DSL.named(DataConverterTypes.q.typeName(), DSL.namespacedString())); - OpticFinder opticfinder1 = type.findField("tag"); + OpticFinder<?> opticfinder1 = type.findField("tag"); // CraftBukkit - decompile error return this.fixTypeEverywhereTyped("ItemInstanceMapIdFix", type, (typed) -> { Optional optional = typed.getOptional(opticfinder); @@ -32,7 +32,7 @@ Typed typed1 = typed.getOrCreateTyped(opticfinder1); Dynamic dynamic1 = (Dynamic) typed1.get(DSL.remainderFinder()); - dynamic1 = dynamic1.set("map", dynamic1.createInt(dynamic.getInt("Damage"))); + if (!dynamic1.get("map").isPresent()) dynamic1 = dynamic1.set("map", dynamic1.createInt(dynamic.getInt("Damage"))); // CraftBukkit return typed.set(opticfinder1, typed1.set(DSL.remainderFinder(), dynamic1)); } else { return typed;