From 631c409f79663e3c82799ee3ab9eca42d2991e3b Mon Sep 17 00:00:00 2001 From: "Lukas Rieger (Blue)" Date: Sat, 25 Feb 2023 12:28:07 +0100 Subject: [PATCH] Keep webserver running if bluemap disables due to no active maps being configured --- .../bluemap/common/plugin/Plugin.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/plugin/Plugin.java b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/plugin/Plugin.java index 0c2e069c..3ae18973 100644 --- a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/plugin/Plugin.java +++ b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/plugin/Plugin.java @@ -153,14 +153,6 @@ public class Plugin implements ServerEventListener { worlds = blueMap.getWorlds(); maps = blueMap.getMaps(); - //warn if no maps are configured - if (maps.isEmpty()) { - Logger.global.logWarning("There are no valid maps configured, please check your map-configs! Disabling BlueMap..."); - - unload(); - return; - } - //create and start webserver if (webserverConfig.isEnabled()) { Path webroot = webserverConfig.getWebroot(); @@ -209,6 +201,13 @@ public class Plugin implements ServerEventListener { } } + //warn if no maps are configured + if (maps.isEmpty()) { + Logger.global.logWarning("There are no valid maps configured, please check your map-configs! Disabling BlueMap..."); + unload(true); + return; + } + //initialize render manager renderManager = new RenderManager(); @@ -341,6 +340,9 @@ public class Plugin implements ServerEventListener { } public void unload() { + this.unload(false); + } + public void unload(boolean keepWebserver) { loadingLock.interruptAndLock(); try { synchronized (this) { @@ -377,14 +379,14 @@ public class Plugin implements ServerEventListener { } renderManager = null; - if (webServer != null) { + if (webServer != null && !keepWebserver) { try { webServer.close(); } catch (IOException ex) { Logger.global.logError("Failed to close the webserver!", ex); } + webServer = null; } - webServer = null; //close bluemap if (blueMap != null) {