diff --git a/gradle.properties b/gradle.properties index 8926da231..d438aa67b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.20.4-R0.1-SNAPSHOT mcVersion = 1.20.4 -paperCommit = de04cbced5441dfa9847b02ab28fe7c4b54f054c +paperCommit = 0b952981e6e96157d2cea8322c04c0f69965f2bf org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/server/0005-Component-related-conveniences.patch b/patches/server/0005-Component-related-conveniences.patch index e89c2bdd2..c415bd65f 100644 --- a/patches/server/0005-Component-related-conveniences.patch +++ b/patches/server/0005-Component-related-conveniences.patch @@ -81,10 +81,10 @@ index 25a5a3b949a0eb632611355e74ccd4865be108ca..14fcfd7c1d3a62833978e163f4e0d6f9 return this.type().msgId(); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9abe817ae202edaa2d88cd59ae5c7db0b1c634be..37632d0c41149e6269fead808903765f0e59dbcc 100644 +index 0c46a4aeafd03fbbfd590b0362d41bf2b1d5ca74..b81ec809a0ba2462a9b5a212c0362a6b50d1bfbf 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4130,6 +4130,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4125,6 +4125,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return SlotAccess.NULL; } diff --git a/patches/server/0006-Ridables.patch b/patches/server/0006-Ridables.patch index 44f2f710a..6bd067d10 100644 --- a/patches/server/0006-Ridables.patch +++ b/patches/server/0006-Ridables.patch @@ -79,7 +79,7 @@ index 30ccbab1586a656e0ae41d7406525fb02d9e025b..bec249a47f1fbcabd6a121399d19d71e if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 37632d0c41149e6269fead808903765f0e59dbcc..eed3fa6b14b1e93f8d6571bba5675796e3418f49 100644 +index b81ec809a0ba2462a9b5a212c0362a6b50d1bfbf..3773ae61b9cb747dd33613990339d1e3f363138e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -377,7 +377,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -91,7 +91,7 @@ index 37632d0c41149e6269fead808903765f0e59dbcc..eed3fa6b14b1e93f8d6571bba5675796 private float eyeHeight; public boolean isInPowderSnow; public boolean wasInPowderSnow; -@@ -3001,6 +3001,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2996,6 +2996,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.passengers = ImmutableList.copyOf(list); } @@ -105,7 +105,7 @@ index 37632d0c41149e6269fead808903765f0e59dbcc..eed3fa6b14b1e93f8d6571bba5675796 this.gameEvent(GameEvent.ENTITY_MOUNT, passenger); } } -@@ -3041,6 +3048,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3036,6 +3043,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return false; } // Spigot end @@ -120,7 +120,7 @@ index 37632d0c41149e6269fead808903765f0e59dbcc..eed3fa6b14b1e93f8d6571bba5675796 if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { this.passengers = ImmutableList.of(); } else { -@@ -4930,4 +4945,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4925,4 +4940,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end @@ -4375,7 +4375,7 @@ index cd964e5cded6a74cb9dcf27b4134f944764062cd..5d15c491034e2bd9c136935f5b266e2d } diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java -index 6f12e342adf1a008709fd9a4fbbbe1da8ec31b83..5a578ab80853f8961afeec2aae76ed521f486430 100644 +index 9063f66b0497a3eb3893e307e685be692cc5c128..5944ded9de9fac56136b30858fbf8236f8f6f555 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Spider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java @@ -53,14 +53,33 @@ public class Spider extends Monster { diff --git a/patches/server/0052-Configurable-void-damage-height-and-damage.patch b/patches/server/0052-Configurable-void-damage-height-and-damage.patch index e31f6d0a8..eb22d84fd 100644 --- a/patches/server/0052-Configurable-void-damage-height-and-damage.patch +++ b/patches/server/0052-Configurable-void-damage-height-and-damage.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable void damage height and damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e664ca676c21b1c7fdc9df00797060053901e1f7..e5a66f96970446174d3a37f544611c9220faf91e 100644 +index 14318ffea715e7175f5d5d02a1fce84ff2f0ff80..ab1b3e634ab110e7f6cd98468e30b0b48367c25e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -886,7 +886,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -885,7 +885,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void checkBelowWorld() { // Paper start - Configurable nether ceiling damage diff --git a/patches/server/0053-Add-canSaveToDisk-to-Entity.patch b/patches/server/0053-Add-canSaveToDisk-to-Entity.patch index 1c1028999..43bd30a08 100644 --- a/patches/server/0053-Add-canSaveToDisk-to-Entity.patch +++ b/patches/server/0053-Add-canSaveToDisk-to-Entity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e5a66f96970446174d3a37f544611c9220faf91e..39bf307e3fd3c5333192e132b4cb56355444eacc 100644 +index ab1b3e634ab110e7f6cd98468e30b0b48367c25e..bc59457a526232f7b962d3fb575d0678524eba0a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -492,6 +492,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -491,6 +491,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return false; } diff --git a/patches/server/0082-Stop-squids-floating-on-top-of-water.patch b/patches/server/0082-Stop-squids-floating-on-top-of-water.patch index 72926b934..8338b1296 100644 --- a/patches/server/0082-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0082-Stop-squids-floating-on-top-of-water.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 39bf307e3fd3c5333192e132b4cb56355444eacc..d39d3980235a022ee79b20eb5ed63fd63cd27522 100644 +index bc59457a526232f7b962d3fb575d0678524eba0a..8f8a17180f8010a62af9b59faf035ec10bd8967a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4436,6 +4436,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4431,6 +4431,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.yRotO = this.getYRot(); } diff --git a/patches/server/0084-Entities-can-use-portals-configuration.patch b/patches/server/0084-Entities-can-use-portals-configuration.patch index 647dbbb6e..550c92359 100644 --- a/patches/server/0084-Entities-can-use-portals-configuration.patch +++ b/patches/server/0084-Entities-can-use-portals-configuration.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals configuration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d39d3980235a022ee79b20eb5ed63fd63cd27522..9907c10091b0f02c43cfd2d4b0d0953b91cbb070 100644 +index 8f8a17180f8010a62af9b59faf035ec10bd8967a..77ada6859c6fcc6929be5da350ac0f483dd1ae00 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3142,7 +3142,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3137,7 +3137,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void handleInsidePortal(BlockPos pos) { if (this.isOnPortalCooldown()) { this.setPortalCooldown(); @@ -17,7 +17,7 @@ index d39d3980235a022ee79b20eb5ed63fd63cd27522..9907c10091b0f02c43cfd2d4b0d0953b if (!this.level().isClientSide && !pos.equals(this.portalEntrancePos)) { this.portalEntrancePos = pos.immutable(); } -@@ -3851,7 +3851,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3846,7 +3846,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean canChangeDimensions() { diff --git a/patches/server/0124-Movement-options-for-armor-stands.patch b/patches/server/0124-Movement-options-for-armor-stands.patch index 85f9bf338..062b6ae1d 100644 --- a/patches/server/0124-Movement-options-for-armor-stands.patch +++ b/patches/server/0124-Movement-options-for-armor-stands.patch @@ -17,10 +17,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 9907c10091b0f02c43cfd2d4b0d0953b91cbb070..da036cb4be83301a22c9f5af9c7f1439a9347799 100644 +index 77ada6859c6fcc6929be5da350ac0f483dd1ae00..63c195ece6a96940bc059251bb40ab9129196fe1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1863,7 +1863,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1858,7 +1858,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return this.isInWater() || flag; } diff --git a/patches/server/0125-Fix-stuck-in-portals.patch b/patches/server/0125-Fix-stuck-in-portals.patch index b67ed1e11..3d584387a 100644 --- a/patches/server/0125-Fix-stuck-in-portals.patch +++ b/patches/server/0125-Fix-stuck-in-portals.patch @@ -17,10 +17,10 @@ index 3349082af08600894fbca04533f9ab4a9bf2dfd9..c63502c452c3804fafe31fe4daf2aed8 // CraftBukkit end this.setServerLevel(worldserver); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index da036cb4be83301a22c9f5af9c7f1439a9347799..93c4f2ccf556a52e5bc951291f847f53d056c2b0 100644 +index 63c195ece6a96940bc059251bb40ab9129196fe1..1bf2960f34b120f258bc75bba6552c8b22ce9ed7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3139,12 +3139,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3134,12 +3134,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return Vec3.directionFromRotation(this.getRotationVector()); } diff --git a/patches/server/0145-Drowning-Settings.patch b/patches/server/0145-Drowning-Settings.patch index 1af0a0ffd..376c73c21 100644 --- a/patches/server/0145-Drowning-Settings.patch +++ b/patches/server/0145-Drowning-Settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Drowning Settings diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 93c4f2ccf556a52e5bc951291f847f53d056c2b0..f12ad902b6add41ffd9aff19081ce4abf998effb 100644 +index 1bf2960f34b120f258bc75bba6552c8b22ce9ed7..c45e7caa0ecbeaa1b37f722abba2884a6148ca20 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3388,7 +3388,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3383,7 +3383,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public int getMaxAirSupply() { diff --git a/patches/server/0171-API-for-any-mob-to-burn-daylight.patch b/patches/server/0171-API-for-any-mob-to-burn-daylight.patch index c1a45a985..415dea862 100644 --- a/patches/server/0171-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0171-API-for-any-mob-to-burn-daylight.patch @@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f8851857bdaeb1173124f43ee0eb3bd845789467..942359c28d9ced02b737b712f4e83e844424afc0 100644 +index c45e7caa0ecbeaa1b37f722abba2884a6148ca20..01bf0886d8196ec0a09e7b399636874bb8e6baa9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -496,6 +496,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -495,6 +495,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return true; } diff --git a/patches/server/0175-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0175-Add-toggle-for-end-portal-safe-teleporting.patch index fb89df9b6..44d1b2f1d 100644 --- a/patches/server/0175-Add-toggle-for-end-portal-safe-teleporting.patch +++ b/patches/server/0175-Add-toggle-for-end-portal-safe-teleporting.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for end portal safe teleporting diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1ed6072672d0585fa7609b9709b7c4b876a0f7fe..c9dafb8ca9267bea2449bb92ab5808af453ad2b1 100644 +index 01bf0886d8196ec0a09e7b399636874bb8e6baa9..e0a3c7e23ebf6b8994d82964dd38cc8342e81aa3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3213,7 +3213,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3208,7 +3208,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.processPortalCooldown(); diff --git a/patches/server/0260-Add-toggle-for-RNG-manipulation.patch b/patches/server/0260-Add-toggle-for-RNG-manipulation.patch index 8e300d86b..9cba5076f 100644 --- a/patches/server/0260-Add-toggle-for-RNG-manipulation.patch +++ b/patches/server/0260-Add-toggle-for-RNG-manipulation.patch @@ -7,10 +7,10 @@ Paper patches RNG maniplulation by using a shared (and locked) random source. This comes with a performance gain, but technical players may prefer the ability to manipulate RNG. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c9dafb8ca9267bea2449bb92ab5808af453ad2b1..61aaf79bb631c37680d04168519a4e2e6af1ccc0 100644 +index e0a3c7e23ebf6b8994d82964dd38cc8342e81aa3..24365907591a7e35fff0bc64a1f00e6e907c3bb7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -593,7 +593,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -592,7 +592,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.bb = Entity.INITIAL_AABB; this.stuckSpeedMultiplier = Vec3.ZERO; this.nextStep = 1.0F; @@ -33,7 +33,7 @@ index 88c238e492b1081d1a64a3b6f05d7baa17e5d8c9..dd7f2beabf0edad4143ac2365ac04a22 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 601452f16c7f41b609cc13026386d6f5d06ac92e..4e8c250a1c41c82dbfbae69e8d48b4604d63139b 100644 +index a1c95d2a69a8eaedefa90e689d5ce1636648fd1e..81a758847405ca2a4770da8120a9f837662bc3f7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -204,9 +204,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0264-Remove-Mojang-Profiler.patch b/patches/server/0264-Remove-Mojang-Profiler.patch index a32fc0583..30c1f5fad 100644 --- a/patches/server/0264-Remove-Mojang-Profiler.patch +++ b/patches/server/0264-Remove-Mojang-Profiler.patch @@ -1088,10 +1088,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 c2dd8373108d46bfdba2bc1fea7c60ce02a303e4..381ca3207b4d7b7ca3b30e0ba2d0834dd69d1d0e 100644 +index 24365907591a7e35fff0bc64a1f00e6e907c3bb7..b45064a92674a4c48350c466b8131bf1ffae4335 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -835,7 +835,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -834,7 +834,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit end public void baseTick() { @@ -1100,7 +1100,7 @@ index c2dd8373108d46bfdba2bc1fea7c60ce02a303e4..381ca3207b4d7b7ca3b30e0ba2d0834d 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()) { -@@ -896,7 +896,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -895,7 +895,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.firstTick = false; @@ -1109,7 +1109,7 @@ index c2dd8373108d46bfdba2bc1fea7c60ce02a303e4..381ca3207b4d7b7ca3b30e0ba2d0834d } public void setSharedFlagOnFire(boolean onFire) { -@@ -1115,7 +1115,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1114,7 +1114,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } @@ -1118,7 +1118,7 @@ index c2dd8373108d46bfdba2bc1fea7c60ce02a303e4..381ca3207b4d7b7ca3b30e0ba2d0834d if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) { movement = movement.multiply(this.stuckSpeedMultiplier); this.stuckSpeedMultiplier = Vec3.ZERO; -@@ -1124,7 +1124,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1123,7 +1123,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // 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); @@ -1127,7 +1127,7 @@ index c2dd8373108d46bfdba2bc1fea7c60ce02a303e4..381ca3207b4d7b7ca3b30e0ba2d0834d return; } // Paper end -@@ -1145,8 +1145,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1144,8 +1144,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z); } @@ -1138,7 +1138,7 @@ index c2dd8373108d46bfdba2bc1fea7c60ce02a303e4..381ca3207b4d7b7ca3b30e0ba2d0834d boolean flag = !Mth.equal(movement.x, vec3d1.x); boolean flag1 = !Mth.equal(movement.z, vec3d1.z); -@@ -1165,7 +1165,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1164,7 +1164,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.checkFallDamage(vec3d1.y, this.onGround(), iblockdata, blockposition); if (this.isRemoved()) { @@ -1147,7 +1147,7 @@ index c2dd8373108d46bfdba2bc1fea7c60ce02a303e4..381ca3207b4d7b7ca3b30e0ba2d0834d } else { if (this.horizontalCollision) { Vec3 vec3d2 = this.getDeltaMovement(); -@@ -1303,7 +1303,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1302,7 +1302,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setRemainingFireTicks(-this.getFireImmuneTicks()); } @@ -1156,7 +1156,7 @@ index c2dd8373108d46bfdba2bc1fea7c60ce02a303e4..381ca3207b4d7b7ca3b30e0ba2d0834d } } // Paper start - detailed watchdog information -@@ -3180,7 +3180,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3175,7 +3175,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S ServerLevel worldserver1 = minecraftserver.getLevel(resourcekey); if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit @@ -1165,7 +1165,7 @@ index c2dd8373108d46bfdba2bc1fea7c60ce02a303e4..381ca3207b4d7b7ca3b30e0ba2d0834d 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); -@@ -3198,7 +3198,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3193,7 +3193,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } // Paper // CraftBukkit end @@ -1174,7 +1174,7 @@ index c2dd8373108d46bfdba2bc1fea7c60ce02a303e4..381ca3207b4d7b7ca3b30e0ba2d0834d } this.isInsidePortal = false; -@@ -3673,14 +3673,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3668,14 +3668,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } // Paper end if (this.level() instanceof ServerLevel && !this.isRemoved()) { @@ -1191,7 +1191,7 @@ index c2dd8373108d46bfdba2bc1fea7c60ce02a303e4..381ca3207b4d7b7ca3b30e0ba2d0834d 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) { -@@ -3719,7 +3719,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3714,7 +3714,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.unRide(); // CraftBukkit end @@ -1200,7 +1200,7 @@ index c2dd8373108d46bfdba2bc1fea7c60ce02a303e4..381ca3207b4d7b7ca3b30e0ba2d0834d // Paper start - Change lead drop timing to prevent dupe if (this instanceof Mob) { ((Mob) this).dropLeash(true, true); // Paper drop lead -@@ -3746,10 +3746,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3741,10 +3741,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.removeAfterChangingDimensions(); diff --git a/patches/server/0282-Fire-Immunity-API.patch b/patches/server/0282-Fire-Immunity-API.patch index 81bf22fbc..9f1e8ccb7 100644 --- a/patches/server/0282-Fire-Immunity-API.patch +++ b/patches/server/0282-Fire-Immunity-API.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Fire Immunity API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 381ca3207b4d7b7ca3b30e0ba2d0834dd69d1d0e..51f83ee4f617c0dbe40ef9fa1d2f5e49e68e37bb 100644 +index b45064a92674a4c48350c466b8131bf1ffae4335..1e2308ecde7bef57ac0b6192b8362cbcd58e6725 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -422,6 +422,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S + private UUID originWorld; public boolean freezeLocked = false; // Paper - Freeze Tick Lock API - public boolean collidingWithWorldBorder; // Paper public boolean fixedPose = false; // Paper + public @Nullable Boolean immuneToFire = null; // Purpur - Fire immune API public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -1805,7 +1806,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1800,7 +1801,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean fireImmune() { @@ -25,7 +25,7 @@ index 381ca3207b4d7b7ca3b30e0ba2d0834dd69d1d0e..51f83ee4f617c0dbe40ef9fa1d2f5e49 } public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) { -@@ -2497,6 +2498,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2492,6 +2493,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S nbttagcompound.putBoolean("Paper.FreezeLock", true); } // Paper end @@ -37,7 +37,7 @@ index 381ca3207b4d7b7ca3b30e0ba2d0834dd69d1d0e..51f83ee4f617c0dbe40ef9fa1d2f5e49 return nbttagcompound; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); -@@ -2644,6 +2650,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2639,6 +2645,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S freezeLocked = nbt.getBoolean("Paper.FreezeLock"); } // Paper end diff --git a/patches/server/0283-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch b/patches/server/0283-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch index 82885415c..2ed346c9e 100644 --- a/patches/server/0283-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch +++ b/patches/server/0283-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn on nether ceiling damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9c7a84874df50ba675a6a480086336e0c137424f..b38b39bbf6560af368780a305559668a9d8f808b 100644 +index 1e2308ecde7bef57ac0b6192b8362cbcd58e6725..b21dd27e77632435ea53b48861fe16ee03d5ba06 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -910,6 +910,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -909,6 +909,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S && this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v) && (!(this instanceof Player player) || !player.getAbilities().invulnerable))) { // Paper end @@ -17,7 +17,7 @@ index 9c7a84874df50ba675a6a480086336e0c137424f..b38b39bbf6560af368780a305559668a } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 52108909cbe0ea7faa0032f985898c41084cac10..0e25bfd7b345c3ba578191ce6656f041ffb9fd05 100644 +index 39726c991874b631545e0a06fa5b06383e7b7115..7234603063091d3999f71e5d7781c6468665c8f3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -417,6 +417,7 @@ public class PurpurWorldConfig {