Files
paper-mc/paper-server/patches/sources/net/minecraft/util/datafix/DataFixers.java.patch
Bjarne Koll 4b6fae1079 1.21.6-pre2
2025-06-02 17:02:22 +02:00

28 lines
1.6 KiB
Diff

--- a/net/minecraft/util/datafix/DataFixers.java
+++ b/net/minecraft/util/datafix/DataFixers.java
@@ -515,6 +_,24 @@
Schema schema44 = builder.addSchema(1456, SAME_NAMESPACED);
builder.addFixer(new EntityItemFrameDirectionFix(schema44, false));
Schema schema45 = builder.addSchema(1458, V1458::new);
+ // CraftBukkit start
+ // API allows setting player custom names, so we need to convert them.
+ // This does *not* handle upgrades in any other version, but generally those shouldn't need conversion.
+ builder.addFixer(new DataFix(schema45, false) {
+ @Override
+ protected TypeRewriteRule makeRule() {
+ return this.fixTypeEverywhereTyped("Player CustomName", this.getInputSchema().getType(References.PLAYER), typed -> {
+ return typed.update(DSL.remainderFinder(), dynamic -> {
+ final String customName = dynamic.get("CustomName").asString("");
+ if (customName.isEmpty()) {
+ return dynamic.remove("CustomName");
+ }
+ return dynamic.set("CustomName", LegacyComponentDataFixUtils.createPlainTextComponent(dynamic.getOps(), customName));
+ });
+ });
+ }
+ });
+ // CraftBukkit end
builder.addFixer(new EntityCustomNameToComponentFix(schema45));
builder.addFixer(new ItemCustomNameToComponentFix(schema45));
builder.addFixer(new BlockEntityCustomNameToComponentFix(schema45));