fix: explicitly execute stop method on co-processes started client-side

This commit is contained in:
Johannes Frohnmeyer 2024-09-20 12:12:00 +02:00
parent d8e15bdb34
commit 60d91a7b2a
Signed by: Johannes
GPG Key ID: E76429612C2929F4
5 changed files with 47 additions and 8 deletions

View File

@ -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();
}
}

View File

@ -0,0 +1,12 @@
{
"required": true,
"minVersion": "0.8",
"package": "io.gitlab.jfronny.libjf.mixin",
"compatibilityLevel": "JAVA_16",
"client": [
"client.MinecraftClientMixin"
],
"injectors": {
"defaultRequire": 1
}
}

View File

@ -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;

View File

@ -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",

View File

@ -3,10 +3,8 @@
"minVersion": "0.8",
"package": "io.gitlab.jfronny.libjf.mixin",
"compatibilityLevel": "JAVA_16",
"mixins": [
],
"server": [
"MainMixin"
"server.MainMixin"
],
"injectors": {
"defaultRequire": 1