3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-12-15 11:00:06 +01:00

Remove non-zero BlockIterator block and Loading chunks earlier in player TP patches

Allowing only non-zero BlockIterators breaks an API contract explicitly allowing them
(*eyeroll*)

And loading chunks earlier in the TP patch did not resolve the original issue, and now
that it is resolved, shouldn't actually provide any tangible benefits
Dieser Commit ist enthalten in:
Zach Brown 2016-04-18 09:40:58 -05:00
Ursprung ce9e19cfed
Commit 68cdc4fa90
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: CC9DA35FC5450B76
2 geänderte Dateien mit 0 neuen und 50 gelöschten Zeilen

Datei anzeigen

@ -1,23 +0,0 @@
From 74c1e1dfd8eaaa86e68838b823ebd5177f007066 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 12 Apr 2016 23:06:56 -0500
Subject: [PATCH] Only allow non-zero maxDistance BlockIterators
They can iterate infinitely causing the server to hang.
Fix your plugins!
diff --git a/src/main/java/org/bukkit/util/BlockIterator.java b/src/main/java/org/bukkit/util/BlockIterator.java
index 5c85778..0f34c66 100644
--- a/src/main/java/org/bukkit/util/BlockIterator.java
+++ b/src/main/java/org/bukkit/util/BlockIterator.java
@@ -52,6 +52,7 @@ public class BlockIterator implements Iterator<Block> {
*
*/
public BlockIterator(World world, Vector start, Vector direction, double yOffset, int maxDistance) {
+ com.google.common.base.Preconditions.checkArgument(maxDistance != 0, "maxDistance cannot be 0!"); // Paper - Only allow non-zero maxDistance
this.world = world;
this.maxDistance = maxDistance;
--
2.8.0

Datei anzeigen

@ -1,27 +0,0 @@
From dc5551d29ec825888b85dbe989d28817473fc1bd Mon Sep 17 00:00:00 2001
From: Gabscap <sonstige.netzwerke@gabriel-paradzik.de>
Date: Sat, 26 Mar 2016 18:41:22 +0100
Subject: [PATCH] Load chunk before player teleport
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index eb88228..0a3dc16 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -554,6 +554,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
getHandle().closeInventory();
}
+ // Paper start - Load chunk before player teleport
+ org.bukkit.Chunk chunk = to.getChunk();
+ if (!chunk.isLoaded()) {
+ chunk.load();
+ }
+ // Paper end
+
// Check if the fromWorld and toWorld are the same.
if (fromWorld == toWorld) {
entity.playerConnection.teleport(to);
--
2.8.0