From d3db623de59883ff905d236600c1adda1466f8e6 Mon Sep 17 00:00:00 2001 From: Frank Bauer Date: Mon, 26 Jul 2021 18:50:15 +0200 Subject: [PATCH] Call DataFixer in Server Context --- .../java/ru/bclib/mixin/common/MainMixin.java | 17 +++++++++++++++++ src/main/resources/bclib.mixins.common.json | 3 ++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 src/main/java/ru/bclib/mixin/common/MainMixin.java diff --git a/src/main/java/ru/bclib/mixin/common/MainMixin.java b/src/main/java/ru/bclib/mixin/common/MainMixin.java new file mode 100644 index 00000000..bb39c129 --- /dev/null +++ b/src/main/java/ru/bclib/mixin/common/MainMixin.java @@ -0,0 +1,17 @@ +package ru.bclib.mixin.common; + +import net.minecraft.server.Main; +import net.minecraft.world.level.storage.LevelStorageSource; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArg; +import ru.bclib.api.datafixer.DataFixerAPI; + +@Mixin(Main.class) +abstract public class MainMixin { + @ModifyArg(method="main", at=@At(value="INVOKE", target="Lnet/minecraft/server/MinecraftServer;convertFromRegionFormatIfNeeded(Lnet/minecraft/world/level/storage/LevelStorageSource$LevelStorageAccess;)V")) + private static LevelStorageSource.LevelStorageAccess bclib_callServerFix(LevelStorageSource.LevelStorageAccess session){ + DataFixerAPI.fixData(session, false, (didFix)->{}); + return session; + } +} diff --git a/src/main/resources/bclib.mixins.common.json b/src/main/resources/bclib.mixins.common.json index 5ea05c8b..ecf7c440 100644 --- a/src/main/resources/bclib.mixins.common.json +++ b/src/main/resources/bclib.mixins.common.json @@ -15,7 +15,8 @@ "AnvilBlockMixin", "AnvilMenuMixin", "TagLoaderMixin", - "BiomeMixin" + "BiomeMixin", + "MainMixin" ], "injectors": { "defaultRequire": 1