--- 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;