geforkt von Mirrors/Paper
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:
Ursprung
d306bc67aa
Commit
dea3485028
@ -1,21 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/bukkit/util/BlockIterator.java
|
||||
+++ b/src/main/java/org/bukkit/util/BlockIterator.java
|
||||
@@ -0,0 +0,0 @@ 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;
|
||||
|
||||
--
|
@ -1,25 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -0,0 +0,0 @@ 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);
|
||||
--
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren