diff --git a/build.gradle.kts b/build.gradle.kts index c0aff74..e945c3f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,7 +3,7 @@ import io.papermc.paperweight.util.constants.PAPERCLIP_CONFIG plugins { java id("com.github.johnrengelman.shadow") version "8.1.1" apply false - id("io.papermc.paperweight.patcher") version "1.5.7" + id("io.papermc.paperweight.patcher") version "1.5.9" } repositories { @@ -14,7 +14,7 @@ repositories { } dependencies { - remapper("net.fabricmc:tiny-remapper:0.8.6:fat") + remapper("net.fabricmc:tiny-remapper:0.8.10:fat") decompiler("net.minecraftforge:forgeflower:2.0.627.2") paperclip("io.papermc:paperclip:3.0.3") } diff --git a/gradle.properties b/gradle.properties index 361002e..726cc62 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group=me.samsuik.sakura version=1.20.2-R0.1-SNAPSHOT mcVersion=1.20.2 -paperRef=08c0b488b9f1e56a4465cfabe6212d0351b69e59 +paperRef=f186318a91cbd3b2a2259d39cb88576989a496b8 org.gradle.jvmargs=-Xmx2G diff --git a/patches/api/0001-Customise-Version-Command.patch b/patches/api/0001-Customise-Version-Command.patch index e02db67..6108f48 100644 --- a/patches/api/0001-Customise-Version-Command.patch +++ b/patches/api/0001-Customise-Version-Command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Customise Version Command diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index f78b5fd3c3347d28da58777bff88903d2eb140f6..5999909827ede80c14becb058cde3189f10fb3ef 100644 +index 884902cb7f86c0b56594ccafc7d05c6c7a23ab53..d38fbaf2ee60036f5b24566b38cfcee3080bd822 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -127,6 +127,20 @@ public final class Bukkit { +@@ -128,6 +128,20 @@ public final class Bukkit { // Paper end } diff --git a/patches/api/0006-Falling-Block-Parity-API.patch b/patches/api/0006-Falling-Block-Parity-API.patch index 7d1633e..2c33fd1 100644 --- a/patches/api/0006-Falling-Block-Parity-API.patch +++ b/patches/api/0006-Falling-Block-Parity-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Falling Block Parity API diff --git a/src/main/java/org/bukkit/entity/FallingBlock.java b/src/main/java/org/bukkit/entity/FallingBlock.java -index be52a64e73e7880c6a28d8a6912923973b7cb13b..265a6029d65216fac7d309dda431a2b2ff1786b8 100644 +index f3d5cd5fd2418e493fffed3a3735c00bf04e214d..b6fd3b11cf41aae59d81974ced37ca7722df29ca 100644 --- a/src/main/java/org/bukkit/entity/FallingBlock.java +++ b/src/main/java/org/bukkit/entity/FallingBlock.java -@@ -156,4 +156,19 @@ public interface FallingBlock extends Entity, me.samsuik.sakura.entity.merge.Mer +@@ -183,4 +183,19 @@ public interface FallingBlock extends Entity, me.samsuik.sakura.entity.merge.Mer */ void shouldAutoExpire(boolean autoExpires); // Paper End - Auto expire setting diff --git a/patches/server/0001-Branding-changes.patch b/patches/server/0001-Branding-changes.patch index c26edd0..55d6c01 100644 --- a/patches/server/0001-Branding-changes.patch +++ b/patches/server/0001-Branding-changes.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Branding changes From ForkPaper. diff --git a/build.gradle.kts b/build.gradle.kts -index c187641f0ec6444a10e0e1583e1697d07e8f0267..db5d5682a068518d9d5f0b232e2a582e3a8c4aee 100644 +index 79beac737c17412913983614bd478d33e3c6ed58..4d635e7db27966d845f47a4f1ab49766447dc2a4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,8 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { @@ -24,7 +24,7 @@ index c187641f0ec6444a10e0e1583e1697d07e8f0267..db5d5682a068518d9d5f0b232e2a582e // Paper start implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") -@@ -72,7 +76,7 @@ tasks.jar { +@@ -70,7 +74,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -34,7 +34,7 @@ index c187641f0ec6444a10e0e1583e1697d07e8f0267..db5d5682a068518d9d5f0b232e2a582e "Specification-Title" to "Bukkit", "Specification-Version" to project.version, diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 97745f0bab8d82d397c6c2a5775aed92bca0a034..188da766381393afe643de28dccaa6aa7c9130a0 100644 +index 8f31413c939cc2b0454ad3d9a1b618dbae449d00..a9494fe4ef242eeee02eca2c1d69e46539dfe719 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1697,7 +1697,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop type, Level world) { - this.id = Entity.ENTITY_COUNTER.incrementAndGet(); + public boolean isLegacyTrackingEntity = false; + diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 9105418b29c89f092378da11b14e3d324332a2ba..d5560231aa398d56d1de06b19946bfcfe003df00 100644 +index e6f75a9cac46c8e3ddba664a9d5b27b665a94cb4..c85d2e98311406ead180ace803aabc17cd05066a 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -73,6 +73,7 @@ public class FallingBlockEntity extends Entity { @@ -587,7 +587,7 @@ index 4ce3e69970dd9eb251d0538a2d233ca30e9e5e47..d14a8e2cf748cb3784253d99d1bf3c8f public PrimedTnt(Level world, double x, double y, double z, @Nullable LivingEntity igniter) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 8006ec1eece1e1c5c0b18bc2b5190bbb43e9d4c3..9e49196f7038c710e850005b6ad96c4eafca0f2e 100644 +index 11ab3a3b8624c36dfde3d42091af67c51340e8f2..23945f078070c94785ea00320113c0849a79981f 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -216,6 +216,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -600,11 +600,11 @@ index 8006ec1eece1e1c5c0b18bc2b5190bbb43e9d4c3..9e49196f7038c710e850005b6ad96c4e this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e188bb3ba5d2ec28421947c0b66b25eecb569bfe..9ac026a464f8b5db5fe7543b71cd5bcaa3f65f70 100644 +index 83aaf3e6e377d731ce02f779f80b7bf5db46f89f..50d2a2b658fd9ddfcc4b25fa2196493d4dbd8664 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -489,6 +489,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { - this.getHandle().displayName = name == null ? getName() : name; + this.getHandle().displayName = name == null ? this.getName() : name; } + // Sakura start - visiblity api diff --git a/patches/server/0007-Reduce-deltaMovement-Allocations.patch b/patches/server/0007-Reduce-deltaMovement-Allocations.patch index ebf461c..633fcc8 100644 --- a/patches/server/0007-Reduce-deltaMovement-Allocations.patch +++ b/patches/server/0007-Reduce-deltaMovement-Allocations.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Reduce deltaMovement Allocations diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0ebeac99c589ca70c26fa7db55f0c8f9a0e5fcd1..514c34e25b6e42fa591ccbcd134149e64235b899 100644 +index 9d0c8b665bea9da560800b5f7ee1299280201022..a52530dbcd8a3e48a26f13fb246e8183ee560b07 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1196,7 +1196,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1229,7 +1229,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.tryCheckInsideBlocks(); float f = this.getBlockSpeedFactor(); @@ -17,7 +17,7 @@ index 0ebeac99c589ca70c26fa7db55f0c8f9a0e5fcd1..514c34e25b6e42fa591ccbcd134149e6 // Paper start - remove expensive streams from here boolean noneMatch = true; AABB fireSearchBox = this.getBoundingBox().deflate(1.0E-6D); -@@ -2016,6 +2016,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2049,6 +2049,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public void moveTo(double x, double y, double z, float yaw, float pitch) { // Paper - cancel entity velocity if teleported if (!preserveMotion) { @@ -25,7 +25,7 @@ index 0ebeac99c589ca70c26fa7db55f0c8f9a0e5fcd1..514c34e25b6e42fa591ccbcd134149e6 this.deltaMovement = Vec3.ZERO; } else { this.preserveMotion = false; -@@ -3389,29 +3390,33 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3401,29 +3402,33 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public void onAboveBubbleCol(boolean drag) { @@ -67,7 +67,7 @@ index 0ebeac99c589ca70c26fa7db55f0c8f9a0e5fcd1..514c34e25b6e42fa591ccbcd134149e6 this.resetFallDistance(); } -@@ -4385,16 +4390,19 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4397,16 +4402,19 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { vec3d = vec3d.normalize(); } @@ -90,7 +90,7 @@ index 0ebeac99c589ca70c26fa7db55f0c8f9a0e5fcd1..514c34e25b6e42fa591ccbcd134149e6 } this.fluidHeight.put(tag, d1); -@@ -4465,11 +4473,53 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4477,11 +4485,53 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return this.chunkPosition; } @@ -144,7 +144,7 @@ index 0ebeac99c589ca70c26fa7db55f0c8f9a0e5fcd1..514c34e25b6e42fa591ccbcd134149e6 synchronized (this.posLock) { // Paper this.deltaMovement = velocity; } // Paper -@@ -4480,7 +4530,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4492,7 +4542,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public void setDeltaMovement(double x, double y, double z) { @@ -158,7 +158,7 @@ index 0ebeac99c589ca70c26fa7db55f0c8f9a0e5fcd1..514c34e25b6e42fa591ccbcd134149e6 public final int getBlockX() { diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index d5560231aa398d56d1de06b19946bfcfe003df00..240a762b91a3c570583ee65bfe55b9677c4f63be 100644 +index c85d2e98311406ead180ace803aabc17cd05066a..e2f34595a535582d2722f68dc88b777704ef641a 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -145,7 +145,7 @@ public class FallingBlockEntity extends Entity { diff --git a/patches/server/0009-Load-Chunks-on-Movement.patch b/patches/server/0009-Load-Chunks-on-Movement.patch index 73a4486..552f2e4 100644 --- a/patches/server/0009-Load-Chunks-on-Movement.patch +++ b/patches/server/0009-Load-Chunks-on-Movement.patch @@ -50,10 +50,10 @@ index 658e63ebde81dc14c8ab5850fb246dc0aab25dea..f1ff1a67fee37ee7b241ceaa164fa4ee public static TicketType create(String name, Comparator argumentComparator) { return new TicketType<>(name, argumentComparator, 0L); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 514c34e25b6e42fa591ccbcd134149e64235b899..fcbccbd9aeed4ad813ebe72cbe25fa1625800bb2 100644 +index a52530dbcd8a3e48a26f13fb246e8183ee560b07..1297012df74a2c955c4f0c87697f802a70ad16f3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -397,6 +397,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -398,6 +398,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public org.bukkit.projectiles.ProjectileSource projectileSource; // For projectiles only public boolean lastDamageCancelled; // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Keep track if the event was canceled public boolean persistentInvisibility = false; @@ -61,7 +61,7 @@ index 514c34e25b6e42fa591ccbcd134149e64235b899..fcbccbd9aeed4ad813ebe72cbe25fa16 public BlockPos lastLavaContact; // Spigot start public final org.spigotmc.ActivationRange.ActivationType activationType = org.spigotmc.ActivationRange.initializeEntityActivationType(this); -@@ -1457,7 +1458,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1490,7 +1491,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { io.papermc.paper.util.CollisionUtil.getCollisions( world, this, collisionBox, potentialCollisionsVoxel, potentialCollisionsBB, @@ -70,7 +70,7 @@ index 514c34e25b6e42fa591ccbcd134149e64235b899..fcbccbd9aeed4ad813ebe72cbe25fa16 null, null ); -@@ -4800,7 +4801,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4812,7 +4813,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @Override public boolean isAlwaysTicking() { @@ -80,7 +80,7 @@ index 514c34e25b6e42fa591ccbcd134149e64235b899..fcbccbd9aeed4ad813ebe72cbe25fa16 public boolean mayInteract(Level world, BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 240a762b91a3c570583ee65bfe55b9677c4f63be..2e0f38ffad09b6afbea74205b89beb774e779545 100644 +index e2f34595a535582d2722f68dc88b777704ef641a..354e210a52e5ce7b1b8cf75ce132e59c02f664ab 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -74,6 +74,7 @@ public class FallingBlockEntity extends Entity { diff --git a/patches/server/0012-Slice-Packet-obfuscation-and-reduction.patch b/patches/server/0012-Slice-Packet-obfuscation-and-reduction.patch index 3f0dde4..55cc68b 100644 --- a/patches/server/0012-Slice-Packet-obfuscation-and-reduction.patch +++ b/patches/server/0012-Slice-Packet-obfuscation-and-reduction.patch @@ -19,7 +19,7 @@ The current packets modified/obfuscated are the following: # with packets instead of every single player within tracking distance diff --git a/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java b/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java -index 5dfb35117c285e0b202dc9c088ad5848beb8d054..e24dd4c7108a014533e5731ad2dafc51a55ebf6d 100644 +index a043c382c37058032548a5192e17f5f816abe5a6..8e84afc92bef8192320dfe405609bf06ff0f9e15 100644 --- a/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java +++ b/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java @@ -39,6 +39,7 @@ public class SynchedEntityData { @@ -103,7 +103,7 @@ index 5dfb35117c285e0b202dc9c088ad5848beb8d054..e24dd4c7108a014533e5731ad2dafc51 @Nullable public List> getNonDefaultValues() { List> list = null; -@@ -336,11 +382,14 @@ public class SynchedEntityData { +@@ -339,11 +385,14 @@ public class SynchedEntityData { T value; private final T initialValue; private boolean dirty; @@ -118,7 +118,7 @@ index 5dfb35117c285e0b202dc9c088ad5848beb8d054..e24dd4c7108a014533e5731ad2dafc51 } public EntityDataAccessor getAccessor() { -@@ -367,6 +416,35 @@ public class SynchedEntityData { +@@ -370,6 +419,35 @@ public class SynchedEntityData { return this.initialValue.equals(this.value); } @@ -203,10 +203,10 @@ index 83c4639c2bdca4dc4281d9f5eca104af3063bfa5..f7d8aaededd39ce52a9d0105f66fd759 if (this.entity instanceof LivingEntity) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c35ca0785ecc268fb7e20dee56d42bdadca41ee6..217eba9f4860cf1e67d307ba8cdb99430c7469f8 100644 +index 1297012df74a2c955c4f0c87697f802a70ad16f3..f9df441564c7021677f270b481976ba04357af10 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3321,7 +3321,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3333,7 +3333,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID); return; } @@ -215,7 +215,7 @@ index c35ca0785ecc268fb7e20dee56d42bdadca41ee6..217eba9f4860cf1e67d307ba8cdb9943 // CraftBukkit end } -@@ -3330,7 +3330,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3342,7 +3342,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public void setTicksFrozen(int frozenTicks) { @@ -251,7 +251,7 @@ index 4c328a511ff6c0e6b73ef9701c82373e02c12830..fbeb52a49b791f992af19c7d69ba44b8 public int getFuse() { diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index d58b4c0dbe651b5068212e5f14dce3164ee520f5..c69660c3c49e6d21e8d31dbe16906bd152b61d3f 100644 +index 481c3e321cfc0f20bb1c4c6942b8bdbd23c06339..8858aa55d32bda0d16ad602a5de557791c779208 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -649,7 +649,7 @@ public abstract class Player extends LivingEntity { @@ -277,15 +277,15 @@ index 5c07da62c82bc70138f6cb5007629d6974be69ac..974563607f6731e5c352fd03663d069e private int getBubbleTime() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 9ac026a464f8b5db5fe7543b71cd5bcaa3f65f70..fab6b511319a9891277fd001cfa06a6c802c45bc 100644 +index 50d2a2b658fd9ddfcc4b25fa2196493d4dbd8664..2a6de1d3475ac557fac0027a9746f7a5c608b5e5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2606,7 +2606,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2596,7 +2596,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.sendHealthUpdate(); } } - this.getHandle().getEntityData().set(net.minecraft.world.entity.LivingEntity.DATA_HEALTH_ID, (float) this.getScaledHealth()); + this.getHandle().getEntityData().set(net.minecraft.world.entity.LivingEntity.DATA_HEALTH_ID, (float) this.getScaledHealth(), isDead() ? 0f : 20f); // Slice - this.getHandle().maxHealthCache = getMaxHealth(); + this.getHandle().maxHealthCache = this.getMaxHealth(); } diff --git a/patches/server/0013-Use-Optimised-TrackedEntityMap.patch b/patches/server/0013-Use-Optimised-TrackedEntityMap.patch index 256750a..6f2d6a0 100644 --- a/patches/server/0013-Use-Optimised-TrackedEntityMap.patch +++ b/patches/server/0013-Use-Optimised-TrackedEntityMap.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Use Optimised TrackedEntityMap diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 45f0e7ef92c32dc51b81c0cc9f1d1a2fbab02599..e3ee8b66dfabb643c2b0d47bef20af4d8680e008 100644 +index 7e205ccdc7c6691581eb7423d01a383b87f0d2af..216438a9c285edcd5dfa56b7ae49a674f92ae415 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -214,7 +214,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -252,7 +252,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper - rewrite chunk system this.tickingGenerated = new AtomicInteger(); this.playerMap = new PlayerMap(); diff --git a/patches/server/0017-Store-Entity-Data-State.patch b/patches/server/0017-Store-Entity-Data-State.patch index 9d5a2b1..e9b9c47 100644 --- a/patches/server/0017-Store-Entity-Data-State.patch +++ b/patches/server/0017-Store-Entity-Data-State.patch @@ -52,10 +52,10 @@ index 0000000000000000000000000000000000000000..c9f2c5ae57878283e8c8bc3847fe63b9 + +} diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 217eba9f4860cf1e67d307ba8cdb99430c7469f8..7e906ad87ae48942445b6ad1fa22ab9442c8943e 100644 +index f9df441564c7021677f270b481976ba04357af10..b1e8cc0da8d6754946ca05745256ea0b144757cb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -531,6 +531,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -534,6 +534,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // Paper end - make end portalling safe public boolean isPrimedTNT; // Sakura public boolean isFallingBlock; // Sakura @@ -88,10 +88,10 @@ index 217eba9f4860cf1e67d307ba8cdb99430c7469f8..7e906ad87ae48942445b6ad1fa22ab94 + } + // Sakura end - public Entity(EntityType type, Level world) { - this.id = Entity.ENTITY_COUNTER.incrementAndGet(); + public boolean isLegacyTrackingEntity = false; + diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a29d41bf162c923e3b3b15e7500e0c8693908866..6d9a15a1c1faff57103757b6ff71f38e4713ef71 100644 +index 82fbf025e70d48d535360508ea96c9e8007978c7..7a21fe6e7109eaa1eca38c7503cc4d331e9c66c5 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1325,6 +1325,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0018-Merge-Cannon-Entities.patch b/patches/server/0018-Merge-Cannon-Entities.patch index 040f577..770779a 100644 --- a/patches/server/0018-Merge-Cannon-Entities.patch +++ b/patches/server/0018-Merge-Cannon-Entities.patch @@ -166,7 +166,7 @@ index 0000000000000000000000000000000000000000..794547b36f0780b4dd300fc162cd9b70 + +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index eef411f838ecdeff0d4052fac22900e4ad87ceb5..4bc68b3145f42f5a432e1e897b3f41606735afd1 100644 +index d559fb2adbebd47d8be75c9dd3477edfca142790..a520e0dbbe2b5baaeba32020d217b5f08870044b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1579,6 +1579,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { if (!entity.isRemoved()) { if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed @@ -194,7 +194,7 @@ index bc73d8625ac296372640f540ade170aed8ae5353..04afadf047b84492dddd5ecc39e116ca } + // Sakura start -+ var previous = previousEntity[0]; ++ Entity previous = previousEntity[0]; + if (entity.isMergeableType(previous) && entity.tryMergeInto(previous)) { + return; + } else { @@ -206,10 +206,10 @@ index bc73d8625ac296372640f540ade170aed8ae5353..04afadf047b84492dddd5ecc39e116ca this.guardEntityTick(this::tickNonPassenger, entity); gameprofilerfiller.pop(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3757e3e77a567187e0f9cb60cb10a95bec330693..31e9e180ecddefc99d0984e793682f40258af3fb 100644 +index b1e8cc0da8d6754946ca05745256ea0b144757cb..22c43e5a12c254da2d427af28012adfb39f0ce7f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -559,6 +559,105 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -562,6 +562,105 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return BlockPos.asLong(v.getBlockX(), v.getBlockY(), v.getBlockZ()); } // Sakura end @@ -313,9 +313,9 @@ index 3757e3e77a567187e0f9cb60cb10a95bec330693..31e9e180ecddefc99d0984e793682f40 + } + // Sakura end - public Entity(EntityType type, Level world) { - this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -607,6 +706,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { + public boolean isLegacyTrackingEntity = false; + +@@ -640,6 +739,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.getEntityData().registrationLocked = true; // Spigot this.setPos(0.0D, 0.0D, 0.0D); this.eyeHeight = this.getEyeHeight(net.minecraft.world.entity.Pose.STANDING, this.dimensions); @@ -323,7 +323,7 @@ index 3757e3e77a567187e0f9cb60cb10a95bec330693..31e9e180ecddefc99d0984e793682f40 } public boolean isColliding(BlockPos pos, BlockState state) { -@@ -2454,6 +2554,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2487,6 +2587,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { nbt.putBoolean("Paper.FreezeLock", true); } // Paper end @@ -335,7 +335,7 @@ index 3757e3e77a567187e0f9cb60cb10a95bec330693..31e9e180ecddefc99d0984e793682f40 return nbt; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); -@@ -2622,6 +2727,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2634,6 +2739,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { freezeLocked = nbt.getBoolean("Paper.FreezeLock"); } // Paper end @@ -347,7 +347,7 @@ index 3757e3e77a567187e0f9cb60cb10a95bec330693..31e9e180ecddefc99d0984e793682f40 } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT"); -@@ -4784,6 +4894,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4796,6 +4906,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return; } // Paper end - rewrite chunk system @@ -360,7 +360,7 @@ index 3757e3e77a567187e0f9cb60cb10a95bec330693..31e9e180ecddefc99d0984e793682f40 if (this.removalReason == null) { this.removalReason = reason; diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 2e0f38ffad09b6afbea74205b89beb774e779545..2afcb3ebdfba545d7c1d73fd0aed486c1f8bf6ae 100644 +index 354e210a52e5ce7b1b8cf75ce132e59c02f664ab..f9d2ec92e46f7f0ca2a6c93b90d9a5afa2047658 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -132,6 +132,58 @@ public class FallingBlockEntity extends Entity { @@ -504,7 +504,7 @@ index fbeb52a49b791f992af19c7d69ba44b820541b09..02ef6ca32f3de52e921fdcf3f0f572ce this.explode(); } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 6d9a15a1c1faff57103757b6ff71f38e4713ef71..2f72a059b051bb3d35e0844c6b7ae3b6e2655e36 100644 +index 7a21fe6e7109eaa1eca38c7503cc4d331e9c66c5..e84b1167c2606bcc1b5ce1e284a6208e3e0b0860 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -227,6 +227,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -516,7 +516,7 @@ index 6d9a15a1c1faff57103757b6ff71f38e4713ef71..2f72a059b051bb3d35e0844c6b7ae3b6 protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, Supplier sakuraWorldConfigCreator, java.util.concurrent.Executor executor) { // Sakura // Paper - Async-Anti-Xray - Pass executor this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java -index a39694a27e362312eb42a29fd7c833f9c7437d46..55bfb0afc0e4e9f1ce2dd15f729bee61822c5afc 100644 +index 73911b81f4e927026657953a0c68ddda9a8f93c1..c64ab06b62334e5ab1ab5ad78fa400de45c15723 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java @@ -14,6 +14,28 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock { @@ -547,9 +547,9 @@ index a39694a27e362312eb42a29fd7c833f9c7437d46..55bfb0afc0e4e9f1ce2dd15f729bee61 + @Override public FallingBlockEntity getHandle() { - return (FallingBlockEntity) entity; + return (FallingBlockEntity) this.entity; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java -index dc13deb1cea14f0650b292ddb6437fadefc0b8be..e9f8abb514654b87ec4f35b90fff04818a05780d 100644 +index 3f32c683ddc6999b89f2e4051eb6ae784b296b8f..1ccf2153d82403a9b4fb3c972d1b7809c8efde2d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java @@ -12,6 +12,28 @@ public class CraftTNTPrimed extends CraftEntity implements TNTPrimed { diff --git a/patches/server/0019-Optimised-Explosions.patch b/patches/server/0019-Optimised-Explosions.patch index ab974ed..22b27ce 100644 --- a/patches/server/0019-Optimised-Explosions.patch +++ b/patches/server/0019-Optimised-Explosions.patch @@ -600,7 +600,7 @@ index 0000000000000000000000000000000000000000..e0387f16ff49031fdcbc8990613417da + +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 4bc68b3145f42f5a432e1e897b3f41606735afd1..dc02ae364afe4b1226d224d54e563cef1d784393 100644 +index a520e0dbbe2b5baaeba32020d217b5f08870044b..805396ad55b551080e5796cbbc493fe10d2997b6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1580,6 +1580,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { +@@ -522,6 +522,128 @@ public final class EntityLookup implements LevelEntityGetter { return slices; } @@ -329,7 +329,7 @@ index d917a19c838ed3d74322abd85e1f737e852b5d7b..1ba10713c85d6f19f075cc267602a04c if (this.count == 0) { return; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1ed0e2f30944575c252603b7c45649bb745efd2a..7382075d369a1c154d8ca62028c6a887d85adb07 100644 +index 907babe5d01262d0c2d7d1edb7e4882a5503c5f6..a17ea99a4de4f69ca95a67f9a9b977b49148a261 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -230,6 +230,39 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0022-isPushedByFluid-API.patch b/patches/server/0022-isPushedByFluid-API.patch index 274d494..cc252b1 100644 --- a/patches/server/0022-isPushedByFluid-API.patch +++ b/patches/server/0022-isPushedByFluid-API.patch @@ -5,18 +5,18 @@ Subject: [PATCH] isPushedByFluid API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 01c5279084a8f84dcaf8d0d51a3305dc04476944..f8faa10e12f5e67fc89ccac831895c70d6333536 100644 +index d5b1e5bef63e148aeff1c0296e909b35167e753c..12b830a03db2752fce26085daaa6e41c14858a48 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -658,6 +658,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -661,6 +661,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { discard(); } // Sakura end + public boolean pushedByFluid; // Sakura - public Entity(EntityType type, Level world) { - this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -4154,7 +4155,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { + public boolean isLegacyTrackingEntity = false; + +@@ -4166,7 +4167,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public boolean isPushedByFluid() { @@ -26,7 +26,7 @@ index 01c5279084a8f84dcaf8d0d51a3305dc04476944..f8faa10e12f5e67fc89ccac831895c70 public static double getViewScale() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 315d8260e196709ed9084272aa640f11e327c0a8..f8dc36e73389035995b67ac04ce14886526888fc 100644 +index 0e6c7284b9aee6c5f2454a3a095ebf349f887740..9ab085add965825ce59fc38eb390d6b6ae9cbf84 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -548,6 +548,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0025-Optimise-TNT-fluid-state-and-pushing.patch b/patches/server/0025-Optimise-TNT-fluid-state-and-pushing.patch index 3ef874d..8caaa24 100644 --- a/patches/server/0025-Optimise-TNT-fluid-state-and-pushing.patch +++ b/patches/server/0025-Optimise-TNT-fluid-state-and-pushing.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimise TNT fluid state and pushing diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f8faa10e12f5e67fc89ccac831895c70d6333536..91c05521b50f0c97841a6356b369f855ad804df1 100644 +index 12b830a03db2752fce26085daaa6e41c14858a48..ffa7c83519bbd2aea4485c97ac29961f91e267c2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2135,7 +2135,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2168,7 +2168,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return this.isInWater() || flag; } diff --git a/patches/server/0026-Optimise-LivingEntity-pushEntities.patch b/patches/server/0026-Optimise-LivingEntity-pushEntities.patch index 92ecfdd..d89fdb5 100644 --- a/patches/server/0026-Optimise-LivingEntity-pushEntities.patch +++ b/patches/server/0026-Optimise-LivingEntity-pushEntities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimise LivingEntity#pushEntities diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 77a1c7dfbaccc2e74da5c78ce4dfcd1717a7ac65..68b5e7d5293557cd1d7c1c202c48ac8caa40e721 100644 +index a76eb3d051db0229ed088b71c92ff3f131449007..c550014ff6c677a733e98d58dbe9f74fff77dd17 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3543,7 +3543,11 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3547,7 +3547,11 @@ public abstract class LivingEntity extends Entity implements Attackable { return; } // Paper end - don't run getEntities if we're not going to use its result