diff --git a/README.md b/README.md index 795ef18..2746fc0 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,5 @@ Patches are licensed under GPL-3.0, unless indicated differently in their header Binaries are licensed under GPL-3.0. ## TODO -check Simpler ShapelessRecipe comparison for vanilla patch check Cache CubeVoxelShape shape array (crash) check backupRegionFile() in Add xor-shift random patch \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 714605c..e51ff0d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group=org.galemc.gale version=1.21-R0.1-SNAPSHOT mcVersion=1.21 -paperRef=20889d04d8c7a11ff76061d99abcb58acd470fe7 +paperRef=7bd22b1835af2611c5ad597aef6470b1ece9b547 org.gradle.caching=false org.gradle.parallel=true diff --git a/patches/server/0008-Gale-configuration.patch b/patches/server/0008-Gale-configuration.patch index 0179671..8648273 100644 --- a/patches/server/0008-Gale-configuration.patch +++ b/patches/server/0008-Gale-configuration.patch @@ -289,10 +289,10 @@ index 7d82cc6b847124cf4225428ba310309544928148..ac703c9ef504779dffbd8d7e676dbb51 if (this.convertOldUsers()) { this.getProfileCache().save(false); // Paper diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2d97ca1f3c625c0206d35b785c57d9587924ed0a..152ac3595ae74f2b5dc5cacc72a539d16590d786 100644 +index 2a752deb8cc44b49588be37198fe394a9c95683e..4b26fc350758822eae8d4d740e4276d4f17c59e0 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -519,7 +519,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -525,7 +525,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. // Holder holder = worlddimension.type(); // CraftBukkit - decompile error // Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error @@ -302,7 +302,7 @@ index 2d97ca1f3c625c0206d35b785c57d9587924ed0a..152ac3595ae74f2b5dc5cacc72a539d1 this.convertable = convertable_conversionsession; this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile()); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index fa6b8ce6505a3c094187298a63b0e944e1e74af1..e27f118ff2f49234dee68bb89086d7f9d5e62130 100644 +index 0d202ce8eb88bfdb8ca3306593d758fa483d8612..73407a5d33a24b50a250c38bc81f9a0f590e9f93 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -12,7 +12,6 @@ import java.util.function.Supplier; diff --git a/patches/server/0017-Remove-vanilla-profiler.patch b/patches/server/0017-Remove-vanilla-profiler.patch index a3765c7..847b403 100644 --- a/patches/server/0017-Remove-vanilla-profiler.patch +++ b/patches/server/0017-Remove-vanilla-profiler.patch @@ -614,7 +614,7 @@ index 831aaddd6d611a02d7066f002d0f1c8a46caffe6..e510366a69f44ea1772f5bbd1cf799d3 public SampleLogger getTickTimeLogger() { return this.tickTimeLogger; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index c96740a82eac9101f74edeb44edf4b64d1d633e0..57d46c0a1e85d82361e4694f50dfc02e6e687166 100644 +index 6df79aab2f0a75bbe347dc92e9ed5d62ceec7983..d3c0c50646794b36ffa5c6a8f6292eca5d575528 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -65,7 +65,6 @@ import net.minecraft.server.network.ServerPlayerConnection; @@ -752,7 +752,7 @@ index 64ed296cfbe7e5d27286b8cee70454fd1d99ebb0..ebae8578a2d0dfd0d329861f45d0f278 } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147ad55418d7 100644 +index 4b26fc350758822eae8d4d740e4276d4f17c59e0..713360d4135b5b586176ba6897e8c9f533e48b32 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -80,7 +80,6 @@ import net.minecraft.util.ProgressListener; @@ -763,7 +763,7 @@ index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147a import net.minecraft.util.valueproviders.IntProvider; import net.minecraft.util.valueproviders.UniformInt; import net.minecraft.world.DifficultyInstance; -@@ -519,15 +518,17 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -525,15 +524,17 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. // Holder holder = worlddimension.type(); // CraftBukkit - decompile error // Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error @@ -784,7 +784,7 @@ index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147a this.pathTypesByPosCache = new PathTypeCache(); this.navigatingMobs = new ObjectOpenHashSet(); this.blockEvents = new ObjectLinkedOpenHashSet(); -@@ -640,16 +641,12 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -646,16 +647,12 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } public void tick(BooleanSupplier shouldKeepTicking) { @@ -801,7 +801,7 @@ index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147a this.advanceWeatherCycle(); } -@@ -681,30 +678,23 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -687,30 +684,23 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. this.tickTime(); } @@ -832,7 +832,7 @@ index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147a if (flag) { this.timings.doSounds.startTiming(); // Spigot this.runBlockEvents(); -@@ -712,7 +702,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -718,7 +708,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } this.handlingTick = false; @@ -840,7 +840,7 @@ index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147a boolean flag1 = !paperConfig().unsupportedSettings.disableWorldTickingWhenEmpty || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players // Paper - restore this if (flag1) { -@@ -720,12 +709,9 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -726,12 +715,9 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } if (flag1 || this.emptyTime++ < 300) { @@ -853,7 +853,7 @@ index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147a } org.spigotmc.ActivationRange.activateEntities(this); // Spigot -@@ -735,9 +721,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -741,9 +727,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed entity.discard(); } else if (!tickratemanager.isEntityFrozen(entity)) { @@ -863,7 +863,7 @@ index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147a if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - rewrite chunk system Entity entity1 = entity.getVehicle(); -@@ -749,22 +733,17 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -755,22 +739,17 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. entity.stopRiding(); } @@ -886,7 +886,7 @@ index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147a } @Override -@@ -823,9 +802,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -829,9 +808,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. boolean flag = this.isRaining(); int j = chunkcoordintpair.getMinBlockX(); int k = chunkcoordintpair.getMinBlockZ(); @@ -896,7 +896,7 @@ index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147a 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 - Option to disable thunder -@@ -856,8 +833,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -862,8 +839,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } } @@ -905,7 +905,7 @@ index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147a if (!this.paperConfig().environment.disableIceAndSnow) { // Paper - Option to disable ice and snow for (int l = 0; l < randomTickSpeed; ++l) { if (this.random.nextInt(48) == 0) { -@@ -869,7 +844,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -875,7 +850,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } } // Paper - Option to disable ice and snow @@ -913,7 +913,7 @@ index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147a timings.chunkTicksBlocks.startTiming(); // Paper if (randomTickSpeed > 0) { // Paper start - optimize random block ticking -@@ -905,7 +879,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -911,7 +885,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. // Paper end - optimise random block ticking timings.chunkTicksBlocks.stopTiming(); // Paper @@ -921,7 +921,7 @@ index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147a } @VisibleForTesting -@@ -1223,19 +1196,13 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -1229,19 +1202,13 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. try { // Paper end - timings entity.setOldPosAndRot(); @@ -941,7 +941,7 @@ index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147a } finally { timer.stopTiming(); } // Paper - timings Iterator iterator = entity.getPassengers().iterator(); -@@ -1258,12 +1225,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -1264,12 +1231,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; @@ -954,7 +954,7 @@ index b26efc77a7669fd6b0ef498df23f0f78f1361073..55c81b6fa0173ba32cd3f3cee448147a // Paper start - EAR 2 if (isActive) { passenger.rideTick(); -@@ -1275,7 +1237,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -1281,7 +1243,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. vehicle.positionRider(passenger); } // Paper end - EAR 2 @@ -1113,10 +1113,10 @@ index 298e3eddd600f0b2e48ce2d4080cf68adff59a3a..6b3c57fc1231cd37e17a58137bb78411 protected abstract T prepare(ResourceManager manager, ProfilerFiller profiler); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 83f3ffdd8fa901b3de580d2359cdb5ead0d762cb..0f3dedcc20007385bdbfd9cab5209255fac38285 100644 +index 593f371c383d4310f4e8ed81200126b05f585ee6..7839702bd86dae0feefe1d6da4ef5661b0dfebc5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -838,7 +838,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -858,7 +858,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess // CraftBukkit end public void baseTick() { @@ -1124,7 +1124,7 @@ index 83f3ffdd8fa901b3de580d2359cdb5ead0d762cb..0f3dedcc20007385bdbfd9cab5209255 if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Prevent entity loading causing async lookups this.inBlockState = null; if (this.isPassenger() && this.getVehicle().isRemoved()) { -@@ -902,8 +901,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -922,8 +921,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (!this.level().isClientSide && this instanceof Leashable) { Leashable.tickLeash((Entity & Leashable) this); // CraftBukkit - decompile error } @@ -1133,7 +1133,7 @@ index 83f3ffdd8fa901b3de580d2359cdb5ead0d762cb..0f3dedcc20007385bdbfd9cab5209255 } public void setSharedFlagOnFire(boolean onFire) { -@@ -1081,7 +1078,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1101,7 +1098,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } } @@ -1141,7 +1141,7 @@ index 83f3ffdd8fa901b3de580d2359cdb5ead0d762cb..0f3dedcc20007385bdbfd9cab5209255 if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) { movement = movement.multiply(this.stuckSpeedMultiplier); this.stuckSpeedMultiplier = Vec3.ZERO; -@@ -1090,7 +1086,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1110,7 +1106,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess // Paper start - ignore movement changes while inactive. if (isTemporarilyActive && !(this instanceof ItemEntity) && movement == getDeltaMovement() && movementType == MoverType.SELF) { setDeltaMovement(Vec3.ZERO); @@ -1149,7 +1149,7 @@ index 83f3ffdd8fa901b3de580d2359cdb5ead0d762cb..0f3dedcc20007385bdbfd9cab5209255 return; } // Paper end -@@ -1111,8 +1106,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1131,8 +1126,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z); } @@ -1158,7 +1158,7 @@ index 83f3ffdd8fa901b3de580d2359cdb5ead0d762cb..0f3dedcc20007385bdbfd9cab5209255 boolean flag = !Mth.equal(movement.x, vec3d1.x); boolean flag1 = !Mth.equal(movement.z, vec3d1.z); -@@ -1130,9 +1123,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1150,9 +1143,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess BlockState iblockdata = this.level().getBlockState(blockposition); this.checkFallDamage(vec3d1.y, this.onGround(), iblockdata, blockposition); @@ -1169,7 +1169,7 @@ index 83f3ffdd8fa901b3de580d2359cdb5ead0d762cb..0f3dedcc20007385bdbfd9cab5209255 if (this.horizontalCollision) { Vec3 vec3d2 = this.getDeltaMovement(); -@@ -1233,8 +1224,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1253,8 +1244,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (this.isOnFire() && (this.isInPowderSnow || this.isInWaterRainOrBubble())) { this.setRemainingFireTicks(-this.getFireImmuneTicks()); } @@ -1178,7 +1178,7 @@ index 83f3ffdd8fa901b3de580d2359cdb5ead0d762cb..0f3dedcc20007385bdbfd9cab5209255 } } } -@@ -3102,7 +3091,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3122,7 +3111,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.processPortalCooldown(); if (this.portalProcess != null) { if (this.portalProcess.processPortalTeleportation(worldserver, this, this.canUsePortal(false))) { @@ -1186,7 +1186,7 @@ index 83f3ffdd8fa901b3de580d2359cdb5ead0d762cb..0f3dedcc20007385bdbfd9cab5209255 this.setPortalCooldown(); DimensionTransition dimensiontransition = this.portalProcess.getPortalDestination(worldserver, this); -@@ -3114,7 +3102,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3134,7 +3122,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } } @@ -1194,7 +1194,7 @@ index 83f3ffdd8fa901b3de580d2359cdb5ead0d762cb..0f3dedcc20007385bdbfd9cab5209255 } else if (this.portalProcess.hasExpired()) { this.portalProcess = null; } -@@ -3615,7 +3602,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3635,7 +3622,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } } @@ -1202,7 +1202,7 @@ index 83f3ffdd8fa901b3de580d2359cdb5ead0d762cb..0f3dedcc20007385bdbfd9cab5209255 Entity entity2 = worldserver1.dimension() == worldserver.dimension() ? this : this.getType().create(worldserver1); if (entity2 != null) { -@@ -3651,7 +3637,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3671,7 +3657,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess teleportTarget.postDimensionTransition().onTransition(entity2); } diff --git a/patches/server/0023-Move-random-tick-random.patch b/patches/server/0023-Move-random-tick-random.patch index 49c6e2d..f835309 100644 --- a/patches/server/0023-Move-random-tick-random.patch +++ b/patches/server/0023-Move-random-tick-random.patch @@ -19,10 +19,10 @@ require it to be initialized earlier. By moving it to the superclass, we initialize it earlier, ensuring that it is available sooner. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 55c81b6fa0173ba32cd3f3cee448147ad55418d7..920e2d9441ddf007581875b80de7827d716a6972 100644 +index 713360d4135b5b586176ba6897e8c9f533e48b32..a51c90ba7dbbef85cfb850d4d10d8eec9db83a82 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -794,7 +794,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -800,7 +800,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } // Paper start - optimise random block ticking private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos(); diff --git a/patches/server/0024-Optimize-random-calls-in-chunk-ticking.patch b/patches/server/0024-Optimize-random-calls-in-chunk-ticking.patch index c333d59..833b2dc 100644 --- a/patches/server/0024-Optimize-random-calls-in-chunk-ticking.patch +++ b/patches/server/0024-Optimize-random-calls-in-chunk-ticking.patch @@ -64,10 +64,10 @@ index ebae8578a2d0dfd0d329861f45d0f278fea1dd85..4200f3020b64160d3295995d8d9db117 this.level.timings.countNaturalMobs.startTiming(); // Paper - timings int k = this.distanceManager.getNaturalSpawnChunkCount(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 920e2d9441ddf007581875b80de7827d716a6972..9eb143508ace36756af8f728cfc13d24299dc8b1 100644 +index a51c90ba7dbbef85cfb850d4d10d8eec9db83a82..9d7b5062b803ebe75fcb8ed238724309fc03f47f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -796,6 +796,8 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -802,6 +802,8 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos(); // Paper end @@ -76,7 +76,7 @@ index 920e2d9441ddf007581875b80de7827d716a6972..9eb143508ace36756af8f728cfc13d24 public void tickChunk(LevelChunk chunk, int randomTickSpeed) { ChunkPos chunkcoordintpair = chunk.getPos(); boolean flag = this.isRaining(); -@@ -804,7 +806,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -810,7 +812,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change @@ -85,7 +85,7 @@ index 920e2d9441ddf007581875b80de7827d716a6972..9eb143508ace36756af8f728cfc13d24 blockposition.set(this.findLightningTargetAround(this.getBlockRandomPos(j, 0, k, 15))); // Paper if (this.isRainingAt(blockposition)) { -@@ -832,7 +834,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -838,7 +840,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } } diff --git a/patches/server/0034-Better-checking-for-useless-move-packets.patch b/patches/server/0034-Better-checking-for-useless-move-packets.patch index 7a1f9d9..9144c48 100644 --- a/patches/server/0034-Better-checking-for-useless-move-packets.patch +++ b/patches/server/0034-Better-checking-for-useless-move-packets.patch @@ -31,18 +31,18 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 1d849ce4e2c85f149af25318b8ffb6dcef6c6788..ac5bdd0584cd48d95c97dfa791eee9f447082cea 100644 +index b4971813d267dffc6507502345e5c8b991541eca..8b707bbc2fea71989311eb706e0d658d4dcbcdbf 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -181,6 +181,7 @@ public class ServerEntity { +@@ -188,6 +188,7 @@ public class ServerEntity { boolean flag6 = k < -32768L || k > 32767L || l < -32768L || l > 32767L || i1 < -32768L || i1 > 32767L; - if (!flag6 && this.teleportDelay <= 400 && !this.wasRiding && this.wasOnGround == this.entity.onGround()) { + if (!this.forceStateResync && !flag6 && this.teleportDelay <= 400 && !this.wasRiding && this.wasOnGround == this.entity.onGround()) { // Paper - fix desync when a player is added to the tracker + if (flag2 || flag3 || this.entity instanceof AbstractArrow) { // Gale - Airplane - better checking for useless move packets if ((!flag2 || !flag3) && !(this.entity instanceof AbstractArrow)) { if (flag2) { packet1 = new ClientboundMoveEntityPacket.Pos(this.entity.getId(), (short) ((int) k), (short) ((int) l), (short) ((int) i1), this.entity.onGround()); -@@ -194,6 +195,7 @@ public class ServerEntity { +@@ -201,6 +202,7 @@ public class ServerEntity { flag4 = true; flag5 = true; } diff --git a/patches/server/0038-Remove-streams-and-iterators-from-range-check.patch b/patches/server/0038-Remove-streams-and-iterators-from-range-check.patch index e65bd57..61d1e46 100644 --- a/patches/server/0038-Remove-streams-and-iterators-from-range-check.patch +++ b/patches/server/0038-Remove-streams-and-iterators-from-range-check.patch @@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 57d46c0a1e85d82361e4694f50dfc02e6e687166..5906faeaf30dddaeb96b8f71662d3e0f6c49194b 100644 +index d3c0c50646794b36ffa5c6a8f6292eca5d575528..3f7586470329eb5ad9668df34a38b832b96f36d5 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1194,8 +1194,30 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1308,8 +1308,30 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance); } @@ -65,7 +65,7 @@ index 57d46c0a1e85d82361e4694f50dfc02e6e687166..5906faeaf30dddaeb96b8f71662d3e0f Iterator iterator = this.entity.getIndirectPassengers().iterator(); while (iterator.hasNext()) { -@@ -1207,6 +1229,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1321,6 +1343,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider i = j; } } diff --git a/patches/server/0041-Remove-lambda-from-ticking-guard.patch b/patches/server/0041-Remove-lambda-from-ticking-guard.patch index 58ccc29..83f5acb 100644 --- a/patches/server/0041-Remove-lambda-from-ticking-guard.patch +++ b/patches/server/0041-Remove-lambda-from-ticking-guard.patch @@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9eb143508ace36756af8f728cfc13d24299dc8b1..461124b92e67690758b94d95c592be9206f8fbea 100644 +index 9d7b5062b803ebe75fcb8ed238724309fc03f47f..ba3e24f049da77bb88663e3c99a06eac027dc55b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -733,7 +733,20 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -739,7 +739,20 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. entity.stopRiding(); } diff --git a/patches/server/0042-Reduce-entity-fluid-lookups-if-no-fluids.patch b/patches/server/0042-Reduce-entity-fluid-lookups-if-no-fluids.patch index b45c578..8734d71 100644 --- a/patches/server/0042-Reduce-entity-fluid-lookups-if-no-fluids.patch +++ b/patches/server/0042-Reduce-entity-fluid-lookups-if-no-fluids.patch @@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 68e02e2ffdaf063471bf6022d328aad5475a5f94..985bc7856b165eee2df1edf3a53d9a8b40eb2516 100644 +index 34d234fffa7d2e52929acaa1341e2dc5854bdc7a..c012ff06018a1ad1441131494cd144bb5dd5831c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4271,16 +4271,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4294,16 +4294,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { @@ -60,7 +60,7 @@ index 68e02e2ffdaf063471bf6022d328aad5475a5f94..985bc7856b165eee2df1edf3a53d9a8b double d1 = 0.0D; boolean flag = this.isPushedByFluid(); boolean flag1 = false; -@@ -4288,14 +4290,61 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4311,14 +4313,61 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); @@ -128,7 +128,7 @@ index 68e02e2ffdaf063471bf6022d328aad5475a5f94..985bc7856b165eee2df1edf3a53d9a8b if (d2 >= axisalignedbb.minY) { flag1 = true; -@@ -4317,9 +4366,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4340,9 +4389,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess // CraftBukkit end } } diff --git a/patches/server/0076-Reduce-array-allocations.patch b/patches/server/0076-Reduce-array-allocations.patch index dff9138..e0d5dd7 100644 --- a/patches/server/0076-Reduce-array-allocations.patch +++ b/patches/server/0076-Reduce-array-allocations.patch @@ -356,10 +356,10 @@ index 244a19ecd0234fa1d7a6ecfea20751595688605d..f76ca394169d844a263a53c31c30e57d OptionSpec optionspec11 = optionparser.accepts("port").withRequiredArg().ofType(Integer.class).defaultsTo(-1, new Integer[0]); OptionSpec optionspec12 = optionparser.accepts("serverId").withRequiredArg(); diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index ac5bdd0584cd48d95c97dfa791eee9f447082cea..8090e9b6bd8a3e93532322b5a61058545c7c3a6d 100644 +index 8b707bbc2fea71989311eb706e0d658d4dcbcdbf..54d4c648660808692ae998b6f93da90341a394c4 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -338,7 +338,7 @@ public class ServerEntity { +@@ -346,7 +346,7 @@ public class ServerEntity { if (this.entity instanceof LivingEntity) { List> list = Lists.newArrayList(); diff --git a/patches/server/0077-Optimize-sun-burn-tick.patch b/patches/server/0077-Optimize-sun-burn-tick.patch index 361b684..f164b91 100644 --- a/patches/server/0077-Optimize-sun-burn-tick.patch +++ b/patches/server/0077-Optimize-sun-burn-tick.patch @@ -13,7 +13,7 @@ As part of: JettPack (https://gitlab.com/Titaniumtown/JettPack) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 46fa9c7cb799523980029392dba37d2c7951be9a..0419c25e47f04cfdb180588178d963d5d20616e6 100644 +index 12b497a54b4cfc3fb4b564dda6537d01e2602317..54ce3f4724d08abdf00bbb9eae70776a73d965f2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -315,7 +315,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -25,7 +25,7 @@ index 46fa9c7cb799523980029392dba37d2c7951be9a..0419c25e47f04cfdb180588178d963d5 public BlockPos blockPosition; // Gale - Pufferfish - optimize entity coordinate key - private -> public private ChunkPos chunkPosition; private Vec3 deltaMovement; -@@ -1958,9 +1958,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1978,9 +1978,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess /** @deprecated */ @Deprecated public float getLightLevelDependentMagicValue() { diff --git a/patches/server/0094-Skip-entity-move-if-movement-is-zero.patch b/patches/server/0094-Skip-entity-move-if-movement-is-zero.patch index cf44260..a3aa216 100644 --- a/patches/server/0094-Skip-entity-move-if-movement-is-zero.patch +++ b/patches/server/0094-Skip-entity-move-if-movement-is-zero.patch @@ -13,7 +13,7 @@ As part of: VMP (https://github.com/RelativityMC/VMP-fabric) Licensed under: MIT (https://opensource.org/licenses/MIT) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0419c25e47f04cfdb180588178d963d5d20616e6..2933f84e416228303d269aec13f7e649effa7a79 100644 +index 54ce3f4724d08abdf00bbb9eae70776a73d965f2..0c667db0abe536b3cbb07aea2c8026b681209c8e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -324,6 +324,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -24,7 +24,7 @@ index 0419c25e47f04cfdb180588178d963d5d20616e6..2933f84e416228303d269aec13f7e649 public boolean onGround; public boolean horizontalCollision; public boolean verticalCollision; -@@ -1065,6 +1066,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1085,6 +1086,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public void move(MoverType movementType, Vec3 movement) { @@ -36,7 +36,7 @@ index 0419c25e47f04cfdb180588178d963d5d20616e6..2933f84e416228303d269aec13f7e649 final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity if (this.noPhysics) { this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z); -@@ -3970,6 +3976,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3990,6 +3996,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public final void setBoundingBox(AABB boundingBox) { diff --git a/patches/server/0099-Hide-flames-on-entities-with-fire-resistance.patch b/patches/server/0099-Hide-flames-on-entities-with-fire-resistance.patch index 4120bfd..bcd7c23 100644 --- a/patches/server/0099-Hide-flames-on-entities-with-fire-resistance.patch +++ b/patches/server/0099-Hide-flames-on-entities-with-fire-resistance.patch @@ -13,10 +13,10 @@ As part of: Slice (https://github.com/Cryptite/Slice) Licensed under: MIT (https://opensource.org/licenses/MIT) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2933f84e416228303d269aec13f7e649effa7a79..6f13b8656869570eb7ebdb63611447c1d2d8ae52 100644 +index 0c667db0abe536b3cbb07aea2c8026b681209c8e..db7de9c5ea150edae263798d8ee5d8ca3c97efeb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -896,7 +896,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -916,7 +916,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.checkBelowWorld(); if (!this.level().isClientSide) { diff --git a/patches/server/0101-Reduce-block-destruction-packet-allocations.patch b/patches/server/0101-Reduce-block-destruction-packet-allocations.patch index 36be151..c98c664 100644 --- a/patches/server/0101-Reduce-block-destruction-packet-allocations.patch +++ b/patches/server/0101-Reduce-block-destruction-packet-allocations.patch @@ -13,10 +13,10 @@ As part of: SportPaper (https://github.com/Electroid/SportPaper) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 461124b92e67690758b94d95c592be9206f8fbea..0d1c24dc6da1541e934aeb6294f748d0ed358318 100644 +index ba3e24f049da77bb88663e3c99a06eac027dc55b..8777b99bdf4071f6b91c7a0fa8f2c552428cf777 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1529,7 +1529,17 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -1535,7 +1535,17 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. @Override public void destroyBlockProgress(int entityId, BlockPos pos, int progress) { @@ -35,7 +35,7 @@ index 461124b92e67690758b94d95c592be9206f8fbea..0d1c24dc6da1541e934aeb6294f748d0 // CraftBukkit start Player entityhuman = null; -@@ -1563,7 +1573,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -1569,7 +1579,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. // CraftBukkit end if (d0 * d0 + d1 * d1 + d2 * d2 < 1024.0D) { diff --git a/patches/server/0107-Load-portal-destination-chunk-before-entity-teleport.patch b/patches/server/0107-Load-portal-destination-chunk-before-entity-teleport.patch index 8e82339..d10257b 100644 --- a/patches/server/0107-Load-portal-destination-chunk-before-entity-teleport.patch +++ b/patches/server/0107-Load-portal-destination-chunk-before-entity-teleport.patch @@ -13,10 +13,10 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6f13b8656869570eb7ebdb63611447c1d2d8ae52..47f94388024f1618549d9cafa6a8c2bb24d7279d 100644 +index db7de9c5ea150edae263798d8ee5d8ca3c97efeb..e9f8690af2f94749d6c07b7657985e6488d24eef 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3845,7 +3845,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3865,7 +3865,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (entity == null) { return false; diff --git a/patches/server/0109-Don-t-load-chunks-to-activate-climbing-entities.patch b/patches/server/0109-Don-t-load-chunks-to-activate-climbing-entities.patch index 1b32512..e20a82c 100644 --- a/patches/server/0109-Don-t-load-chunks-to-activate-climbing-entities.patch +++ b/patches/server/0109-Don-t-load-chunks-to-activate-climbing-entities.patch @@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 47f94388024f1618549d9cafa6a8c2bb24d7279d..d0599a0a41d4bfc1a2063ef4228402da00e1a06c 100644 +index e9f8690af2f94749d6c07b7657985e6488d24eef..6c065ff49a05546781fd3e0f6861e5032e72a67b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4493,6 +4493,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4516,6 +4516,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return this.inBlockState; } diff --git a/patches/server/0123-For-collision-check-has-physics-before-same-vehicle.patch b/patches/server/0123-For-collision-check-has-physics-before-same-vehicle.patch index 377126d..448a4f9 100644 --- a/patches/server/0123-For-collision-check-has-physics-before-same-vehicle.patch +++ b/patches/server/0123-For-collision-check-has-physics-before-same-vehicle.patch @@ -16,10 +16,10 @@ As part of: Akarin (https://github.com/Akarin-project/Akarin) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d0599a0a41d4bfc1a2063ef4228402da00e1a06c..9edcf2a791fd645ce7a13cea21446167d619a0a9 100644 +index 6c065ff49a05546781fd3e0f6861e5032e72a67b..138da0cbdde29aa871f3e1493b0584698bce63e9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2085,8 +2085,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2105,8 +2105,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess public void playerTouch(Player player) {} public void push(Entity entity) { diff --git a/patches/server/0124-Skip-negligible-planar-movement-multiplication.patch b/patches/server/0124-Skip-negligible-planar-movement-multiplication.patch index f9c4786..d32f042 100644 --- a/patches/server/0124-Skip-negligible-planar-movement-multiplication.patch +++ b/patches/server/0124-Skip-negligible-planar-movement-multiplication.patch @@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9edcf2a791fd645ce7a13cea21446167d619a0a9..0170337bc9b2837d542d0235039c15d5e8dffba2 100644 +index 138da0cbdde29aa871f3e1493b0584698bce63e9..73b13f630fc22c504b966ee5a96f0162a1af2699 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1219,9 +1219,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1239,9 +1239,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } this.tryCheckInsideBlocks();