diff --git a/gradle.properties b/gradle.properties index d8248e1..4cf1205 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,9 +2,9 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/develop/ -minecraft_version=1.20.5 -yarn_mappings=1.20.5+build.1 -loader_version=0.15.0 +minecraft_version=1.21.4 +yarn_mappings=1.21.4+build.1 +loader_version=0.16.9 # Mod Properties mod_version=2.0.0 maven_group=ml.unbreakinggold diff --git a/src/main/java/ml/unbreakinggold/datapackinstaller/mixin/client/CreateWorldScreenMixin.java b/src/main/java/ml/unbreakinggold/datapackinstaller/mixin/client/CreateWorldScreenMixin.java index fff1a2c..16861ff 100644 --- a/src/main/java/ml/unbreakinggold/datapackinstaller/mixin/client/CreateWorldScreenMixin.java +++ b/src/main/java/ml/unbreakinggold/datapackinstaller/mixin/client/CreateWorldScreenMixin.java @@ -1,7 +1,11 @@ package ml.unbreakinggold.datapackinstaller.mixin.client; import ml.unbreakinggold.datapackinstaller.client.DatapackInstallerClient; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.screen.world.CreateWorldCallback; import net.minecraft.client.gui.screen.world.CreateWorldScreen; +import net.minecraft.client.world.GeneratorOptionsHolder; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.Nullable; @@ -9,27 +13,32 @@ import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import java.nio.file.Path; +import java.util.Optional; +import java.util.OptionalLong; @Mixin(CreateWorldScreen.class) public abstract class CreateWorldScreenMixin { @Unique private static final Logger LOGGER = LogManager.getLogger(CreateWorldScreenMixin.class); + @Shadow @Nullable private Path dataPackTempDir; /** - * @author Jomar Milan - July 31st, 2024 - Minecraft 1.20.5 - * @reason Use persistent mod directory instead of vanilla temporary directory + * Inject after CreateWorldScreen.create(...), replaces the data pack directory with thr persistent one. */ - @Overwrite - @Nullable - private Path getDataPackTempDir() { + @Inject( + method = "", + at = @At("TAIL") + ) + private void onInit(MinecraftClient client, Screen parent, GeneratorOptionsHolder generatorOptionsHolder, Optional defaultWorldType, OptionalLong seed, CreateWorldCallback callback, CallbackInfo ci) { this.dataPackTempDir = DatapackInstallerClient.MAIN_PATH; - - return this.dataPackTempDir; } /**