From 1865625d958b94d82e0bd601d6d860318980c4c4 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sun, 29 Oct 2023 08:33:32 -0700 Subject: [PATCH] Fix NPE when no valid world is found on legacy Players (#9885) --- ...valid-world-is-found-on-legacy-Playe.patch | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 patches/server/1043-Fix-NPE-when-no-valid-world-is-found-on-legacy-Playe.patch diff --git a/patches/server/1043-Fix-NPE-when-no-valid-world-is-found-on-legacy-Playe.patch b/patches/server/1043-Fix-NPE-when-no-valid-world-is-found-on-legacy-Playe.patch new file mode 100644 index 0000000000..17028be297 --- /dev/null +++ b/patches/server/1043-Fix-NPE-when-no-valid-world-is-found-on-legacy-Playe.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Sat, 28 Oct 2023 23:21:49 -0700 +Subject: [PATCH] Fix NPE when no valid world is found on legacy Players + + +diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java +index 03d2dc7f68d6918065f852057321fbaaf22fb413..30dd56871acff2dd730d96406520bab066229d7a 100644 +--- a/src/main/java/net/minecraft/server/players/PlayerList.java ++++ b/src/main/java/net/minecraft/server/players/PlayerList.java +@@ -221,9 +221,9 @@ public abstract class PlayerList { + Logger logger = PlayerList.LOGGER; + + Objects.requireNonNull(logger); +- resourcekey = (ResourceKey) dataresult.resultOrPartial(logger::error).orElse(player.serverLevel().dimension()); // CraftBukkit - SPIGOT-7507: If no dimension, fall back to existing dimension loaded from "WorldUUID", which in turn defaults to World.OVERWORLD ++ resourcekey = (ResourceKey) dataresult.resultOrPartial(logger::error).orElse(player.serverLevel() != null ? player.serverLevel().dimension() : Level.OVERWORLD); // CraftBukkit - SPIGOT-7507: If no dimension, fall back to existing dimension loaded from "WorldUUID", which in turn defaults to World.OVERWORLD // Paper - account for null level + } else { +- resourcekey = player.serverLevel().dimension(); // CraftBukkit - SPIGOT-7507: If no dimension, fall back to existing dimension loaded from "WorldUUID", which in turn defaults to World.OVERWORLD ++ resourcekey = player.serverLevel() != null ? player.serverLevel().dimension() : Level.OVERWORLD; // CraftBukkit - SPIGOT-7507: If no dimension, fall back to existing dimension loaded from "WorldUUID", which in turn defaults to World.OVERWORLD // Paper - account for null level + } + + ResourceKey resourcekey1 = resourcekey;