scarpet and carpet close handler now triggers with players still online in SP

This commit is contained in:
gnembon committed 2021-02-08 18:06:49 -04:00
1 parent 1d4f105174
commit 0a45778e4a
2 files changed
+10 -9

No files matched your search

+9 -8
View File
@@ -170,6 +170,10 @@ public class CarpetServer implements ClientModInitializer,DedicatedServerModInit
} }
public static void onServerClosed(MinecraftServer server) public static void onServerClosed(MinecraftServer server)
{
// this for whatever reason gets called multiple times even when joining on SP
// so we allow to pass multiple times gating it only on existing server ref
if (minecraft_server != null)
{ {
if (scriptServer != null) scriptServer.onClose(); if (scriptServer != null) scriptServer.onClose();
ServerNetworkHandler.close(); ServerNetworkHandler.close();
@@ -178,7 +182,11 @@ public class CarpetServer implements ClientModInitializer,DedicatedServerModInit
LoggerRegistry.stopLoggers(); LoggerRegistry.stopLoggers();
extensions.forEach(e -> e.onServerClosed(server)); extensions.forEach(e -> e.onServerClosed(server));
minecraft_server = null; minecraft_server = null;
disconnect(); }
// this for whatever reason gets called multiple times even when joining;
TickSpeed.reset();
settingsManager.detachServer();
} }
public static void registerExtensionLoggers() public static void registerExtensionLoggers()
@@ -186,13 +194,6 @@ public class CarpetServer implements ClientModInitializer,DedicatedServerModInit
extensions.forEach(CarpetExtension::registerLoggers); extensions.forEach(CarpetExtension::registerLoggers);
} }
public static void disconnect()
{
// this for whatever reason gets called multiple times even when joining;
TickSpeed.reset();
settingsManager.detachServer();
}
public static void onReload(MinecraftServer server) public static void onReload(MinecraftServer server)
{ {
scriptServer.reload(server); scriptServer.reload(server);
@@ -39,7 +39,7 @@ public class CarpetClient
{ {
isServerCarpet = false; isServerCarpet = false;
clientPlayer = null; clientPlayer = null;
CarpetServer.disconnect(); CarpetServer.onServerClosed(null);
} }
public static void setCarpet() public static void setCarpet()