From 492be77ad94043688c4b7f7a374541566cade65d Mon Sep 17 00:00:00 2001 From: Tim203 Date: Thu, 17 Aug 2023 11:35:12 +0200 Subject: [PATCH] Fixed an error during shutdown --- .../geysermc/floodgate/link/PlayerLinkHolder.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/geysermc/floodgate/link/PlayerLinkHolder.java b/core/src/main/java/org/geysermc/floodgate/link/PlayerLinkHolder.java index a91ba679..4b140c2f 100644 --- a/core/src/main/java/org/geysermc/floodgate/link/PlayerLinkHolder.java +++ b/core/src/main/java/org/geysermc/floodgate/link/PlayerLinkHolder.java @@ -71,12 +71,15 @@ public final class PlayerLinkHolder { private URLClassLoader classLoader; private PlayerLink instance; - @NonNull - public PlayerLink load() { + public @NonNull PlayerLink load() { if (instance != null) { return instance; } + instance = load0(); + return instance; + } + private @NonNull PlayerLink load0() { if (config == null) { throw new IllegalStateException("Config cannot be null!"); } @@ -189,7 +192,7 @@ public PlayerLink load() { }); injectorHolder.set(linkInjector); - instance = linkInjector.getInstance(mainClass); + PlayerLink instance = linkInjector.getInstance(mainClass); // we use our own internal PlayerLinking when global linking is enabled if (linkConfig.isEnableGlobalLinking()) { @@ -220,6 +223,8 @@ public PlayerLink load() { @Subscribe public void onShutdown(ShutdownEvent ignored) throws Exception { instance.stop(); - classLoader.close(); + if (classLoader != null) { + classLoader.close(); + } } }