SPIGOT-7507: Fall back to world UUIDs if Dimension tag missing or invalid

This commit is contained in:
md_5 2023-10-21 16:25:23 +11:00
parent 67a52a6485
commit 75502b6ddc
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11

View File

@ -73,7 +73,7 @@
this.server = minecraftserver; this.server = minecraftserver;
this.registries = layeredregistryaccess; this.registries = layeredregistryaccess;
this.maxPlayers = i; this.maxPlayers = i;
@@ -161,9 +193,15 @@ @@ -161,15 +193,21 @@
NBTTagCompound nbttagcompound = this.load(entityplayer); NBTTagCompound nbttagcompound = this.load(entityplayer);
ResourceKey resourcekey; ResourceKey resourcekey;
@ -90,6 +90,14 @@
Logger logger = PlayerList.LOGGER; Logger logger = PlayerList.LOGGER;
Objects.requireNonNull(logger); Objects.requireNonNull(logger);
- resourcekey = (ResourceKey) dataresult.resultOrPartial(logger::error).orElse(World.OVERWORLD);
+ resourcekey = (ResourceKey) dataresult.resultOrPartial(logger::error).orElse(entityplayer.serverLevel().dimension()); // CraftBukkit - SPIGOT-7507: If no dimension, fall back to existing dimension loaded from "WorldUUID", which in turn defaults to World.OVERWORLD
} else {
- resourcekey = World.OVERWORLD;
+ resourcekey = entityplayer.serverLevel().dimension(); // CraftBukkit - SPIGOT-7507: If no dimension, fall back to existing dimension loaded from "WorldUUID", which in turn defaults to World.OVERWORLD
}
ResourceKey<World> resourcekey1 = resourcekey;
@@ -186,7 +224,8 @@ @@ -186,7 +224,8 @@
entityplayer.setServerLevel(worldserver1); entityplayer.setServerLevel(worldserver1);
String s1 = networkmanager.getLoggableAddress(this.server.logIPs()); String s1 = networkmanager.getLoggableAddress(this.server.logIPs());