separated properly client disconnect from server shutdown allowing for retaining carpet settings till world is gone. Fixes #854

This commit is contained in:
gnembon committed 2021-05-22 22:14:16 -03:00
1 parent c6db496a1f
commit fb4c40c951
3 files changed
+16 -3

No files matched your search

+3
View File
@@ -188,6 +188,9 @@ public class CarpetServer implements ClientModInitializer,DedicatedServerModInit
// this for whatever reason gets called multiple times even when joining;
TickSpeed.reset();
}
public static void onServerDoneClosing(MinecraftServer server)
{
settingsManager.detachServer();
}
@@ -50,6 +50,12 @@ public abstract class MinecraftServer_coreMixin
CarpetServer.onServerClosed((MinecraftServer) (Object) this);
}
@Inject(method = "shutdown", at = @At("TAIL"))
private void serverDoneClosed(CallbackInfo ci)
{
CarpetServer.onServerDoneClosing((MinecraftServer) (Object) this);
}
@Inject(method = "prepareStartRegion", at = @At("RETURN"))
private void afterSpawnCreated(WorldGenerationProgressListener worldGenerationProgressListener, CallbackInfo ci)
{
@@ -37,9 +37,13 @@ public class CarpetClient
public static void disconnect()
{
isServerCarpet = false;
clientPlayer = null;
CarpetServer.onServerClosed(null);
if (isServerCarpet)
{
isServerCarpet = false;
clientPlayer = null;
CarpetServer.onServerClosed(null);
CarpetServer.onServerDoneClosing(null);
}
}
public static void setCarpet()