minecraft-src/net/minecraft/util/datafix/fixes/SavedDataUUIDFix.java
2025-07-04 01:41:11 +03:00

47 lines
1.3 KiB
Java

package net.minecraft.util.datafix.fixes;
import com.mojang.datafixers.DSL;
import com.mojang.datafixers.TypeRewriteRule;
import com.mojang.datafixers.schemas.Schema;
import com.mojang.logging.LogUtils;
import com.mojang.serialization.Dynamic;
import org.slf4j.Logger;
public class SavedDataUUIDFix extends AbstractUUIDFix {
private static final Logger LOGGER = LogUtils.getLogger();
public SavedDataUUIDFix(Schema outputSchema) {
super(outputSchema, References.SAVED_DATA_RAIDS);
}
@Override
protected TypeRewriteRule makeRule() {
return this.fixTypeEverywhereTyped(
"SavedDataUUIDFix",
this.getInputSchema().getType(this.typeReference),
typed -> typed.update(
DSL.remainderFinder(),
dynamic -> dynamic.update(
"data",
dynamicx -> dynamicx.update(
"Raids",
dynamicxx -> dynamicxx.createList(
dynamicxx.asStream()
.map(
dynamicxxx -> dynamicxxx.update(
"HeroesOfTheVillage",
dynamicxxxx -> dynamicxxxx.createList(
dynamicxxxx.asStream().map(dynamicxxxxx -> (Dynamic)createUUIDFromLongs(dynamicxxxxx, "UUIDMost", "UUIDLeast").orElseGet(() -> {
LOGGER.warn("HeroesOfTheVillage contained invalid UUIDs.");
return dynamicxxxxx;
}))
)
)
)
)
)
)
)
);
}
}