mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-15 07:01:36 +08:00
7e1525ea2d
Fixed a few bugs, and made numerous improvements. Fixed issue where a sync chunk load could have its ticket removed and the priority ticket could expire... Still not perfect there but better than before. Also fixed few other misc issues such as watchdog cpu usage, chunk queue update had risk of double enqueue due to it no longer being a set. Added much more information about chunk state to watchdog prints. I see some more room for improvement even, but this is much better than before. Fixes #3407 Fixes #3411 Fixes #3395 Fixes #3389
21 lines
1.1 KiB
Diff
21 lines
1.1 KiB
Diff
From 0000000000000000000000000000000000000000 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 83da76fdc495225b563cecbdb71422aec2b534f3..4e0ea454f00c69f03023f01c1d4bd2eda5553a02 100644
|
|
--- a/src/main/java/net/minecraft/server/ChunkMapDistance.java
|
|
+++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java
|
|
@@ -237,6 +237,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()) {
|