package net.minecraft.util.datafix.fixes; import com.mojang.datafixers.DSL; import com.mojang.datafixers.DataFixUtils; import com.mojang.datafixers.Typed; import com.mojang.datafixers.DSL.TypeReference; import com.mojang.datafixers.schemas.Schema; import java.util.Map; public class VariantRenameFix extends NamedEntityFix { private final Map renames; public VariantRenameFix(final Schema outputSchema, final String name, final TypeReference type, final String entityName, final Map renames) { super(outputSchema, false, name, type, entityName); this.renames = renames; } @Override protected Typed fix(final Typed typed) { return typed.update( DSL.remainderFinder(), remainder -> remainder.update( "variant", variant -> DataFixUtils.orElse(variant.asString().map(v -> variant.createString((String)this.renames.getOrDefault(v, v))).result(), variant) ) ); } }