package net.minecraft.util.datafix.fixes; import com.google.common.escape.Escaper; import com.google.common.escape.Escapers; import com.mojang.datafixers.schemas.Schema; import com.mojang.serialization.Dynamic; import java.util.Optional; import javax.annotation.Nullable; public class LockComponentPredicateFix extends DataComponentRemainderFix { public static final Escaper ESCAPER = Escapers.builder().addEscape('"', "\\\"").addEscape('\\', "\\\\").build(); public LockComponentPredicateFix(Schema p_370065_) { super(p_370065_, "LockComponentPredicateFix", "minecraft:lock"); } @Nullable @Override protected Dynamic fixComponent(Dynamic p_360989_) { return fixLock(p_360989_); } @Nullable public static Dynamic fixLock(Dynamic p_369566_) { Optional optional = p_369566_.asString().result(); if (optional.isEmpty()) { return null; } else if (optional.get().isEmpty()) { return null; } else { Dynamic dynamic = p_369566_.createString("\"" + ESCAPER.escape(optional.get()) + "\""); Dynamic dynamic1 = p_369566_.emptyMap().set("minecraft:custom_name", dynamic); return p_369566_.emptyMap().set("components", dynamic1); } } }