From 57773db48912e3e7a3882501cd8bb726bb23e941 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sun, 1 Jan 2023 17:47:28 -0500 Subject: [PATCH] Fix crash when running outside of dev --- .../java/org/embeddedt/modernfix/mixin/LevelSaveMixin.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/embeddedt/modernfix/mixin/LevelSaveMixin.java b/src/main/java/org/embeddedt/modernfix/mixin/LevelSaveMixin.java index b25dddf1..3c882046 100644 --- a/src/main/java/org/embeddedt/modernfix/mixin/LevelSaveMixin.java +++ b/src/main/java/org/embeddedt/modernfix/mixin/LevelSaveMixin.java @@ -1,8 +1,10 @@ package org.embeddedt.modernfix.mixin; +import net.minecraft.client.Minecraft; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.world.storage.SaveFormat; +import net.minecraftforge.fml.common.ObfuscationReflectionHelper; import org.embeddedt.modernfix.ModernFix; import org.embeddedt.modernfix.duck.ILevelSave; import org.embeddedt.modernfix.util.DummyServerConfiguration; @@ -14,12 +16,11 @@ import java.nio.file.Path; @Mixin(SaveFormat.LevelSave.class) public class LevelSaveMixin implements ILevelSave { - @Shadow @Final private SaveFormat this$0; - @Shadow @Final private Path saveDir; public void runWorldPersistenceHooks() { - ((SaveFormatAccessor)this.this$0).invokeReadFromLevelData(this.saveDir.toFile(), (file, dataFixer) -> { + SaveFormat saveFormat = ObfuscationReflectionHelper.getPrivateValue(Minecraft.class, Minecraft.getInstance(), "field_71469_aa"); + ((SaveFormatAccessor)saveFormat).invokeReadFromLevelData(this.saveDir.toFile(), (file, dataFixer) -> { try { CompoundNBT compoundTag = CompressedStreamTools.readCompressed(file); net.minecraftforge.fml.WorldPersistenceHooks.handleWorldDataLoad((SaveFormat.LevelSave)(Object)this, new DummyServerConfiguration(), compoundTag);