improve the jackass test
Dieser Commit ist enthalten in:
Ursprung
3591fb7ed9
Commit
485ad4238b
@ -1,27 +1,40 @@
|
|||||||
From cbda3b924454b5badd57f8dc2550d315ca8441bb Mon Sep 17 00:00:00 2001
|
From 7fb729ea5b3d71930bb208d8fc8156c0bae02f1f Mon Sep 17 00:00:00 2001
|
||||||
From: Zach Brown <zach.brown@destroystokyo.com>
|
From: Zach Brown <zach.brown@destroystokyo.com>
|
||||||
Date: Fri, 22 Apr 2016 20:34:21 -0500
|
Date: Fri, 22 Apr 2016 20:34:21 -0500
|
||||||
Subject: [PATCH] Check entity count additions and mark entities removed
|
Subject: [PATCH] Check entity count additions and mark entities removed
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
||||||
index 5c1685d..88f8ab8 100644
|
index 5c1685d..137cbc6 100644
|
||||||
--- a/src/main/java/net/minecraft/server/Chunk.java
|
--- a/src/main/java/net/minecraft/server/Chunk.java
|
||||||
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
||||||
@@ -661,6 +661,12 @@ public class Chunk {
|
@@ -661,6 +661,25 @@ public class Chunk {
|
||||||
k = this.entitySlices.length - 1;
|
k = this.entitySlices.length - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ // Paper start - Try to catch plugins doing indecent things
|
+ // Paper start - Try to catch plugins doing indecent things
|
||||||
+ if (entity.aa && entity.getChunkX() == this.locX && entity.getChunkY() == k && entity.getChunkZ() == this.locZ) {
|
+ if (entity.aa) {
|
||||||
+ throw new IllegalStateException("Hey Jackass don't do that.");
|
+ boolean thisChunk = entity.getChunkX() == this.locX && entity.getChunkY() == k && entity.getChunkZ() == this.locZ;
|
||||||
|
+ String chunkName = entity.getWorld().getWorld().getName() + ":" + entity.getChunkX() + "," + entity.getChunkY() + "," + entity.getChunkZ();
|
||||||
|
+ if (!thisChunk) {
|
||||||
|
+ throw new IllegalStateException("Entity Already in another chunk: " + chunkName);
|
||||||
|
+ } else if (this.entitySlices[k].contains(entity)) {
|
||||||
|
+ throw new IllegalStateException("Double Chunk Add to: " + chunkName);
|
||||||
|
+ } else {
|
||||||
|
+ for (int i1 = 0; i1 < this.entitySlices.length; i1++) {
|
||||||
|
+ if (this.entitySlices[i1].contains(entity)) {
|
||||||
|
+ throw new IllegalStateException("Entity was found in another slice of this chunk, tried: " + k + ", was in: " + chunkName);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ new Throwable("Improperly detected double chunk add. Was not actually in this chunk.").printStackTrace();
|
||||||
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
+
|
+
|
||||||
entity.aa = true;
|
entity.aa = true;
|
||||||
entity.ab = this.locX;
|
entity.ab = this.locX;
|
||||||
entity.ac = k;
|
entity.ac = k;
|
||||||
@@ -711,6 +717,7 @@ public class Chunk {
|
@@ -711,6 +730,7 @@ public class Chunk {
|
||||||
} else if (entity instanceof IInventory) {
|
} else if (entity instanceof IInventory) {
|
||||||
inventoryEntityCounts[i]--;
|
inventoryEntityCounts[i]--;
|
||||||
}
|
}
|
||||||
@ -30,5 +43,5 @@ index 5c1685d..88f8ab8 100644
|
|||||||
// Spigot start - decrement creature type count
|
// Spigot start - decrement creature type count
|
||||||
// Keep this synced up with World.a(Class)
|
// Keep this synced up with World.a(Class)
|
||||||
--
|
--
|
||||||
2.8.0
|
2.8.1
|
||||||
|
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren