Restore terminal environment and run shutdown hooks

This commit is contained in:
IzzelAliz 2021-03-10 16:05:26 +08:00
parent 20e945d166
commit 537b3b4823

View File

@ -7,6 +7,7 @@ import net.minecraft.command.Commands;
import net.minecraft.network.rcon.RConConsoleSource;
import net.minecraft.server.dedicated.DedicatedServer;
import net.minecraft.server.dedicated.PendingCommand;
import net.minecrell.terminalconsole.TerminalConsoleAppender;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v.CraftServer;
import org.bukkit.craftbukkit.v.command.CraftRemoteConsoleCommandSender;
@ -23,6 +24,8 @@ import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import java.io.IOException;
@Mixin(DedicatedServer.class)
public abstract class DedicatedServerMixin extends MinecraftServerMixin {
@ -80,15 +83,12 @@ public abstract class DedicatedServerMixin extends MinecraftServerMixin {
@Inject(method = "systemExitNow", at = @At("RETURN"))
public void arclight$exitNow(CallbackInfo ci) {
new Thread(() -> {
try {
Thread.sleep(5000);
} catch (InterruptedException ignored) {
} finally {
Runtime.getRuntime().halt(0);
}
}, "Exit Thread").start();
System.exit(0);
try {
TerminalConsoleAppender.close();
} catch (IOException e) {
e.printStackTrace();
}
new Thread(() -> System.exit(0), "Exit Thread").start();
}
/**