Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
ce8922b1d clone POI blockpos before dispatching
4768e3c4e Optimize Loaded Chunks Cache Lookups
This commit is contained in:
jmp
2021-01-10 14:13:05 -08:00
parent 4a9c0163d9
commit 475b232561
13 changed files with 39 additions and 39 deletions

2
Paper

Submodule Paper updated: 6bf12bff71...ce8922b1d5

View File

@@ -8350,7 +8350,7 @@ index 2d887af902a33b0e28d8f0a6ac2e59c815a7856e..2291135eaef64c403183724cb6e413cd
@Override
public BlockPosition immutableCopy() {
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 9c078d30afef20bd1ea5975299c5513334829b19..0a8173a5bcd7212ebeff204fef5efdf1633aac78 100644
index af9d54ef057d5f6977cf77c57cde25b6b0d1f39d..7842e65115cf6c37322c83ebff954a06408680b5 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -91,6 +91,186 @@ public class Chunk implements IChunkAccess {
@@ -8540,7 +8540,7 @@ index 9c078d30afef20bd1ea5975299c5513334829b19..0a8173a5bcd7212ebeff204fef5efdf1
public Chunk(World world, ChunkCoordIntPair chunkcoordintpair, BiomeStorage biomestorage, ChunkConverter chunkconverter, TickList<Block> ticklist, TickList<FluidType> ticklist1, long i, @Nullable ChunkSection[] achunksection, @Nullable Consumer<Chunk> consumer) {
this.sections = new ChunkSection[16];
this.e = Maps.newHashMap();
@@ -297,6 +477,11 @@ public class Chunk implements IChunkAccess {
@@ -298,6 +478,11 @@ public class Chunk implements IChunkAccess {
public Chunk(World world, ProtoChunk protochunk) {
this(world, protochunk.getPos(), protochunk.getBiomeIndex(), protochunk.p(), protochunk.n(), protochunk.o(), protochunk.getInhabitedTime(), protochunk.getSections(), (Consumer) null);
@@ -8552,7 +8552,7 @@ index 9c078d30afef20bd1ea5975299c5513334829b19..0a8173a5bcd7212ebeff204fef5efdf1
Iterator iterator = protochunk.y().iterator();
while (iterator.hasNext()) {
@@ -547,6 +732,7 @@ public class Chunk implements IChunkAccess {
@@ -548,6 +733,7 @@ public class Chunk implements IChunkAccess {
@Override
public void a(Entity entity) {
@@ -8560,7 +8560,7 @@ index 9c078d30afef20bd1ea5975299c5513334829b19..0a8173a5bcd7212ebeff204fef5efdf1
this.q = true;
int i = MathHelper.floor(entity.locX() / 16.0D);
int j = MathHelper.floor(entity.locZ() / 16.0D);
@@ -592,8 +778,8 @@ public class Chunk implements IChunkAccess {
@@ -593,8 +779,8 @@ public class Chunk implements IChunkAccess {
entity.chunkX = this.loc.x;
entity.chunkY = k;
entity.chunkZ = this.loc.z;
@@ -8571,7 +8571,7 @@ index 9c078d30afef20bd1ea5975299c5513334829b19..0a8173a5bcd7212ebeff204fef5efdf1
// Paper start
if (entity instanceof EntityItem) {
itemCounts[k]++;
@@ -616,6 +802,7 @@ public class Chunk implements IChunkAccess {
@@ -617,6 +803,7 @@ public class Chunk implements IChunkAccess {
}
public void a(Entity entity, int i) {
@@ -8579,7 +8579,7 @@ index 9c078d30afef20bd1ea5975299c5513334829b19..0a8173a5bcd7212ebeff204fef5efdf1
if (i < 0) {
i = 0;
}
@@ -630,7 +817,7 @@ public class Chunk implements IChunkAccess {
@@ -631,7 +818,7 @@ public class Chunk implements IChunkAccess {
entity.entitySlice = null;
entity.inChunk = false;
}
@@ -8588,7 +8588,7 @@ index 9c078d30afef20bd1ea5975299c5513334829b19..0a8173a5bcd7212ebeff204fef5efdf1
return;
}
if (entity instanceof EntityItem) {
@@ -943,6 +1130,7 @@ public class Chunk implements IChunkAccess {
@@ -944,6 +1131,7 @@ public class Chunk implements IChunkAccess {
}
@@ -8948,7 +8948,7 @@ index 3c7b225edbe23dc1959002293a6f8b816287b5a8..f1c686810fb4e9c05df45d664c93af73
for (java.util.Iterator<Entry<ArraySetSorted<Ticket<?>>>> iterator = this.tickets.long2ObjectEntrySet().fastIterator(); iterator.hasNext();) {
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7902d650e 100644
index 75d25576d68ec95a14372f8530f4916f2bd7c3c5..38ca1c042afd41a1f660f88e398fedde00f34e39 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -22,6 +22,12 @@ import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; // Paper
@@ -8964,7 +8964,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
public class ChunkProviderServer extends IChunkProvider {
private static final List<ChunkStatus> b = ChunkStatus.a(); static final List<ChunkStatus> getPossibleChunkStatuses() { return ChunkProviderServer.b; } // Paper - OBFHELPER
@@ -121,7 +127,7 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -112,7 +118,7 @@ public class ChunkProviderServer extends IChunkProvider {
return (Chunk)this.getChunkAt(x, z, ChunkStatus.FULL, true);
}
@@ -8973,7 +8973,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
public void getEntityTickingChunkAsync(int x, int z, java.util.function.Consumer<Chunk> onLoad) {
if (Thread.currentThread() != this.serverThread) {
@@ -183,9 +189,9 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -174,9 +180,9 @@ public class ChunkProviderServer extends IChunkProvider {
try {
if (onLoad != null) {
@@ -8985,7 +8985,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
}
} catch (Throwable thr) {
if (thr instanceof ThreadDeath) {
@@ -210,6 +216,165 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -201,6 +207,165 @@ public class ChunkProviderServer extends IChunkProvider {
}
// Paper end - rewrite ticklistserver
@@ -9151,7 +9151,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
public ChunkProviderServer(WorldServer worldserver, Convertable.ConversionSession convertable_conversionsession, DataFixer datafixer, DefinedStructureManager definedstructuremanager, Executor executor, ChunkGenerator chunkgenerator, int i, boolean flag, WorldLoadListener worldloadlistener, Supplier<WorldPersistentData> supplier) {
this.world = worldserver;
this.serverThreadQueue = new ChunkProviderServer.a(worldserver);
@@ -545,6 +710,8 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -536,6 +701,8 @@ public class ChunkProviderServer extends IChunkProvider {
Arrays.fill(this.cacheChunk, (Object) null);
}
@@ -9160,7 +9160,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
private CompletableFuture<Either<IChunkAccess, PlayerChunk.Failure>> getChunkFutureMainThread(int i, int j, ChunkStatus chunkstatus, boolean flag) {
// Paper start - add isUrgent - old sig left in place for dirty nms plugins
return getChunkFutureMainThread(i, j, chunkstatus, flag, false);
@@ -563,9 +730,12 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -554,9 +721,12 @@ public class ChunkProviderServer extends IChunkProvider {
PlayerChunk.State currentChunkState = PlayerChunk.getChunkState(playerchunk.getTicketLevel());
currentlyUnloading = (oldChunkState.isAtLeast(PlayerChunk.State.BORDER) && !currentChunkState.isAtLeast(PlayerChunk.State.BORDER));
}
@@ -9173,7 +9173,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
if (isUrgent) this.chunkMapDistance.markUrgent(chunkcoordintpair); // Paper
if (this.a(playerchunk, l)) {
GameProfilerFiller gameprofilerfiller = this.world.getMethodProfiler();
@@ -576,12 +746,20 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -567,12 +737,20 @@ public class ChunkProviderServer extends IChunkProvider {
playerchunk = this.getChunk(k);
gameprofilerfiller.exit();
if (this.a(playerchunk, l)) {
@@ -9195,7 +9195,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
if (isUrgent) {
future.thenAccept(either -> this.chunkMapDistance.clearUrgent(chunkcoordintpair));
}
@@ -600,8 +778,8 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -591,8 +769,8 @@ public class ChunkProviderServer extends IChunkProvider {
return !this.a(playerchunk, k);
}
@@ -9206,7 +9206,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
long k = ChunkCoordIntPair.pair(i, j);
PlayerChunk playerchunk = this.getChunk(k);
@@ -638,6 +816,8 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -629,6 +807,8 @@ public class ChunkProviderServer extends IChunkProvider {
public boolean tickDistanceManager() { // Paper - private -> public
if (chunkMapDistance.delayDistanceManagerTick) return false; // Paper
@@ -9215,7 +9215,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
boolean flag = this.chunkMapDistance.a(this.playerChunkMap);
boolean flag1 = this.playerChunkMap.b();
@@ -647,6 +827,7 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -638,6 +818,7 @@ public class ChunkProviderServer extends IChunkProvider {
this.clearCache();
return true;
}
@@ -9223,7 +9223,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
}
public final boolean isInEntityTickingChunk(Entity entity) { return this.a(entity); } // Paper - OBFHELPER
@@ -735,7 +916,7 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -726,7 +907,7 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.getMethodProfiler().enter("purge");
this.world.timings.doChunkMap.startTiming(); // Spigot
this.chunkMapDistance.purgeTickets();
@@ -9232,7 +9232,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
this.tickDistanceManager();
this.world.timings.doChunkMap.stopTiming(); // Spigot
this.world.getMethodProfiler().exitEnter("chunks");
@@ -745,7 +926,7 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -736,7 +917,7 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.timings.doChunkUnload.startTiming(); // Spigot
this.world.getMethodProfiler().exitEnter("unload");
this.playerChunkMap.unloadChunks(booleansupplier);
@@ -9241,7 +9241,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
this.world.timings.doChunkUnload.stopTiming(); // Spigot
this.world.getMethodProfiler().exit();
this.clearCache();
@@ -822,19 +1003,23 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -813,19 +994,23 @@ public class ChunkProviderServer extends IChunkProvider {
//List<PlayerChunk> list = Lists.newArrayList(this.playerChunkMap.f()); // Paper
//Collections.shuffle(list); // Paper
// Paper - moved up
@@ -9273,7 +9273,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
ChunkCoordIntPair chunkcoordintpair = playerchunk.i();
if (!this.playerChunkMap.isOutsideOfRange(playerchunk, chunkcoordintpair, false)) { // Paper - optimise isOutsideOfRange
@@ -846,11 +1031,15 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -837,11 +1022,15 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.timings.chunkTicks.startTiming(); // Spigot // Paper
this.world.a(chunk, k);
this.world.timings.chunkTicks.stopTiming(); // Spigot // Paper
@@ -9291,7 +9291,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
this.world.getMethodProfiler().enter("customSpawners");
if (flag1) {
try (co.aikar.timings.Timing ignored = this.world.timings.miscMobSpawning.startTiming()) { // Paper - timings
@@ -862,7 +1051,25 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -853,7 +1042,25 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.getMethodProfiler().exit();
}
@@ -9317,7 +9317,7 @@ index 6acb5f05a05c542f8257e205ef70987be2d29194..12d9b73ccc2f4406957932397746cac7
}
private void a(long i, Consumer<Chunk> consumer) {
@@ -1002,51 +1209,18 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -993,51 +1200,18 @@ public class ChunkProviderServer extends IChunkProvider {
ChunkProviderServer.this.world.getMethodProfiler().c("runTask");
super.executeTask(runnable);
}
@@ -15191,7 +15191,7 @@ index 5d9d58411f2fad9d5da703f964d269b4a7c2b205..f0fdfd6891e59891e7370a2d682b65c6
private double c;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 277c051f814d25dd7c57cdba268ea044873c88d5..4a17c1b8092968247ee9fa0ce2b5bd44baf2b18f 100644
index 17fdfb11e844a53af6a4df4f5f66f24667cdd862..cd67ca19436f791f871fd2bf4c258b6342fb554e 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -94,6 +94,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -15542,7 +15542,7 @@ index f011869880fedae4b69e505491e8bdbc5f51dfba..0d10d317cd0b60fc0866ae505c7fd71f
return this.j.d();
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index b033ff44373ec87702946c3cefe664fb46d609f4..72452abfe1fa8eafac386e0f2e5d87296772675a 100644
index 9c50357bb5da309b7cad74fdee15697a20e2e15f..2104c9ab5ed6fa81d29887b33313c8ff7310dd09 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -55,12 +55,13 @@ import org.bukkit.event.server.MapInitializeEvent;

View File

@@ -78,7 +78,7 @@ index 9b35c8ad9efe9241fe442bc6ef2e9f62def386d8..2c4c13b30b4533f5476f1128317d477a
if (this.bF) {
this.bF = false;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 4a17c1b8092968247ee9fa0ce2b5bd44baf2b18f..68dec17bbf64a60c774ab26abc326b953889aa8c 100644
index cd67ca19436f791f871fd2bf4c258b6342fb554e..07f30b9037cf983b18f31bc5fc10328928d75aee 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -95,6 +95,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

View File

@@ -193,7 +193,7 @@ index 5c708ed2cd3b10744b0d6d2eb2ef51d0411ce0dc..d1d4f4baf33e6b2224116f22a63b6d21
if (from.getX() != Double.MAX_VALUE) {
Location oldTo = to.clone();
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 72452abfe1fa8eafac386e0f2e5d87296772675a..6e34a58dd40785337b16c07e4f76566cd306db7e 100644
index 2104c9ab5ed6fa81d29887b33313c8ff7310dd09..9d1a062d2068df8cf7cc11a3f44240afd46f7c81 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -781,7 +781,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {

View File

@@ -42,7 +42,7 @@ index 3ac30bbf7ad327372b02ed365572fd3226fb6f9a..de72f058b6de539ff75858120d6d023e
this.methodProfiler.a(() -> {
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 6e34a58dd40785337b16c07e4f76566cd306db7e..f8a4f95f1568091fea44663d33daa06780c2a2b8 100644
index 9d1a062d2068df8cf7cc11a3f44240afd46f7c81..f74a26ca08c574d5a99d04276e8f33a82955440a 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -101,6 +101,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Zombie horse naturally spawn
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index f8a4f95f1568091fea44663d33daa06780c2a2b8..5ddb374c8eb7668bf4daeb516bedf351415a79f6 100644
index f74a26ca08c574d5a99d04276e8f33a82955440a..fa671594cf4021be197fda1cdc11f000faccf24b 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -996,12 +996,18 @@ public class WorldServer extends World implements GeneratorAccessSeed {

View File

@@ -233,7 +233,7 @@ index 661ad8f8e67046211e001ea40d97660d7c88f8e5..ee91c33a7a2edca02caf5c71fd6429f9
return iblockdata.r(iblockaccess, blockposition) ? false : (iblockdata.isPowerSource() ? false : (!fluid.isEmpty() ? false : (iblockdata.a((Tag) TagsBlock.PREVENT_MOB_SPAWNING_INSIDE) ? false : !entitytypes.a(iblockdata))));
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 68dec17bbf64a60c774ab26abc326b953889aa8c..f91d9a19b3d9870c99a03c86eb835b8ec68cc133 100644
index 07f30b9037cf983b18f31bc5fc10328928d75aee..d43f703a9b6d1a6ed3423f42f54c8efb37311883 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1566,6 +1566,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

View File

@@ -49,7 +49,7 @@ index 120bf8436fd82294c339add2e7bff1cda8311aea..848a185c04aa90a62e6bcc49ad68a748
return true;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index f91d9a19b3d9870c99a03c86eb835b8ec68cc133..70870b0af64ff9cac7a211cce7cc6ab2497a62ea 100644
index d43f703a9b6d1a6ed3423f42f54c8efb37311883..7a9442e89e951ed67947448d86d64d88f7880df0 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1641,4 +1641,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

View File

@@ -22,7 +22,7 @@ index 829d4a7508e1656dbdc912096b7eafcf30cbb5b2..6aea156d7c7a9ca8a357aad6a6781d72
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 5ddb374c8eb7668bf4daeb516bedf351415a79f6..49f15f76d008ac59862994a3577962d6747d89ae 100644
index fa671594cf4021be197fda1cdc11f000faccf24b..11893ad0f04311b028ad41352e24dcf10d55dfc7 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -321,14 +321,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {

View File

@@ -5026,7 +5026,7 @@ index 5af554870bcf36e47aef43b966b141b9eda6c4d5..c59305ef7dd7847e204d4c4ed79758bf
return new Vec3D(this.x * d0, this.y * d1, this.z * d2);
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 70870b0af64ff9cac7a211cce7cc6ab2497a62ea..b91f3efb61575869d54d630263bb6a4c6499153e 100644
index 7a9442e89e951ed67947448d86d64d88f7880df0..1cd1255d5e7fc907a0621e0db31c35a622fe2377 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1650,5 +1650,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -5041,7 +5041,7 @@ index 70870b0af64ff9cac7a211cce7cc6ab2497a62ea..b91f3efb61575869d54d630263bb6a4c
// Purpur end
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 49f15f76d008ac59862994a3577962d6747d89ae..f34855683eb2fae8f46e3915f6dff2e585f82a1d 100644
index 11893ad0f04311b028ad41352e24dcf10d55dfc7..21b915c0aa4f2192a3eaddbc950734c6bbcce339 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -102,6 +102,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {

View File

@@ -29,7 +29,7 @@ index 8d89f51182444852062d549d23c00a93e601eb38..072ec40f751b19c2a78dfcc6e439c643
if (SpawnerCreature.a(EntityPositionTypes.Surface.ON_GROUND, iworldreader, blockposition2, EntityTypes.WANDERING_TRADER)) {
blockposition1 = blockposition2;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index b91f3efb61575869d54d630263bb6a4c6499153e..22a5a212b8f0a223a338a8476d9fc7fd36c19df5 100644
index 1cd1255d5e7fc907a0621e0db31c35a622fe2377..ab99bce8c0ae2efb1072c6d154d15089aed2f941 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -156,7 +156,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -42,7 +42,7 @@ index b91f3efb61575869d54d630263bb6a4c6499153e..22a5a212b8f0a223a338a8476d9fc7fd
this.generator = gen;
this.world = new CraftWorld((WorldServer) this, gen, env);
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index f34855683eb2fae8f46e3915f6dff2e585f82a1d..7c35edeca619a25c975baf73ffc8e4b561e14db0 100644
index 21b915c0aa4f2192a3eaddbc950734c6bbcce339..f498241a31f531b74167a9f71f9871f6d620ee66 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -339,7 +339,24 @@ public class WorldServer extends World implements GeneratorAccessSeed {

View File

@@ -18,7 +18,7 @@ index 1b9b43ee696575d986c25cafec07d863acb951a7..e837db171545ceacbc84a2b360cf0d95
public PacketPlayOutUpdateTime() {}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 7c35edeca619a25c975baf73ffc8e4b561e14db0..a1ac7c5ee47a26229f2e13016cd21974bd97df82 100644
index f498241a31f531b74167a9f71f9871f6d620ee66..0e5c5809783d0c9699e2ee0f2cb498cde9f84ab6 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -94,6 +94,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {

View File

@@ -33,7 +33,7 @@ index bba343542e7e6fa83ec802d97b4c139bb210ab28..d9f9e2235d091e14e5d34bb9a3273e7f
int experience = this.getRandom().nextInt(7) + 1;
org.bukkit.event.entity.EntityBreedEvent entityBreedEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(entityageable, this, entityanimal, entityplayer, this.breedItem, experience);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 22a5a212b8f0a223a338a8476d9fc7fd36c19df5..7021875fd8f205049748fe96b945de8339f3ec58 100644
index ab99bce8c0ae2efb1072c6d154d15089aed2f941..3c02c34a13995f7805cd0196b6e2fd150061250c 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -104,6 +104,48 @@ public abstract class World implements GeneratorAccess, AutoCloseable {