Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@cc491a3 Finish updating chunk system patch
PaperMC/Paper@619d7c9 Add in some patches
PaperMC/Paper@902691b Apply last patch
PaperMC/Paper@efb4197 Fix final compilation issues
PaperMC/Paper@57a5924 Fix boot errors
PaperMC/Paper@c1def9d Updated Upstream (CraftBukkit/Spigot)
PaperMC/Paper@a0a2e72 fix sculk npe
PaperMC/Paper@318a08c add missing block entity type to CraftBlockStates
PaperMC/Paper@aed9ef0 Update adventure
PaperMC/Paper@9d42879 Fix breaking pots throwing exception
PaperMC/Paper@59060aa fix some failing tests
PaperMC/Paper@e325e37 add missing call to EntityInsideBlockEvent
PaperMC/Paper@8ce5219 Fix inconsistent chunk sending with vanilla
PaperMC/Paper@04509f0 Fix crash relating to "Already sent chunk"
PaperMC/Paper@c9eb393 Updated Upstream (Bukkit)
PaperMC/Paper@21f2d15 Avoid duplicate poi entries from the first section (#9235)
PaperMC/Paper@3621d76 Fix collision between AABB and a dot (#8733)
PaperMC/Paper@ccb194b Move block farther away for Player#setRotation (#8514)
PaperMC/Paper@03c3587 fix not editable sign after openSign
PaperMC/Paper@6d74ad1 Finish tests & bad calls
PaperMC/Paper@e829a9d Fix javadoc
PaperMC/Paper@82c6479 Add back Anti-Xray patch (#9283)
PaperMC/Paper@0d969f0 comment out update logic from build.gradle.kts
PaperMC/Paper@ea9fdc3 Ignore inline definitions of trim material & pattern
PaperMC/Paper@9ada4bd Prevent the rcon thread from attempting connections after shutdown
PaperMC/Paper@c9e125f Fix setListenerRange for calibrated sculk sensors
PaperMC/Paper@9ebf75d fix some more 1.20 tracking issues
PaperMC/Paper@f9fc44f add side to PlayerSignCommandPreprocessEvent
PaperMC/Paper@4e3febb fix missing trigger entity for xp orb from breeding
PaperMC/Paper@4b5f847 Minimise EntityFertilizeEggEvent and add sniffer (#9280)
This commit is contained in:
granny
2023-06-09 05:22:52 -07:00
parent e4edcee766
commit b53946bebb
58 changed files with 293 additions and 293 deletions

View File

@@ -388,10 +388,10 @@ index aa3f4ca3be843616d34897e41909255f512f8963..426ac5faa9344472560fb20bdea8bdc3
++j;
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 89aebe46deff84ab458b6e2302a98a42103b7195..530ce9950b83420d5a033e6c552dafb388945c05 100644
index f60c8dbe8d6e04a19450a6cc1f3b2a27ca3ba2db..7fb00407b75603cf6ff63f1fd1f3e020524caf82 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -542,20 +542,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -618,20 +618,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
protected void tick(BooleanSupplier shouldKeepTicking) {
@@ -417,10 +417,10 @@ index 89aebe46deff84ab458b6e2302a98a42103b7195..530ce9950b83420d5a033e6c552dafb3
public boolean hasWork() {
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cdf92b6dcf 100644
index c4601ee883ecff651585aaaf33fe3a9f747d4338..f75f7b39aa4ed5c18cd2d761a1337df5b1771a23 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -428,16 +428,16 @@ public class ServerChunkCache extends ChunkSource {
@@ -277,16 +277,16 @@ public class ServerChunkCache extends ChunkSource {
return ifLoaded;
}
// Paper end
@@ -440,7 +440,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> completablefuture = this.getChunkFutureMainThread(x, z, leastStatus, create, true); // Paper
ServerChunkCache.MainThreadExecutor chunkproviderserver_b = this.mainThreadProcessor;
@@ -626,24 +626,24 @@ public class ServerChunkCache extends ChunkSource {
@@ -475,24 +475,24 @@ public class ServerChunkCache extends ChunkSource {
// CraftBukkit start - modelled on below
public void purgeUnload() {
if (true) return; // Paper - tickets will be removed later, this behavior isn't really well accounted for by the chunk system
@@ -470,7 +470,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
if (tickChunks) {
//this.level.timings.chunks.startTiming(); // Paper - timings // Purpur
this.chunkMap.level.playerChunkLoader.tick(); // Paper - replace player chunk loader - this is mostly required to account for view distance changes
@@ -652,10 +652,10 @@ public class ServerChunkCache extends ChunkSource {
@@ -501,10 +501,10 @@ public class ServerChunkCache extends ChunkSource {
}
//this.level.timings.doChunkUnload.startTiming(); // Spigot // Purpur
@@ -483,7 +483,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
this.clearCache();
}
@@ -701,13 +701,13 @@ public class ServerChunkCache extends ChunkSource {
@@ -550,13 +550,13 @@ public class ServerChunkCache extends ChunkSource {
}
// Paper end - optimize isOutisdeRange
LevelData worlddata = this.level.getLevelData();
@@ -500,7 +500,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
//this.level.timings.countNaturalMobs.startTiming(); // Paper - timings // Purpur
int l = this.distanceManager.getNaturalSpawnChunkCount();
// Paper start - per player mob spawning
@@ -725,13 +725,13 @@ public class ServerChunkCache extends ChunkSource {
@@ -574,13 +574,13 @@ public class ServerChunkCache extends ChunkSource {
//this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings // Purpur
this.lastSpawnState = spawnercreature_d;
@@ -516,7 +516,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
boolean flag2 = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit
// Paper - only shuffle if per-player mob spawning is disabled
@@ -783,15 +783,15 @@ public class ServerChunkCache extends ChunkSource {
@@ -632,15 +632,15 @@ public class ServerChunkCache extends ChunkSource {
}
// Paper end - optimise chunk tick iteration
//this.level.timings.chunkTicks.stopTiming(); // Paper // Purpur
@@ -535,7 +535,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
//this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing // Purpur
if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();
@@ -805,7 +805,7 @@ public class ServerChunkCache extends ChunkSource {
@@ -654,7 +654,7 @@ public class ServerChunkCache extends ChunkSource {
}
}
//this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing // Purpur
@@ -544,7 +544,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
// Paper end - use set of chunks requiring updates, rather than iterating every single one loaded
// Paper start - controlled flush for entity tracker packets
List<net.minecraft.network.Connection> disabledFlushes = new java.util.ArrayList<>(this.level.players.size());
@@ -996,7 +996,7 @@ public class ServerChunkCache extends ChunkSource {
@@ -845,7 +845,7 @@ public class ServerChunkCache extends ChunkSource {
@Override
protected void doRunTask(Runnable task) {
@@ -554,10 +554,10 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a1c294ff7 100644
index 55f892e0b9eb098f3cdd922fa5d5d53005722859..653e469c726e6e44b93452e0cac2448e3816b3c8 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -714,12 +714,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -795,12 +795,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
// Paper end - optimise checkDespawn
@@ -573,7 +573,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
this.advanceWeatherCycle();
int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
long j;
@@ -746,32 +746,32 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -827,32 +827,32 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.updateSkyBrightness();
this.tickTime();
@@ -614,7 +614,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
boolean flag = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
if (flag) {
@@ -779,12 +779,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -860,12 +860,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
if (flag || this.emptyTime++ < 300) {
@@ -630,7 +630,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
}
org.spigotmc.ActivationRange.activateEntities(this); // Spigot
@@ -794,9 +794,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -875,9 +875,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed
entity.discard();
} else {
@@ -642,7 +642,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - now always true if in the ticking list
Entity entity1 = entity.getVehicle();
@@ -808,22 +808,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -889,22 +889,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
entity.stopRiding();
}
@@ -669,7 +669,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
}
@Override
@@ -903,9 +902,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -984,9 +983,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
boolean flag = this.isRaining();
int j = chunkcoordintpair.getMinBlockX();
int k = chunkcoordintpair.getMinBlockZ();
@@ -681,7 +681,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0) { // Spigot // Paper - disable thunder
@@ -943,7 +942,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1024,7 +1023,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
@@ -690,7 +690,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
int l;
int i1;
@@ -995,7 +994,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1076,7 +1075,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
// Paper start - optimise random block ticking
@@ -699,7 +699,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
//timings.chunkTicksBlocks.startTiming(); // Paper // Purpur
if (randomTickSpeed > 0) {
LevelChunkSection[] sections = chunk.getSections();
@@ -1031,7 +1030,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1112,7 +1111,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
// Paper end - optimise random block ticking
//timings.chunkTicksBlocks.stopTiming(); // Paper // Purpur
@@ -708,7 +708,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
}
public Optional<BlockPos> findLightningRod(BlockPos pos) {
@@ -1327,19 +1326,19 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1408,19 +1407,19 @@ public class ServerLevel extends Level implements WorldGenLevel {
//try { // Purpur
// Paper end - timings
entity.setOldPosAndRot();
@@ -733,7 +733,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
//} finally { timer.stopTiming(); } // Paper - timings // Purpur
Iterator iterator = entity.getPassengers().iterator();
@@ -1368,12 +1367,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1449,12 +1448,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Paper end
passenger.setOldPosAndRot();
++passenger.tickCount;
@@ -750,7 +750,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a
// Paper start - EAR 2
if (isActive) {
passenger.rideTick();
@@ -1385,7 +1384,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1466,7 +1465,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
vehicle.positionRider(passenger);
}
// Paper end - EAR 2
@@ -793,7 +793,7 @@ index a155e61a95c0fe4fc16d6d18a02a83b6d5b2a930..c3bb1f0d4ea44d88f2f5453e9fc8b109
this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities()));
playerlist.sendLevelInfo(this, worldserver);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 1205b3099fdaa56e2d45e46b650fb602892e9c8b..eb62c04013d981390524beb74dc37bc2443b844c 100644
index cc46bb346b7cd8e0a730fbc9b43b4d04f719115e..e3ec7429e262658ca94db9b74f3fe39e927f93c1 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -410,7 +410,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1019,10 +1019,10 @@ index 2e6e8eac987c4ef6b2dcd3de592d8a51d2b29792..863343a87fe34d72f04af89d75268b47
};
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c446a499fb 100644
index 7a955f3848fcea9a72e5b758165f7685e74436c2..4dcb02a7326361ecef6fe3cc5cd426fc949f9fd8 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -783,7 +783,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -816,7 +816,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
// CraftBukkit end
public void baseTick() {
@@ -1031,7 +1031,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Update last hurt when ticking
this.feetBlockState = null;
if (this.isPassenger() && this.getVehicle().isRemoved()) {
@@ -844,7 +844,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -877,7 +877,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
this.firstTick = false;
@@ -1040,7 +1040,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
}
public void setSharedFlagOnFire(boolean onFire) {
@@ -1063,7 +1063,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1096,7 +1096,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
}
@@ -1049,7 +1049,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) {
movement = movement.multiply(this.stuckSpeedMultiplier);
this.stuckSpeedMultiplier = Vec3.ZERO;
@@ -1072,7 +1072,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1105,7 +1105,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
// Paper start - ignore movement changes while inactive.
if (isTemporarilyActive && !(this instanceof ItemEntity || this instanceof net.minecraft.world.entity.vehicle.AbstractMinecart) && movement == getDeltaMovement() && movementType == MoverType.SELF) {
setDeltaMovement(Vec3.ZERO);
@@ -1058,7 +1058,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
return;
}
// Paper end
@@ -1093,8 +1093,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1126,8 +1126,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z);
}
@@ -1069,7 +1069,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
boolean flag = !Mth.equal(movement.x, vec3d1.x);
boolean flag1 = !Mth.equal(movement.z, vec3d1.z);
@@ -1113,7 +1113,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1146,7 +1146,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.checkFallDamage(vec3d1.y, this.onGround(), iblockdata, blockposition);
if (this.isRemoved()) {
@@ -1078,7 +1078,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
} else {
if (this.horizontalCollision) {
Vec3 vec3d2 = this.getDeltaMovement();
@@ -1251,7 +1251,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1284,7 +1284,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.setRemainingFireTicks(-this.getFireImmuneTicks());
}
@@ -1087,7 +1087,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
}
}
// Paper start - detailed watchdog information
@@ -3037,7 +3037,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3070,7 +3070,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
ServerLevel worldserver1 = minecraftserver.getLevel(resourcekey);
if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit
@@ -1096,7 +1096,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
this.portalTime = i;
// Paper start
io.papermc.paper.event.entity.EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), worldserver1 == null ? null : worldserver1.getWorld(), org.bukkit.PortalType.NETHER);
@@ -3055,7 +3055,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3088,7 +3088,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
} // Paper
// CraftBukkit end
@@ -1105,7 +1105,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
}
this.isInsidePortal = false;
@@ -3526,14 +3526,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3559,14 +3559,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
// Paper end
if (this.level() instanceof ServerLevel && !this.isRemoved()) {
@@ -1122,7 +1122,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
PortalInfo shapedetectorshape = (location == null) ? this.findDimensionEntryPoint(worldserver) : new PortalInfo(new Vec3(location.x(), location.y(), location.z()), Vec3.ZERO, this.yRot, this.xRot, worldserver, null); // CraftBukkit
if (shapedetectorshape == null) {
@@ -3567,7 +3567,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3600,7 +3600,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.unRide();
// CraftBukkit end
@@ -1131,7 +1131,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
// Paper start - Change lead drop timing to prevent dupe
if (this instanceof Mob) {
((Mob) this).dropLeash(true, true); // Paper drop lead
@@ -3590,10 +3590,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3623,10 +3623,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
this.removeAfterChangingDimensions();
@@ -1145,7 +1145,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4
}
} else {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index b8fbc726f1f73a4c20ea7eeca2846c864b9e67bc..3084ea26a9364a58a78a4f75df40aa509124ac44 100644
index 6e2412640d76c45158777136bc38cbe523440e69..af5a747241966dd93b331f1d79e3a857a38ac86c 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -412,7 +412,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1508,7 +1508,7 @@ index d560bb344fefdfb2e8393dc1c5d96ef6d9dbf0e5..42c571c154ebdd24fabc5354618e6be0
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
index e60f530f78feebf851382f30b035ec9bcacf22b4..4eb091a1cd9c803bfc0a2258099f03404be7d82b 100644
index eab6d7bb5ae6635eb881156f50c8fd4ed2adb11a..21f0554ae9281ddd088cf36c79bb005e18473a7f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
@@ -217,12 +217,12 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
@@ -1572,10 +1572,10 @@ index 0ebb9ac9d951741eb9dea8475380cfcc68becae3..a707954d8e5b88ed37c2640437a10781
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
index ac84a3812fa8d5b61b69cc29cf0a756f5ac8a886..479b041711134ea2eaa0e00f8ef4858a84de30d2 100644
index 3ab900c53469327b8d686da81ed5b4aaaddb7440..14df8a4e0c1a1dcfbbd2f4fdfd865bd77bb02325 100644
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -514,11 +514,11 @@ public class Sniffer extends Animal {
@@ -519,11 +519,11 @@ public class Sniffer extends Animal {
@Override
protected void customServerAiStep() {
@@ -1719,10 +1719,10 @@ index 8f97c9df726ac20cfce7bdddd5dd4f8c5aa76c35..e35ebb5b923c2f63e37e5dae006bc4a0
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc782a52db8e 100644
index 000697994299163fa3287450652be551a81cf466..5287a6fe5742bdfe179fe669ee1f1edfbbd0fae6 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -906,9 +906,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -909,9 +909,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
protected void tickBlockEntities() {
@@ -1734,7 +1734,7 @@ index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc78
//timings.tileEntityPending.startTiming(); // Spigot // Purpur
this.tickingBlockEntities = true;
if (!this.pendingBlockEntityTickers.isEmpty()) {
@@ -953,7 +953,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -956,7 +956,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
//timings.tileEntityTick.stopTiming(); // Spigot // Purpur
this.tickingBlockEntities = false;
co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper
@@ -1743,7 +1743,7 @@ index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc78
spigotConfig.currentPrimedTnt = 0; // Spigot
}
@@ -1146,7 +1146,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1149,7 +1149,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@Override
public List<Entity> getEntities(@Nullable Entity except, AABB box, Predicate<? super Entity> predicate) {
@@ -1752,7 +1752,7 @@ index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc78
List<Entity> list = Lists.newArrayList();
((ServerLevel)this).getEntityLookup().getEntities(except, box, list, predicate); // Paper - optimise this call
return list;
@@ -1165,7 +1165,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1168,7 +1168,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
public <T extends Entity> void getEntities(EntityTypeTest<Entity, T> filter, AABB box, Predicate<? super T> predicate, List<? super T> result, int limit) {
@@ -1761,7 +1761,7 @@ index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc78
// Paper start - optimise this call
//TODO use limit
if (filter instanceof net.minecraft.world.entity.EntityType entityTypeTest) {
@@ -1422,6 +1422,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1425,6 +1425,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
public ProfilerFiller getProfiler() {
@@ -1792,7 +1792,7 @@ index 4e2611c9a7df8343f76e3be3f01f2f828cdf8a1d..03fc9c6ef0fb320924038f2730c6f084
// Paper start
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
index c4b4091a52cc08c33ab73bc1ed725477aae26982..590cb3c8fe3061e861aa3c792a2898d4e9f971bd 100644
index 5de3b6cd73a45348d0feba858d96a500bf236ce7..d7b8b8250564831ab3e84043292e48f058698a93 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -1256,9 +1256,9 @@ public class LevelChunk extends ChunkAccess {