Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-18 12:30:06 +01:00
Remove the delayed tile entity removal, fixes issues with recursive removal of comparators
Dieser Commit ist enthalten in:
Ursprung
89944c09c9
Commit
2681166072
@ -1,5 +1,5 @@
|
|||||||
--- ../work/decompile-8eb82bde//net/minecraft/server/Chunk.java 2014-11-28 17:43:42.981707438 +0000
|
--- ../work/decompile-8eb82bde/net/minecraft/server/Chunk.java 2014-12-21 17:32:05.580576417 +0000
|
||||||
+++ src/main/java/net/minecraft/server/Chunk.java 2014-11-28 17:38:22.000000000 +0000
|
+++ src/main/java/net/minecraft/server/Chunk.java 2014-12-21 17:32:05.580576417 +0000
|
||||||
@@ -1,6 +1,7 @@
|
@@ -1,6 +1,7 @@
|
||||||
package net.minecraft.server;
|
package net.minecraft.server;
|
||||||
|
|
||||||
@ -79,35 +79,7 @@
|
|||||||
public Chunk(World world, ChunkSnapshot chunksnapshot, int i, int j) {
|
public Chunk(World world, ChunkSnapshot chunksnapshot, int i, int j) {
|
||||||
this(world, i, j);
|
this(world, i, j);
|
||||||
short short0 = 256;
|
short short0 = 256;
|
||||||
@@ -465,7 +505,13 @@
|
@@ -505,7 +545,8 @@
|
||||||
flag = j >= i1;
|
|
||||||
}
|
|
||||||
|
|
||||||
- chunksection.setType(i, j & 15, k, iblockdata);
|
|
||||||
+ // CraftBukkit start - Delay removing containers until after they're cleaned up
|
|
||||||
+ if (!(block1 instanceof IContainer)) {
|
|
||||||
+ chunksection.setType(i, j & 15, k, iblockdata);
|
|
||||||
+ }
|
|
||||||
+ // CraftBukkit end
|
|
||||||
+
|
|
||||||
+
|
|
||||||
if (block1 != block) {
|
|
||||||
if (!this.world.isStatic) {
|
|
||||||
block1.remove(this.world, blockposition, iblockdata1);
|
|
||||||
@@ -474,6 +520,12 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // CraftBukkit start - Delay removing containers until after they're cleaned up
|
|
||||||
+ if (block1 instanceof IContainer) {
|
|
||||||
+ chunksection.setType(i, j & 15, k, iblockdata);
|
|
||||||
+ }
|
|
||||||
+ // CraftBukkit end
|
|
||||||
+
|
|
||||||
if (chunksection.b(i, j & 15, k) != block) {
|
|
||||||
return null;
|
|
||||||
} else {
|
|
||||||
@@ -505,7 +557,8 @@
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,7 +89,7 @@
|
|||||||
block.onPlace(this.world, blockposition, iblockdata);
|
block.onPlace(this.world, blockposition, iblockdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -586,7 +639,11 @@
|
@@ -586,7 +627,11 @@
|
||||||
int j = MathHelper.floor(entity.locZ / 16.0D);
|
int j = MathHelper.floor(entity.locZ / 16.0D);
|
||||||
|
|
||||||
if (i != this.locX || j != this.locZ) {
|
if (i != this.locX || j != this.locZ) {
|
||||||
@ -130,7 +102,7 @@
|
|||||||
entity.die();
|
entity.die();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -673,6 +730,13 @@
|
@@ -673,6 +718,13 @@
|
||||||
|
|
||||||
tileentity.D();
|
tileentity.D();
|
||||||
this.tileEntities.put(blockposition, tileentity);
|
this.tileEntities.put(blockposition, tileentity);
|
||||||
@ -144,7 +116,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -716,7 +780,21 @@
|
@@ -716,7 +768,21 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < this.entitySlices.length; ++i) {
|
for (int i = 0; i < this.entitySlices.length; ++i) {
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren