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
This commit is contained in:
Aikar 2020-04-18 16:02:37 -04:00
parent c11668aca1
commit 1ef687a4a6
No known key found for this signature in database
GPG key ID: 401ADFC9891FAAFE
2 changed files with 34 additions and 0 deletions

View file

@ -0,0 +1,23 @@
From 86e26e7c235ffbd1dc52242b42c40ff55bef6b4c Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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<EntityPlayer> 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

11
paper
View file

@ -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