Restore terminal environment and run shutdown hooks
This commit is contained in:
parent
20e945d166
commit
537b3b4823
@ -7,6 +7,7 @@ import net.minecraft.command.Commands;
|
|||||||
import net.minecraft.network.rcon.RConConsoleSource;
|
import net.minecraft.network.rcon.RConConsoleSource;
|
||||||
import net.minecraft.server.dedicated.DedicatedServer;
|
import net.minecraft.server.dedicated.DedicatedServer;
|
||||||
import net.minecraft.server.dedicated.PendingCommand;
|
import net.minecraft.server.dedicated.PendingCommand;
|
||||||
|
import net.minecrell.terminalconsole.TerminalConsoleAppender;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.craftbukkit.v.CraftServer;
|
import org.bukkit.craftbukkit.v.CraftServer;
|
||||||
import org.bukkit.craftbukkit.v.command.CraftRemoteConsoleCommandSender;
|
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.CallbackInfo;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
@Mixin(DedicatedServer.class)
|
@Mixin(DedicatedServer.class)
|
||||||
public abstract class DedicatedServerMixin extends MinecraftServerMixin {
|
public abstract class DedicatedServerMixin extends MinecraftServerMixin {
|
||||||
|
|
||||||
@ -80,15 +83,12 @@ public abstract class DedicatedServerMixin extends MinecraftServerMixin {
|
|||||||
|
|
||||||
@Inject(method = "systemExitNow", at = @At("RETURN"))
|
@Inject(method = "systemExitNow", at = @At("RETURN"))
|
||||||
public void arclight$exitNow(CallbackInfo ci) {
|
public void arclight$exitNow(CallbackInfo ci) {
|
||||||
new Thread(() -> {
|
|
||||||
try {
|
try {
|
||||||
Thread.sleep(5000);
|
TerminalConsoleAppender.close();
|
||||||
} catch (InterruptedException ignored) {
|
} catch (IOException e) {
|
||||||
} finally {
|
e.printStackTrace();
|
||||||
Runtime.getRuntime().halt(0);
|
|
||||||
}
|
}
|
||||||
}, "Exit Thread").start();
|
new Thread(() -> System.exit(0), "Exit Thread").start();
|
||||||
System.exit(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user