From c61a3dcd12b17de7a4efba53b316afb9de34942f Mon Sep 17 00:00:00 2001 From: Lorenzo Lapucci Date: Sun, 22 Aug 2021 14:12:38 +0200 Subject: [PATCH] Stop the server on Ctrl+C and SIGINT signal --- src/main/java/net/minestom/server/MinecraftServer.java | 3 +++ .../java/net/minestom/server/terminal/MinestomTerminal.java | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minestom/server/MinecraftServer.java b/src/main/java/net/minestom/server/MinecraftServer.java index 84605aa0e..1d0314746 100644 --- a/src/main/java/net/minestom/server/MinecraftServer.java +++ b/src/main/java/net/minestom/server/MinecraftServer.java @@ -700,6 +700,9 @@ public final class MinecraftServer { if (terminalEnabled) { MinestomTerminal.start(); } + + // Stop the server on SIGINT + Runtime.getRuntime().addShutdownHook(new Thread(MinecraftServer::stopCleanly)); } /** diff --git a/src/main/java/net/minestom/server/terminal/MinestomTerminal.java b/src/main/java/net/minestom/server/terminal/MinestomTerminal.java index 49078fda2..c5ec53f68 100644 --- a/src/main/java/net/minestom/server/terminal/MinestomTerminal.java +++ b/src/main/java/net/minestom/server/terminal/MinestomTerminal.java @@ -39,7 +39,9 @@ public class MinestomTerminal { command = reader.readLine(PROMPT); COMMAND_MANAGER.execute(COMMAND_MANAGER.getConsoleSender(), command); } catch (UserInterruptException e) { - // Ignore + // Handle Ctrl + C + System.exit(0); + return; } catch (EndOfFileException e) { return; }