package net.minecraft.util.datafix.fixes; import com.mojang.datafixers.Typed; import com.mojang.datafixers.schemas.Schema; import com.mojang.serialization.Dynamic; import java.util.Optional; import net.minecraft.Util; public class OminousBannerRenameFix extends ItemStackTagFix { public OminousBannerRenameFix(Schema schema) { super(schema, "OminousBannerRenameFix", string -> string.equals("minecraft:white_banner")); } private Dynamic fixItemStackTag(Dynamic data) { return data.update( "display", dynamic -> dynamic.update( "Name", dynamicx -> { Optional optional = dynamicx.asString().result(); return optional.isPresent() ? dynamicx.createString( ((String)optional.get()).replace("\"translate\":\"block.minecraft.illager_banner\"", "\"translate\":\"block.minecraft.ominous_banner\"") ) : dynamicx; } ) ); } @Override protected Typed fixItemStackTag(Typed data) { return Util.writeAndReadTypedOrThrow(data, data.getType(), this::fixItemStackTag); } }