From 590241c5ef4b1ff3d4b5548de5b88a4ed230f7f9 Mon Sep 17 00:00:00 2001 From: kuwacom Date: Sun, 8 Mar 2026 18:23:02 +0900 Subject: [PATCH] fix: fix stop command shutdown process add dedicated server shutdown request handling --- Minecraft.Server/Console/ServerCliEngine.cpp | 3 ++- Minecraft.Server/ServerShutdown.h | 6 ++++++ Minecraft.Server/Windows64/ServerMain.cpp | 13 +++++++++++-- 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 Minecraft.Server/ServerShutdown.h diff --git a/Minecraft.Server/Console/ServerCliEngine.cpp b/Minecraft.Server/Console/ServerCliEngine.cpp index 9885a3762..b72ac11a5 100644 --- a/Minecraft.Server/Console/ServerCliEngine.cpp +++ b/Minecraft.Server/Console/ServerCliEngine.cpp @@ -16,6 +16,7 @@ #include "commands\CliCommandStop.h" #include "commands\CliCommandTp.h" #include "..\Common\StringUtils.h" +#include "..\ServerShutdown.h" #include "..\ServerLogger.h" #include "..\..\Minecraft.Client\MinecraftServer.h" #include "..\..\Minecraft.Client\PlayerList.h" @@ -188,7 +189,7 @@ namespace ServerRuntime void ServerCliEngine::RequestShutdown() const { - MinecraftServer::HaltServer(); + RequestDedicatedServerShutdown(); } std::vector ServerCliEngine::GetOnlinePlayerNamesUtf8() const diff --git a/Minecraft.Server/ServerShutdown.h b/Minecraft.Server/ServerShutdown.h new file mode 100644 index 000000000..302b1a55d --- /dev/null +++ b/Minecraft.Server/ServerShutdown.h @@ -0,0 +1,6 @@ +#pragma once + +namespace ServerRuntime +{ + void RequestDedicatedServerShutdown(); +} diff --git a/Minecraft.Server/Windows64/ServerMain.cpp b/Minecraft.Server/Windows64/ServerMain.cpp index 5d1cc6161..cc139aa6f 100644 --- a/Minecraft.Server/Windows64/ServerMain.cpp +++ b/Minecraft.Server/Windows64/ServerMain.cpp @@ -10,6 +10,7 @@ #include "..\ServerLogger.h" #include "..\ServerLogManager.h" #include "..\ServerProperties.h" +#include "..\ServerShutdown.h" #include "..\WorldManager.h" #include "..\Console\ServerCli.h" #include "Tesselator.h" @@ -68,6 +69,15 @@ static volatile bool g_shutdownRequested = false; static const DWORD kDefaultAutosaveIntervalMs = 60 * 1000; static const int kServerActionPad = 0; +namespace ServerRuntime +{ + void RequestDedicatedServerShutdown() + { + g_shutdownRequested = true; + app.m_bShutdown = true; + } +} + /** * Calls Access::Shutdown automatically once dedicated access control was initialized successfully * アクセス制御初期化後のShutdownを自動化する @@ -104,8 +114,7 @@ static BOOL WINAPI ConsoleCtrlHandlerProc(DWORD ctrlType) case CTRL_BREAK_EVENT: case CTRL_CLOSE_EVENT: case CTRL_SHUTDOWN_EVENT: - g_shutdownRequested = true; - app.m_bShutdown = true; + ServerRuntime::RequestDedicatedServerShutdown(); return TRUE; default: return FALSE;