13
0
geforkt von Mirrors/Paper
Paper/Spigot-Server-Patches/Check-entity-count-additions-and-mark-entities-remov.patch
2016-04-23 11:57:39 -04:00

45 Zeilen
2.2 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
Date: Fri, 22 Apr 2016 20:34:21 -0500
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
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -0,0 +0,0 @@ public class Chunk {
k = this.entitySlices.length - 1;
}
+ // Paper start - Try to catch plugins doing indecent things
+ if (entity.aa) {
+ 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
+
entity.aa = true;
entity.ab = this.locX;
entity.ac = k;
@@ -0,0 +0,0 @@ public class Chunk {
} else if (entity instanceof IInventory) {
inventoryEntityCounts[i]--;
}
+ entity.aa = false; // You aren't added to chunk anymore
// Paper end
// Spigot start - decrement creature type count
// Keep this synced up with World.a(Class)
--