diff --git a/paper-server/nms-patches/net/minecraft/world/level/saveddata/maps/WorldMap.patch b/paper-server/nms-patches/net/minecraft/world/level/saveddata/maps/WorldMap.patch index 9ca358485f..7b829d2ef3 100644 --- a/paper-server/nms-patches/net/minecraft/world/level/saveddata/maps/WorldMap.patch +++ b/paper-server/nms-patches/net/minecraft/world/level/saveddata/maps/WorldMap.patch @@ -24,7 +24,7 @@ + // CraftBukkit start + public final CraftMapView mapView; + private CraftServer server; -+ private UUID uniqueId = null; ++ public UUID uniqueId = null; + public String id; + // CraftBukkit end + diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapView.java b/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapView.java index 93ae67284c..33255728d8 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapView.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapView.java @@ -64,12 +64,20 @@ public final class CraftMapView implements MapView { ResourceKey dimension = worldMap.dimension; WorldServer world = MinecraftServer.getServer().getLevel(dimension); - return (world == null) ? null : world.getWorld(); + if (world != null) { + return world.getWorld(); + } + + if (worldMap.uniqueId != null) { + return Bukkit.getServer().getWorld(worldMap.uniqueId); + } + return null; } @Override public void setWorld(World world) { worldMap.dimension = ((CraftWorld) world).getHandle().dimension(); + worldMap.uniqueId = world.getUID(); } @Override