From 1ef687a4a64829854b4d535a651bad203135f9ba Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 18 Apr 2020 16:02:37 -0400 Subject: [PATCH] Don't crash if player is attempted to be removed from untracked chunk. I suspect it deals with teleporting as it uses players current x/y/z Fixes #2803 --- ...layer-is-attempted-to-be-removed-fro.patch | 23 +++++++++++++++++++ paper | 11 +++++++++ 2 files changed, 34 insertions(+) create mode 100644 Spigot-Server-Patches/0484-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch diff --git a/Spigot-Server-Patches/0484-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch b/Spigot-Server-Patches/0484-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch new file mode 100644 index 0000000000..3cb90005b3 --- /dev/null +++ b/Spigot-Server-Patches/0484-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch @@ -0,0 +1,23 @@ +From 86e26e7c235ffbd1dc52242b42c40ff55bef6b4c Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Sat, 18 Apr 2020 15:59:41 -0400 +Subject: [PATCH] Don't crash if player is attempted to be removed from + untracked chunk. + +I suspect it deals with teleporting as it uses players current x/y/z + +diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java +index 0244768f7..279c7a85f 100644 +--- a/src/main/java/net/minecraft/server/ChunkMapDistance.java ++++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java +@@ -226,6 +226,7 @@ public abstract class ChunkMapDistance { + public void b(SectionPosition sectionposition, EntityPlayer entityplayer) { + long i = sectionposition.u().pair(); + ObjectSet objectset = (ObjectSet) this.c.get(i); ++ if (objectset == null) return; // Paper - mitigate weird state mismatch that this chunk isn't tracked. + + objectset.remove(entityplayer); + if (objectset.isEmpty()) { +-- +2.25.1 + diff --git a/paper b/paper index 895320be86..268cc02a76 100755 --- a/paper +++ b/paper @@ -50,6 +50,17 @@ case "$1" in scripts/build.sh "$basedir" "--jar" || exit 1 ) || failed=1 ;; + "b" | "build") + ( + set -e + cd "$basedir" + scripts/build.sh "$basedir" || exit 1 + (cd Paper-API ; mvn clean install) || exit 1 + (cd Paper-Server ; mvn clean package) || exit 1 + echo "Paper jar successfully built" + ls -la Paper-Server/target/paper*.jar + ) || failed=1 + ;; "make") ( if [[ "$2" = "bacon" ]] ; then