diff --git a/libjf-base/src/client/java/io/gitlab/jfronny/libjf/mixin/client/MinecraftClientMixin.java b/libjf-base/src/client/java/io/gitlab/jfronny/libjf/mixin/client/MinecraftClientMixin.java new file mode 100644 index 0000000..83183af --- /dev/null +++ b/libjf-base/src/client/java/io/gitlab/jfronny/libjf/mixin/client/MinecraftClientMixin.java @@ -0,0 +1,26 @@ +package io.gitlab.jfronny.libjf.mixin.client; + +import io.gitlab.jfronny.libjf.coprocess.CoProcessManager; +import net.minecraft.client.MinecraftClient; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(MinecraftClient.class) +public class MinecraftClientMixin { + @Inject(method = "stop", at = @At(value = "INVOKE", target = "Ljava/lang/System;exit(I)V")) + private void onStop(CallbackInfo ci) { + CoProcessManager.stop(); + } + + @Inject(method = "stop", at = @At(value = "TAIL")) + private void onStopTail(CallbackInfo ci) { + CoProcessManager.stop(); + } + + @Inject(method = "printCrashReport(Lnet/minecraft/client/MinecraftClient;Ljava/io/File;Lnet/minecraft/util/crash/CrashReport;)V", at = @At(value = "INVOKE", target = "Ljava/lang/System;exit(I)V")) + private static void onCrashReport(MinecraftClient client, java.io.File file, net.minecraft.util.crash.CrashReport report, CallbackInfo ci) { + CoProcessManager.stop(); + } +} diff --git a/libjf-base/src/client/resources/libjf-base.client.mixins.json b/libjf-base/src/client/resources/libjf-base.client.mixins.json new file mode 100644 index 0000000..41b68c2 --- /dev/null +++ b/libjf-base/src/client/resources/libjf-base.client.mixins.json @@ -0,0 +1,12 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "io.gitlab.jfronny.libjf.mixin", + "compatibilityLevel": "JAVA_16", + "client": [ + "client.MinecraftClientMixin" + ], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/libjf-base/src/main/java/io/gitlab/jfronny/libjf/mixin/MainMixin.java b/libjf-base/src/main/java/io/gitlab/jfronny/libjf/mixin/server/MainMixin.java similarity index 82% rename from libjf-base/src/main/java/io/gitlab/jfronny/libjf/mixin/MainMixin.java rename to libjf-base/src/main/java/io/gitlab/jfronny/libjf/mixin/server/MainMixin.java index 0e7fdcc..b0b2f31 100644 --- a/libjf-base/src/main/java/io/gitlab/jfronny/libjf/mixin/MainMixin.java +++ b/libjf-base/src/main/java/io/gitlab/jfronny/libjf/mixin/server/MainMixin.java @@ -1,10 +1,7 @@ -package io.gitlab.jfronny.libjf.mixin; +package io.gitlab.jfronny.libjf.mixin.server; import io.gitlab.jfronny.libjf.coprocess.CoProcessManager; -import net.fabricmc.api.DedicatedServerModInitializer; import net.minecraft.server.Main; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.dedicated.MinecraftDedicatedServer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; diff --git a/libjf-base/src/main/resources/fabric.mod.json b/libjf-base/src/main/resources/fabric.mod.json index 750c7eb..ac11983 100644 --- a/libjf-base/src/main/resources/fabric.mod.json +++ b/libjf-base/src/main/resources/fabric.mod.json @@ -21,7 +21,13 @@ "main": ["io.gitlab.jfronny.libjf.coprocess.CoProcessManager::start"], "preLaunch": ["io.gitlab.jfronny.libjf.LibJf"] }, - "mixins": ["libjf-base.mixins.json"], + "mixins": [ + "libjf-base.mixins.json", + { + "config": "libjf-base.client.mixins.json", + "environment": "client" + } + ], "custom": { "modmenu": { "parent": "libjf", diff --git a/libjf-base/src/main/resources/libjf-base.mixins.json b/libjf-base/src/main/resources/libjf-base.mixins.json index ec6e540..faae8e3 100644 --- a/libjf-base/src/main/resources/libjf-base.mixins.json +++ b/libjf-base/src/main/resources/libjf-base.mixins.json @@ -3,10 +3,8 @@ "minVersion": "0.8", "package": "io.gitlab.jfronny.libjf.mixin", "compatibilityLevel": "JAVA_16", - "mixins": [ - ], "server": [ - "MainMixin" + "server.MainMixin" ], "injectors": { "defaultRequire": 1