diff --git a/build.gradle.kts b/build.gradle.kts index 005aaa0..1bddb7a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,7 +2,7 @@ import io.papermc.paperweight.util.constants.PAPERCLIP_CONFIG plugins { java - id("io.papermc.paperweight.patcher") version "1.7.4" + id("io.papermc.paperweight.patcher") version "1.7.5" } repositories { diff --git a/gradle.properties b/gradle.properties index 8250caf..25d22f0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,8 @@ group=me.samsuik.sakura -version=1.21.3-R0.1-SNAPSHOT -mcVersion=1.21.3 +version=1.21.4-R0.1-SNAPSHOT +mcVersion=1.21.4 -paperRef=da7138233f6392e791d790d1c3407414c855f9c2 +paperRef=65633e373c5716ac78c9baabf82be2e84072bfff org.gradle.jvmargs=-Xmx2G org.gradle.vfs.watch=false diff --git a/patches/server/0003-Sakura-Configuration-Files.patch b/patches/server/0003-Sakura-Configuration-Files.patch index e52fe30..f166b74 100644 --- a/patches/server/0003-Sakura-Configuration-Files.patch +++ b/patches/server/0003-Sakura-Configuration-Files.patch @@ -1183,7 +1183,7 @@ index 0000000000000000000000000000000000000000..4024f9738e039ffffd560a07a2210f75 +public record DurableMaterial(int durability, float resistance) { +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c26e3a239441376f2694782d4f07943538677c71..4b9549955c4cdce65d09755090603bdb17a4589a 100644 +index ab4f1bd1ebf0af54f3fa88ee9e2007d20445e7e9..686322e99b33fd3334302d3ccafd881b609b6d96 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -327,6 +327,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop WorldDataServer public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { @@ -1235,10 +1235,10 @@ index 957cae6ddeba9efe3b55588567ae51e8b86b6a42..2a622f2d796ecb42598d230319804d06 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 2cc264f577fdd81d02783e0d6146bea9728789c7..bcaeaf99919be2dba2ba6e5fac76b25766b446d1 100644 +index 27f9d167b5ae9ce5117798ea44324107df59425f..34e7ae8b36e375280f9515c1580c55c0832fc194 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -172,6 +172,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -173,6 +173,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl return this.paperConfig; } // Paper end - add paper world config @@ -1251,7 +1251,7 @@ index 2cc264f577fdd81d02783e0d6146bea9728789c7..bcaeaf99919be2dba2ba6e5fac76b257 public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray public static BlockPos lastPhysicsProblem; // Spigot -@@ -830,7 +836,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -831,7 +837,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl } // Paper end - optimise random ticking @@ -1260,7 +1260,7 @@ index 2cc264f577fdd81d02783e0d6146bea9728789c7..bcaeaf99919be2dba2ba6e5fac76b257 // Paper start - getblock optimisations - cache world height/sections final DimensionType dimType = holder.value(); this.minY = dimType.minY(); -@@ -842,6 +848,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -843,6 +849,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl // Paper end - getblock optimisations - cache world height/sections this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config @@ -1289,7 +1289,7 @@ index ac8af406180bc680d46e8edc3da0fc2e5211345a..0f41db3a1e32eb81ea72084c0cf38687 this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index be0d38544395a9b3befb898bb961f34e32fe9509..97c1db323971ca1a44c164bb90ae384ea21f5c8f 100644 +index 1c2439ffc1e407ff69286817d22f127470ce07ba..58cf9672ed1826846db7a47b264c387de51020a5 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -176,6 +176,14 @@ public class Main { diff --git a/patches/server/0004-Local-Config-and-Value-Storage-API.patch b/patches/server/0004-Local-Config-and-Value-Storage-API.patch index 7454494..311efa3 100644 --- a/patches/server/0004-Local-Config-and-Value-Storage-API.patch +++ b/patches/server/0004-Local-Config-and-Value-Storage-API.patch @@ -227,10 +227,10 @@ index 0000000000000000000000000000000000000000..5b3e2cca7ee16bc6ecfa0f29438fa658 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5dd56951b3046cf70b1536a6003918dfb8654ec6..e78798ddbc07fc63a16633b7d78d2deff31861ce 100644 +index 686322e99b33fd3334302d3ccafd881b609b6d96..0bdefa7ad46887fe3eb9045b63195541d3b792e1 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1889,6 +1889,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop WorldDataServer public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { -@@ -1905,7 +1920,18 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -1906,7 +1921,18 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe if (entityplayer.distanceToSqr(vec3d) < 4096.0D) { Optional optional = Optional.ofNullable((Vec3) serverexplosion.getHitPlayers().get(entityplayer)); @@ -780,10 +780,10 @@ index 1cce0f401f456370be2edb3a1184c9cc383b2053..fcf9b28cf5eabd4d94f5f3dd42b8367c } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 5a8f396d47577f087abb415c972fd4f51e50faba..ac8308be5b200237aa61a21404e558f245356546 100644 +index 8aff5b7dd14b835788348b22b1fec4d381df816f..5266e37ade8851a8b73a4ae12ecd67a8d0c6e09d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -359,6 +359,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple +@@ -357,6 +357,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple return this.viewDistanceHolder; } // Paper end - rewrite chunk system @@ -845,10 +845,10 @@ index b0bc66dc7248aae691dcab68b925b52a1695e63f..2f9413b9442cc7f95e1974a772812fe3 throw new ReportedException(crashreport); } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index cd1b6b539a62fa5237d6dab2d1c09a2e631d9941..b4e7e6ccc25a373f571c32f0328b90e04111e00b 100644 +index 2fbe3d8722eeacc3b27ce38145aeffa610f9daab..e22f478c527e27b915cea68505316c6d22b899c0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3247,6 +3247,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3313,6 +3313,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl event.setCancelled(cancelled); AbstractContainerMenu oldContainer = this.player.containerMenu; // SPIGOT-1224 @@ -857,7 +857,7 @@ index cd1b6b539a62fa5237d6dab2d1c09a2e631d9941..b4e7e6ccc25a373f571c32f0328b90e0 if (this.player.containerMenu != oldContainer) { return; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a15546e433ebba6c0de01bdaaef201a3d99a87b5..2aaf7ce81bff0c03da2211f145489d304ac669d2 100644 +index 27618d07d718cb2a5783536e11d56f712303487b..20dac48cce9596217d1ebd1703e5ac2c0ede56e1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -568,6 +568,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -872,7 +872,7 @@ index a15546e433ebba6c0de01bdaaef201a3d99a87b5..2aaf7ce81bff0c03da2211f145489d30 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); 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 06d9a519e64d4b8b8764b3ad7691ad93b5cee065..4a50ef9b25b9162815b879c60c294ed4be2edd5c 100644 +index 410c4e4a42640ebe8a9c233eb2064aad76e45a27..e270eaec13afb16ed80e7c3fd8ea35ee58291263 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -78,6 +78,7 @@ public class FallingBlockEntity extends Entity { @@ -884,7 +884,7 @@ index 06d9a519e64d4b8b8764b3ad7691ad93b5cee065..4a50ef9b25b9162815b879c60c294ed4 public FallingBlockEntity(Level world, double x, double y, double z, BlockState block) { diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index de87483600e55d88176fe25db621bbd3e464729f..5bd189fad703ac99d57258fa448dbcc103077297 100644 +index 809f5e847e2f5bb594c130cebd2cb897ea768d82..eebd53ac889da265cb259ba3cb8c1ce4ef34d931 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -63,6 +63,7 @@ public class PrimedTnt extends Entity implements TraceableEntity { @@ -896,7 +896,7 @@ index de87483600e55d88176fe25db621bbd3e464729f..5bd189fad703ac99d57258fa448dbcc1 public PrimedTnt(Level world, double x, double y, double z, @Nullable LivingEntity igniter) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 554714e449d1d2439b05d7e15f72afccd17d4df5..ab38f0913b7adf3593c5d0b5a65441afefeeffbc 100644 +index 84c494ca81b8f58604b372ac7236147776817a4f..d00fcfd5219a532204533f159d68524b2d33ccc7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2394,6 +2394,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -925,7 +925,7 @@ index 554714e449d1d2439b05d7e15f72afccd17d4df5..ab38f0913b7adf3593c5d0b5a65441af } @Override -@@ -3097,6 +3109,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3082,6 +3094,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.getHandle().allowsListing(); } diff --git a/patches/server/0007-Load-Chunks-on-Movement.patch b/patches/server/0007-Load-Chunks-on-Movement.patch index 9472303..6fe99b2 100644 --- a/patches/server/0007-Load-Chunks-on-Movement.patch +++ b/patches/server/0007-Load-Chunks-on-Movement.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Load Chunks on Movement diff --git a/src/main/java/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java b/src/main/java/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java -index aec503ca1551ce4b15b8975832cd664ebd670722..f6be260f942c6b9c65e8c3ed625639db75086267 100644 +index fb251665cdbafab90c6ff5e1bcb34fc17124d4d9..a8abdfe0f9e7f8e1b1b92b03dec53906c553bf67 100644 --- a/src/main/java/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java +++ b/src/main/java/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java @@ -1912,6 +1912,7 @@ public final class CollisionUtil { @@ -39,19 +39,19 @@ index aec503ca1551ce4b15b8975832cd664ebd670722..f6be260f942c6b9c65e8c3ed625639db // bound y diff --git a/src/main/java/net/minecraft/server/level/TicketType.java b/src/main/java/net/minecraft/server/level/TicketType.java -index e701f57ac8b0efdf739389f9be7a255220bb3e21..35a437f3acfd2659341abd8ab6a3b21c00594ba9 100644 +index 4d3f7d4a8e05a8d84aa5202134eda1ce9621712e..db159b9b4ffc032f5abe68bf294e58cce04e1baa 100644 --- a/src/main/java/net/minecraft/server/level/TicketType.java +++ b/src/main/java/net/minecraft/server/level/TicketType.java @@ -26,6 +26,7 @@ public class TicketType { - public static final TicketType UNKNOWN = TicketType.create("unknown", Comparator.comparingLong(ChunkPos::toLong), 1); public static final TicketType PLUGIN = TicketType.create("plugin", (a, b) -> 0); // CraftBukkit public static final TicketType PLUGIN_TICKET = TicketType.create("plugin_ticket", (plugin1, plugin2) -> plugin1.getClass().getName().compareTo(plugin2.getClass().getName())); // CraftBukkit + public static final TicketType POST_TELEPORT = TicketType.create("post_teleport", Integer::compare, 5); // Paper - post teleport ticket type + public static final TicketType ENTITY_MOVEMENT = TicketType.create("entity_movement", Long::compareTo, 10*20); // Sakura - load chunks on movement 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 2aaf7ce81bff0c03da2211f145489d304ac669d2..43f9ab0a18e1cb1998b737a948867b91962a805f 100644 +index 20dac48cce9596217d1ebd1703e5ac2c0ede56e1..20980e5a180e0e7951d5c9a97b8b8f792c619b9a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -572,6 +572,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -75,7 +75,7 @@ index 2aaf7ce81bff0c03da2211f145489d304ac669d2..43f9ab0a18e1cb1998b737a948867b91 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -1556,7 +1570,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1569,7 +1583,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.getCollisionsForBlocksOrWorldBorder( this.level, (Entity)(Object)this, initialCollisionBox, potentialCollisionsVoxel, potentialCollisionsBB, @@ -84,7 +84,7 @@ index 2aaf7ce81bff0c03da2211f145489d304ac669d2..43f9ab0a18e1cb1998b737a948867b91 ); potentialCollisionsBB.addAll(entityAABBs); final Vec3 collided = ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.performCollisions(movement, currentBox, potentialCollisionsVoxel, potentialCollisionsBB); -@@ -5199,12 +5213,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -5229,12 +5243,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @Override public boolean shouldBeSaved() { @@ -100,7 +100,7 @@ index 2aaf7ce81bff0c03da2211f145489d304ac669d2..43f9ab0a18e1cb1998b737a948867b91 public boolean mayInteract(ServerLevel 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 4a50ef9b25b9162815b879c60c294ed4be2edd5c..6127993804a8c0b342d74c62f163b8371f7c049b 100644 +index e270eaec13afb16ed80e7c3fd8ea35ee58291263..20fa9a70f2d51aaa7f9ea01150d65c1f73caa374 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -79,6 +79,7 @@ public class FallingBlockEntity extends Entity { @@ -112,7 +112,7 @@ index 4a50ef9b25b9162815b879c60c294ed4be2edd5c..6127993804a8c0b342d74c62f163b837 public FallingBlockEntity(Level world, double x, double y, double z, BlockState block) { diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index eff8a8353b513da72e18f993fd41494291bdff3a..2ddfea0dd64cf6a2295583b747ab195346c24530 100644 +index a7bcf197f062361c764d4e951ed88678994eca17..539219a4117c67278461ee483a457c005e6edcfc 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -64,6 +64,7 @@ public class PrimedTnt extends Entity implements TraceableEntity { @@ -124,7 +124,7 @@ index eff8a8353b513da72e18f993fd41494291bdff3a..2ddfea0dd64cf6a2295583b747ab1953 public PrimedTnt(Level world, double x, double y, double z, @Nullable LivingEntity igniter) { diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java -index a402e2f774cfc062afab8d86969f3e6f38874063..d95c15bff4e7ab241c63b0abeaaaca0d07fd77ae 100644 +index f87abb22dd161b2b74401086de80dc95c9ac2dbb..af1624aeda1ca72973b2b63ef05cd7367f678414 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java @@ -140,6 +140,17 @@ public abstract class ChunkAccess implements BiomeManager.NoiseBiomeSource, Ligh diff --git a/patches/server/0008-Track-Tick-Information.patch b/patches/server/0008-Track-Tick-Information.patch index 41992bf..4ba7faa 100644 --- a/patches/server/0008-Track-Tick-Information.patch +++ b/patches/server/0008-Track-Tick-Information.patch @@ -578,10 +578,10 @@ index 0000000000000000000000000000000000000000..27b6b071ad38589d37e35ea7fdf1d459 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2af0b56d2c83a42f9e6324ce8dd763512d079c17..64ffd589525d659ff1ea50ba628a70d8da642d22 100644 +index 1d0462b970304f543ff949f7aa32c67a1860ba4f..733541e91b0064d50de6c5c0985e9c472685c20c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -426,6 +426,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop into, final Predicate predicate) { this.hardCollidingEntities.getEntities(except, box, into, predicate); } -@@ -521,6 +527,18 @@ public final class ChunkEntitySlices { +@@ -512,6 +518,18 @@ public final class ChunkEntitySlices { } } diff --git a/patches/server/0015-Store-Entity-Data-State.patch b/patches/server/0015-Store-Entity-Data-State.patch index eb6987d..a5550dd 100644 --- a/patches/server/0015-Store-Entity-Data-State.patch +++ b/patches/server/0015-Store-Entity-Data-State.patch @@ -52,7 +52,7 @@ index 0000000000000000000000000000000000000000..aeb5f128b369753cb20b7310fa382ddf + } +} diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 42e72e0406c3e429fc7a6d15cbfa0217e309db5f..b460ce03626f8995e029ad7dbd932cc2c8f0bf20 100644 +index 384b64cfbc2fef49fa22baf1f640ea8f440093cd..316ab62995a7804cf85a2cb986b22e15cd22b01c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -586,6 +586,25 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -82,10 +82,10 @@ index 42e72e0406c3e429fc7a6d15cbfa0217e309db5f..b460ce03626f8995e029ad7dbd932cc2 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 10107e6c4b448ce76650eb334bba740d11fd5874..b40db35a8162efcaa1fa88aa760a4d6f59ec1718 100644 +index 13e8ac95daa115720a2b1f52ad33d124351cbd6d..c69c04451c61bcc32e539baae160f05e3418841f 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1499,6 +1499,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -1500,6 +1500,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl public void guardEntityTick(Consumer tickConsumer, T entity) { try { diff --git a/patches/server/0016-Merge-Cannon-Entities.patch b/patches/server/0016-Merge-Cannon-Entities.patch index 466999c..4fe9494 100644 --- a/patches/server/0016-Merge-Cannon-Entities.patch +++ b/patches/server/0016-Merge-Cannon-Entities.patch @@ -408,10 +408,10 @@ index 0000000000000000000000000000000000000000..fc68bccf135bdcc7b3db7976e452ccae + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 64ffd589525d659ff1ea50ba628a70d8da642d22..ffd78b7622593a757a61e01561d3ef2b37bf1812 100644 +index 733541e91b0064d50de6c5c0985e9c472685c20c..c73aa5fd7da18219d1da63a0973f397316ba4210 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1904,6 +1904,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { if (!entity.isRemoved()) { if (!tickratemanager.isEntityFrozen(entity)) { -@@ -823,6 +824,15 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -824,6 +825,15 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe entity.stopRiding(); } @@ -448,7 +448,7 @@ index 8aa894cb85b08d41eb84d6c013f21585065226e7..d1268f21dc87b7d8755ff2cf95a09a78 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 b460ce03626f8995e029ad7dbd932cc2c8f0bf20..e7f59ead5223858e20722e52b8e31961fe29dccf 100644 +index 316ab62995a7804cf85a2cb986b22e15cd22b01c..fd1d02604a1e46545c7f2c8ad89968279e2fe1bf 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -605,6 +605,23 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -475,7 +475,7 @@ index b460ce03626f8995e029ad7dbd932cc2c8f0bf20..e7f59ead5223858e20722e52b8e31961 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -5203,6 +5220,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -5233,6 +5250,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (this.removalReason != Entity.RemovalReason.UNLOADED_TO_CHUNK) { this.getPassengers().forEach(Entity::stopRiding); } // Paper - rewrite chunk system this.levelCallback.onRemove(entity_removalreason); this.onRemoval(entity_removalreason); @@ -488,7 +488,7 @@ index b460ce03626f8995e029ad7dbd932cc2c8f0bf20..e7f59ead5223858e20722e52b8e31961 if (!(this instanceof ServerPlayer) && entity_removalreason != RemovalReason.CHANGED_DIMENSION && !alreadyRemoved) { // Players need to be special cased, because they are regularly removed from the world 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 35d8422ea3bcdc52db6a7f6702fd593346b30c2c..f0617e9d71fa47dfc0566f31d85b8a05ba3b16fc 100644 +index 81d02da6afd4b77c0ca60e9c8c5100ce6988753c..7dc5e5d91bb91c86ddca52a462903e8452396090 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -57,7 +57,7 @@ import org.bukkit.craftbukkit.event.CraftEventFactory; @@ -596,7 +596,7 @@ index 35d8422ea3bcdc52db6a7f6702fd593346b30c2c..f0617e9d71fa47dfc0566f31d85b8a05 public void setHurtsEntities(float fallHurtAmount, int fallHurtMax) { diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 25a25b5c6497c9823a41e6bd8fd22f0841377c62..6b739e820af6333c1ff3a4b87154d4c00c9a5559 100644 +index 46b729ecf0c58bdbe7a4717e73b098dcffd910f1..f7d8e2ba0ee9b8dd27f20a3e75992b107d07fbf0 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -33,7 +33,7 @@ import org.bukkit.event.entity.EntityRemoveEvent; @@ -688,10 +688,10 @@ index 25a25b5c6497c9823a41e6bd8fd22f0841377c62..6b739e820af6333c1ff3a4b87154d4c0 if (nbt.contains("explosion_power", 99)) { this.explosionPower = Mth.clamp(nbt.getFloat("explosion_power"), 0.0F, 128.0F); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b40db35a8162efcaa1fa88aa760a4d6f59ec1718..d73073ae752d9983785b9402088ae6cf7188a8bf 100644 +index c69c04451c61bcc32e539baae160f05e3418841f..8f4a0912a5b5f17c22d2b4c0ef39e1c5566fa5f7 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -841,6 +841,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -842,6 +842,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl return chunk != null ? chunk.getNoiseBiome(x, y, z) : this.getUncachedNoiseBiome(x, y, z); } // Paper end - optimise random ticking diff --git a/patches/server/0017-Replace-explosion-density-cache.patch b/patches/server/0017-Replace-explosion-density-cache.patch index ad73b48..a4d6fc5 100644 --- a/patches/server/0017-Replace-explosion-density-cache.patch +++ b/patches/server/0017-Replace-explosion-density-cache.patch @@ -126,10 +126,10 @@ index 0000000000000000000000000000000000000000..d7e24638f07f243502004970ab4ce646 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ffd78b7622593a757a61e01561d3ef2b37bf1812..7da3a92b9c81cc903d10b50ea0efd0151626a8e5 100644 +index c73aa5fd7da18219d1da63a0973f397316ba4210..56357e253247d19c108a7f753058fa3eba0302ee 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1905,6 +1905,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop resourcekey, RegistryAccess iregistrycustom, Holder holder, 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, java.util.function.Supplier sakuraWorldConfigCreator, java.util.concurrent.Executor executor) { // Sakura - sakura configuration files // Paper - create paper world config & Anti-Xray // Paper start - getblock optimisations - cache world height/sections diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java -index a92be80081178cc302a7f0b646bad7daa28f7c66..10432b31acd047ac2aa8581f2ee863254ec8d1eb 100644 +index 076ef180360c54517b9acb3ef9e803be41b66f9d..4f9401f654630b5c219681efdda935006629eca7 100644 --- a/src/main/java/net/minecraft/world/level/ServerExplosion.java +++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java @@ -297,7 +297,12 @@ public class ServerExplosion implements Explosion { @@ -198,7 +198,7 @@ index a92be80081178cc302a7f0b646bad7daa28f7c66..10432b31acd047ac2aa8581f2ee86325 Iterator iterator = positions.iterator(); while (iterator.hasNext()) { -@@ -864,14 +884,12 @@ public class ServerExplosion implements Explosion { +@@ -868,14 +888,12 @@ public class ServerExplosion implements Explosion { // Paper start - Optimize explosions private float getBlockDensity(Vec3 vec3d, Entity entity) { diff --git a/patches/server/0019-Specialised-Explosions.patch b/patches/server/0019-Specialised-Explosions.patch index 2f00102..dd5cc6c 100644 --- a/patches/server/0019-Specialised-Explosions.patch +++ b/patches/server/0019-Specialised-Explosions.patch @@ -438,10 +438,10 @@ index 0000000000000000000000000000000000000000..ebe5f0c8c2f09920b5f5ef734e63f5e7 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4c02453b6663f369377940ece30e8a2a4cc4c7d5..e39f4e4716b8794e506d3ffcbc35ae88d0fbc23a 100644 +index 1e940c5b9ce60dd1dd7ec03e83766e26d1112d73..1973da88ac7c3a36cc2db48aeb7d4eab788be500 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1912,7 +1912,16 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -1913,7 +1913,16 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe Explosion.BlockInteraction explosion_effect1 = explosion_effect; Vec3 vec3d = new Vec3(d0, d1, d2); @@ -459,7 +459,7 @@ index 4c02453b6663f369377940ece30e8a2a4cc4c7d5..e39f4e4716b8794e506d3ffcbc35ae88 if (configurator != null) configurator.accept(serverexplosion);// Paper - Allow explosions to damage source serverexplosion.explode(); -@@ -1921,6 +1930,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -1922,6 +1931,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe return serverexplosion; } // CraftBukkit end @@ -473,7 +473,7 @@ index 4c02453b6663f369377940ece30e8a2a4cc4c7d5..e39f4e4716b8794e506d3ffcbc35ae88 ParticleOptions particleparam2 = serverexplosion.isSmall() ? particleparam : particleparam1; Iterator iterator = this.players.iterator(); -@@ -1945,7 +1961,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -1946,7 +1962,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe } } @@ -483,7 +483,7 @@ index 4c02453b6663f369377940ece30e8a2a4cc4c7d5..e39f4e4716b8794e506d3ffcbc35ae88 private Explosion.BlockInteraction getDestroyType(GameRules.Key decayRule) { diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 6b739e820af6333c1ff3a4b87154d4c00c9a5559..0a9e62dd90c6aba4ff97391d69f9a92d9555cae6 100644 +index f7d8e2ba0ee9b8dd27f20a3e75992b107d07fbf0..187cb36e139ce66497e4e20ce75c0a5c4309632e 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -78,20 +78,7 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak @@ -509,7 +509,7 @@ index 6b739e820af6333c1ff3a4b87154d4c00c9a5559..0a9e62dd90c6aba4ff97391d69f9a92d // Sakura end - merge cannon entities diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java -index b07c2eb8cc3cc54e8ab72c5ed3d6d7623416e7fb..59e38ee6ac0699350a7021f1d074fdfee4a5ba41 100644 +index 190eca0e25a8761f88d15a5eac02d9a67b5635de..74abe5fe92b3f1fe0139f4879fe5efa10d0623e0 100644 --- a/src/main/java/net/minecraft/world/level/ServerExplosion.java +++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java @@ -52,9 +52,9 @@ public class ServerExplosion implements Explosion { @@ -650,7 +650,7 @@ index b07c2eb8cc3cc54e8ab72c5ed3d6d7623416e7fb..59e38ee6ac0699350a7021f1d074fdfe return this.blockInteraction != Explosion.BlockInteraction.KEEP; } -@@ -904,7 +926,7 @@ public class ServerExplosion implements Explosion { +@@ -908,7 +930,7 @@ public class ServerExplosion implements Explosion { } // Paper start - Optimize explosions diff --git a/patches/server/0020-Optimise-cannon-entity-movement.patch b/patches/server/0020-Optimise-cannon-entity-movement.patch index 4032812..270ce87 100644 --- a/patches/server/0020-Optimise-cannon-entity-movement.patch +++ b/patches/server/0020-Optimise-cannon-entity-movement.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimise cannon entity movement diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e7f59ead5223858e20722e52b8e31961fe29dccf..12ab6b6ff6444da963f3e1160bf779f7fdb72c48 100644 +index fd1d02604a1e46545c7f2c8ad89968279e2fe1bf..953aa1b3d292dd8e8ed29926c269e6d6e79a83c0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1214,6 +1214,75 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1222,6 +1222,75 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return this.moveStartZ; } // Paper end - detailed watchdog information @@ -84,7 +84,7 @@ index e7f59ead5223858e20722e52b8e31961fe29dccf..12ab6b6ff6444da963f3e1160bf779f7 public void move(MoverType type, Vec3 movement) { final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity -@@ -1575,6 +1644,107 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1588,6 +1657,107 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return offsetFactor; } @@ -193,7 +193,7 @@ index e7f59ead5223858e20722e52b8e31961fe29dccf..12ab6b6ff6444da963f3e1160bf779f7 // Paper start - optimise collisions final boolean xZero = movement.x == 0.0; 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 f0617e9d71fa47dfc0566f31d85b8a05ba3b16fc..32811e9d925911864e0c0fa5a2e25031098f423e 100644 +index 7dc5e5d91bb91c86ddca52a462903e8452396090..a2683e26fc252f0ce933e3ea71fde9c84bcee0fd 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -213,7 +213,7 @@ public class FallingBlockEntity extends Entity implements me.samsuik.sakura.enti @@ -206,7 +206,7 @@ index f0617e9d71fa47dfc0566f31d85b8a05ba3b16fc..32811e9d925911864e0c0fa5a2e25031 // Paper start - Configurable falling blocks height nerf if (this.level().paperConfig().fixes.fallingBlockHeightNerf.test(v -> this.getY() > v)) { diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 0a9e62dd90c6aba4ff97391d69f9a92d9555cae6..7bb55565208b99db095c5842a7e21fd21700173e 100644 +index 187cb36e139ce66497e4e20ce75c0a5c4309632e..d60d25c0d731738c647fee6e618d3e4942949dc7 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -130,7 +130,7 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak diff --git a/patches/server/0021-Entity-pushed-by-fluid-API.patch b/patches/server/0021-Entity-pushed-by-fluid-API.patch index 54e61e6..6fa3be9 100644 --- a/patches/server/0021-Entity-pushed-by-fluid-API.patch +++ b/patches/server/0021-Entity-pushed-by-fluid-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity pushed by fluid API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 12ab6b6ff6444da963f3e1160bf779f7fdb72c48..cc31ee0d9ab13fd08dc33b6757173682883a2ac5 100644 +index 953aa1b3d292dd8e8ed29926c269e6d6e79a83c0..b1ae26d08f12aadea37e44221c44db6430a3a99c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -622,6 +622,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -16,7 +16,7 @@ index 12ab6b6ff6444da963f3e1160bf779f7fdb72c48..cc31ee0d9ab13fd08dc33b6757173682 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -4446,7 +4447,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4480,7 +4481,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public boolean isPushedByFluid() { @@ -26,7 +26,7 @@ index 12ab6b6ff6444da963f3e1160bf779f7fdb72c48..cc31ee0d9ab13fd08dc33b6757173682 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 ddabaed899c755925ad8618b78c33dacaf2126ac..83de2011a8b448b463bcd96e4a8ee8933590de58 100644 +index b25b10c24a379097233e61bcc10add841b6a7115..4f4c708361160461bb472dcc79751fa29c5274b9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -204,6 +204,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0024-Optimise-TNT-fluid-state.patch b/patches/server/0024-Optimise-TNT-fluid-state.patch index 89d8a90..b112da6 100644 --- a/patches/server/0024-Optimise-TNT-fluid-state.patch +++ b/patches/server/0024-Optimise-TNT-fluid-state.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimise TNT fluid state diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cc31ee0d9ab13fd08dc33b6757173682883a2ac5..687eb620c0ee3fc19472f830b6296862a7dcf01c 100644 +index b1ae26d08f12aadea37e44221c44db6430a3a99c..a56517cb6628939e6eed4b26e5e7f8bf6fc1c7af 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2233,7 +2233,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2256,7 +2256,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return this.isInWater() || flag; } @@ -18,7 +18,7 @@ index cc31ee0d9ab13fd08dc33b6757173682883a2ac5..687eb620c0ee3fc19472f830b6296862 if (entity instanceof AbstractBoat abstractboat) { diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 93cf290b25d569820dd1bf9b4b5fb255abdbd8cd..f2206e57c04d29ed470ae2083b25ab502144ccb1 100644 +index 712ac847cf5fbb01133da2630f942afc69c79672..00801a9396e3c128730fe75c287d7b29ad0a00df 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -126,6 +126,21 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak diff --git a/patches/server/0025-Add-maxSearch-to-getEntities.patch b/patches/server/0025-Add-maxSearch-to-getEntities.patch index 849e237..e831d05 100644 --- a/patches/server/0025-Add-maxSearch-to-getEntities.patch +++ b/patches/server/0025-Add-maxSearch-to-getEntities.patch @@ -5,46 +5,40 @@ Subject: [PATCH] Add maxSearch to getEntities diff --git a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java -index 88b1a9b4b3da23b8e500ec343915e66e9b4f19b6..932d26a8c01414144aa56cdf9f6f63d07aff52d5 100644 +index 39148fe540d616cdd4d63c4d1a02b422cab0f6eb..50a551d5bcac9b2b6644d7b43e625185090657a6 100644 --- a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java +++ b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java -@@ -315,10 +315,16 @@ public final class ChunkEntitySlices { - this.allEntities.getEntities(except, box, into, predicate); - } - -+ // Sakura start - add maxSearch to getEntities -+ public boolean getEntities(final Entity except, final AABB box, final List into, final Predicate predicate, -+ final int maxCount) { -+ return this.getEntities(except, box, into, predicate, maxCount, Integer.MAX_VALUE); -+ } +@@ -314,7 +314,14 @@ public final class ChunkEntitySlices { public boolean getEntities(final Entity except, final AABB box, final List into, final Predicate predicate, -- final int maxCount) { -- return this.allEntities.getEntitiesWithEnderDragonPartsLimited(except, box, into, predicate, maxCount); -+ final int maxCount, final int maxSearch) { -+ return this.allEntities.getEntitiesWithEnderDragonPartsLimited(except, box, into, predicate, maxCount, maxSearch); + final int maxCount) { +- return this.allEntities.getEntitiesLimited(except, box, into, predicate, maxCount); ++ // Sakura start - add maxSearch to getEntities ++ return this.getEntities(except, box, into, predicate, maxCount, Integer.MAX_VALUE); ++ } ++ ++ public boolean getEntities(final Entity except, final AABB box, final List into, final Predicate predicate, ++ final int maxCount, final int maxSearch) { ++ return this.allEntities.getEntitiesLimited(except, box, into, predicate, maxCount, maxSearch); + // Sakura end - add maxSearch to getEntities } - public boolean getEntitiesWithoutDragonParts(final Entity except, final AABB box, final List into, final Predicate predicate, -@@ -672,8 +678,16 @@ public final class ChunkEntitySlices { - } - } + public void getEntities(final EntityType type, final AABB box, final List into, +@@ -570,6 +577,13 @@ public final class ChunkEntitySlices { -+ // Sakura start - add maxSearch to getEntities - public boolean getEntitiesWithEnderDragonPartsLimited(final Entity except, final AABB box, final List into, - final Predicate predicate, final int maxCount) { -+ return this.getEntitiesWithEnderDragonPartsLimited(except, box, into, predicate, maxCount, Integer.MAX_VALUE); + public boolean getEntitiesLimited(final Entity except, final AABB box, final List into, final Predicate predicate, + final int maxCount) { ++ // Sakura start - add maxSearch to getEntities ++ return this.getEntitiesLimited(except, box, into, predicate, maxCount, Integer.MAX_VALUE); + } + -+ public boolean getEntitiesWithEnderDragonPartsLimited(final Entity except, final AABB box, final List into, -+ final Predicate predicate, final int maxCount, -+ final int maxSearch) { ++ public boolean getEntitiesLimited(final Entity except, final AABB box, final List into, final Predicate predicate, ++ final int maxCount, final int maxSearch) { + // Sakura end - add maxSearch to getEntities if (this.count == 0) { return false; } -@@ -695,8 +709,14 @@ public final class ChunkEntitySlices { +@@ -591,8 +605,14 @@ public final class ChunkEntitySlices { final Entity[] storage = list.storage; @@ -62,16 +56,14 @@ index 88b1a9b4b3da23b8e500ec343915e66e9b4f19b6..932d26a8c01414144aa56cdf9f6f63d0 if (entity == null || entity == except || !entity.getBoundingBox().intersects(box)) { continue; diff --git a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/EntityLookup.java b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/EntityLookup.java -index 93335de8cf514dc8417e4b9b2d495663deda2904..774df86ba47ff6a7fa9fa38438824c64b569f665 100644 +index 7554c109c35397bc1a43dd80e87764fd78645bbf..d60f30f7afb15cc90c1bd4b816136d00b23a53e4 100644 --- a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/EntityLookup.java +++ b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/EntityLookup.java -@@ -801,8 +801,15 @@ public abstract class EntityLookup implements LevelEntityGetter { - } - } +@@ -722,6 +722,13 @@ public abstract class EntityLookup implements LevelEntityGetter { -+ // Sakura start - add maxSearch to getEntities public void getEntities(final Entity except, final AABB box, final List into, final Predicate predicate, final int maxCount) { ++ // Sakura start - add maxSearch to getEntities + this.getEntities(except, box, into, predicate, maxCount, Integer.MAX_VALUE); + } + @@ -81,7 +73,7 @@ index 93335de8cf514dc8417e4b9b2d495663deda2904..774df86ba47ff6a7fa9fa38438824c64 final int minChunkX = (Mth.floor(box.minX) - 2) >> 4; final int minChunkZ = (Mth.floor(box.minZ) - 2) >> 4; final int maxChunkX = (Mth.floor(box.maxX) + 2) >> 4; -@@ -834,7 +841,7 @@ public abstract class EntityLookup implements LevelEntityGetter { +@@ -753,7 +760,7 @@ public abstract class EntityLookup implements LevelEntityGetter { continue; } @@ -91,10 +83,10 @@ index 93335de8cf514dc8417e4b9b2d495663deda2904..774df86ba47ff6a7fa9fa38438824c64 } } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b45ad0125cd5c116126e8ffb893585970ea3b960..2d5783a6ff7a9ce6dcb6f2895ff80928e62f0cd2 100644 +index addab159f6fb73fe063f8a057c281d0594a99122..0301e304bb67d3a52de551442e425b83152fbabf 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1692,10 +1692,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -1693,10 +1693,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl this.getEntities(filter, box, predicate, result, Integer.MAX_VALUE); } @@ -114,7 +106,7 @@ index b45ad0125cd5c116126e8ffb893585970ea3b960..2d5783a6ff7a9ce6dcb6f2895ff80928 Profiler.get().incrementCounter("getEntities"); if (entityTypeTest instanceof net.minecraft.world.entity.EntityType byType) { -@@ -1712,7 +1720,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -1713,7 +1721,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl if (entityTypeTest == null) { if (maxCount != Integer.MAX_VALUE) { diff --git a/patches/server/0026-Optimise-LivingEntity-pushEntities.patch b/patches/server/0026-Optimise-LivingEntity-pushEntities.patch index df21463..3ad8c1e 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 f36a075dbee2b96d01899e02460b1d8443e91749..e6b6987b46294a96f10d3aa56e8bdc4e25a4c9bf 100644 +index 96b4fbe4a4655777ff10b32e3257e2fac2aba12a..01179c4b01aa4898d08b392bd682587e3858b822 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3789,7 +3789,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3800,7 +3800,12 @@ public abstract class LivingEntity extends Entity implements Attackable { return; } // Paper end - don't run getEntities if we're not going to use its result diff --git a/patches/server/0028-Configure-Entity-Knockback.patch b/patches/server/0028-Configure-Entity-Knockback.patch index 5938ce9..b7d653c 100644 --- a/patches/server/0028-Configure-Entity-Knockback.patch +++ b/patches/server/0028-Configure-Entity-Knockback.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configure Entity Knockback diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e6b6987b46294a96f10d3aa56e8bdc4e25a4c9bf..daf37223c47f30f6da23a996c8b0473e473cbba2 100644 +index 01179c4b01aa4898d08b392bd682587e3858b822..f1560f5139b3090057950b41c4374ded4c50b3e2 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1604,7 +1604,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1572,7 +1572,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } // Paper end - Check distance in entity interactions @@ -17,7 +17,7 @@ index e6b6987b46294a96f10d3aa56e8bdc4e25a4c9bf..daf37223c47f30f6da23a996c8b0473e if (!flag) { this.indicateDamage(d0, d1); } -@@ -1674,7 +1674,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1685,7 +1685,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } protected void blockedByShield(LivingEntity target) { @@ -26,7 +26,7 @@ index e6b6987b46294a96f10d3aa56e8bdc4e25a4c9bf..daf37223c47f30f6da23a996c8b0473e } private boolean checkTotemDeathProtection(DamageSource source) { -@@ -2024,7 +2024,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2035,7 +2035,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } public void knockback(double d0, double d1, double d2, @Nullable Entity attacker, io.papermc.paper.event.entity.EntityKnockbackEvent.Cause cause) { // Paper - knockback events @@ -35,7 +35,7 @@ index e6b6987b46294a96f10d3aa56e8bdc4e25a4c9bf..daf37223c47f30f6da23a996c8b0473e if (true || d0 > 0.0D) { // CraftBukkit - Call event even when force is 0 //this.hasImpulse = true; // CraftBukkit - Move down -@@ -2035,9 +2035,21 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2046,9 +2046,21 @@ public abstract class LivingEntity extends Entity implements Attackable { } Vec3 vec3d1 = (new Vec3(d1, 0.0D, d2)).normalize().scale(d0); @@ -59,10 +59,10 @@ index e6b6987b46294a96f10d3aa56e8bdc4e25a4c9bf..daf37223c47f30f6da23a996c8b0473e io.papermc.paper.event.entity.EntityKnockbackEvent event = CraftEventFactory.callEntityKnockbackEvent((org.bukkit.craftbukkit.entity.CraftLivingEntity) this.getBukkitEntity(), attacker, attacker, cause, d0, diff); // Paper end - knockback events 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 c3e90356ab409f408b767618db718e3926edf8d1..e50b64ba18fe8a4536b6f8aadca93064cd9f47f7 100644 +index 99133ad27aac31f68101aff4a4c4965c7ff1fd6b..d11f67157c1bf8c14776c56748de3588273c7d45 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -197,6 +197,7 @@ public abstract class Player extends LivingEntity { +@@ -200,6 +200,7 @@ public abstract class Player extends LivingEntity { private int currentImpulseContextResetGraceTime; public boolean affectsSpawning = true; // Paper - Affects Spawning API public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage @@ -70,7 +70,7 @@ index c3e90356ab409f408b767618db718e3926edf8d1..e50b64ba18fe8a4536b6f8aadca93064 // CraftBukkit start public boolean fauxSleeping; -@@ -1261,7 +1262,7 @@ public abstract class Player extends LivingEntity { +@@ -1264,7 +1265,7 @@ public abstract class Player extends LivingEntity { boolean flag = f2 > 0.9F; boolean flag1; @@ -79,7 +79,7 @@ index c3e90356ab409f408b767618db718e3926edf8d1..e50b64ba18fe8a4536b6f8aadca93064 sendSoundEffect(this, this.getX(), this.getY(), this.getZ(), SoundEvents.PLAYER_ATTACK_KNOCKBACK, this.getSoundSource(), 1.0F, 1.0F); // Paper - send while respecting visibility flag1 = true; } else { -@@ -1304,7 +1305,21 @@ public abstract class Player extends LivingEntity { +@@ -1307,7 +1308,21 @@ public abstract class Player extends LivingEntity { float f5 = this.getKnockback(target, damagesource) + (flag1 ? 1.0F : 0.0F); if (f5 > 0.0F) { @@ -102,7 +102,7 @@ index c3e90356ab409f408b767618db718e3926edf8d1..e50b64ba18fe8a4536b6f8aadca93064 LivingEntity entityliving1 = (LivingEntity) target; entityliving1.knockback((double) (f5 * 0.5F), (double) Mth.sin(this.getYRot() * 0.017453292F), (double) (-Mth.cos(this.getYRot() * 0.017453292F)), this, io.papermc.paper.event.entity.EntityKnockbackEvent.Cause.ENTITY_ATTACK); // Paper - knockback events -@@ -1337,7 +1352,7 @@ public abstract class Player extends LivingEntity { +@@ -1340,7 +1355,7 @@ public abstract class Player extends LivingEntity { continue; } // CraftBukkit end @@ -112,7 +112,7 @@ index c3e90356ab409f408b767618db718e3926edf8d1..e50b64ba18fe8a4536b6f8aadca93064 Level world = this.level(); diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java -index 4daa69c6be6d48563e30343a7e40e4da9ec7e5ad..c563f71fb79990771d032b8044b8f676d8d21058 100644 +index 5e6ceb3c3728c0c08a516566c70a5c0d72d59196..1cc44f6626dfff7724e2ea1b41917ae4715b8d4d 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java +++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java @@ -304,6 +304,12 @@ public class FishingHook extends Projectile { diff --git a/patches/server/0029-Explosion-Durable-Blocks.patch b/patches/server/0029-Explosion-Durable-Blocks.patch index 5efcc6a..122c703 100644 --- a/patches/server/0029-Explosion-Durable-Blocks.patch +++ b/patches/server/0029-Explosion-Durable-Blocks.patch @@ -54,7 +54,7 @@ index 0000000000000000000000000000000000000000..e52cae27c2bbf4fa02d49d1c69d8e124 + } +} diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java -index c816c935ecc74a811ffdffbe6ded73c06e92324a..4da4efe7114d4fcea5e79bcab292dc4b3c782de9 100644 +index 4377fa2400c4320e0023ece230090a2a3b4b2ab6..9b66ac859619d3e79d5ab33939006b178699d474 100644 --- a/src/main/java/net/minecraft/world/item/BlockItem.java +++ b/src/main/java/net/minecraft/world/item/BlockItem.java @@ -47,8 +47,32 @@ public class BlockItem extends Item { @@ -91,10 +91,10 @@ index c816c935ecc74a811ffdffbe6ded73c06e92324a..4da4efe7114d4fcea5e79bcab292dc4b return !enuminteractionresult.consumesAction() && context.getItemInHand().has(DataComponents.CONSUMABLE) ? super.use(context.getLevel(), context.getPlayer(), context.getHand()) : enuminteractionresult; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2d5783a6ff7a9ce6dcb6f2895ff80928e62f0cd2..0ae2d83055252146e346b06cc8360eef56d39f5c 100644 +index 0301e304bb67d3a52de551442e425b83152fbabf..9fb78a9bd08521dff83b1f28be2421aa37af5898 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -843,6 +843,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -844,6 +844,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl // Paper end - optimise random ticking public final me.samsuik.sakura.entity.merge.EntityMergeHandler mergeHandler = new me.samsuik.sakura.entity.merge.EntityMergeHandler(); // Sakura - merge cannon entities public final me.samsuik.sakura.explosion.density.BlockDensityCache densityCache = new me.samsuik.sakura.explosion.density.BlockDensityCache(); // Sakura - explosion density cache @@ -103,7 +103,7 @@ index 2d5783a6ff7a9ce6dcb6f2895ff80928e62f0cd2..0ae2d83055252146e346b06cc8360eef protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, 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, java.util.function.Supplier sakuraWorldConfigCreator, java.util.concurrent.Executor executor) { // Sakura - sakura configuration files // Paper - create paper world config & Anti-Xray // Paper start - getblock optimisations - cache world height/sections diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java -index 59e38ee6ac0699350a7021f1d074fdfee4a5ba41..ccca5d7d51cd7e4a77d87293eb66c9732fce4381 100644 +index 74abe5fe92b3f1fe0139f4879fe5efa10d0623e0..278ca240491096514f4c48be56bcfe2d2356520e 100644 --- a/src/main/java/net/minecraft/world/level/ServerExplosion.java +++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java @@ -134,7 +134,7 @@ public class ServerExplosion implements Explosion { diff --git a/patches/server/0033-Add-option-to-disable-entity-ai.patch b/patches/server/0033-Add-option-to-disable-entity-ai.patch index 95a985a..0317952 100644 --- a/patches/server/0033-Add-option-to-disable-entity-ai.patch +++ b/patches/server/0033-Add-option-to-disable-entity-ai.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to disable entity ai diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index dbd321f3dc3cc80737830db63aed47a6935e8e89..0f7fbb0e3ccc47711bc5dddd046f96f2bfda7ebd 100644 +index 5a3059cadbc9735b4b48745c6b1b11196596b06d..7ea45862e61d2ecb0722affef2286ea3a1a782a3 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -910,7 +910,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -908,7 +908,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab protected final void serverAiStep() { ++this.noActionTime; // Paper start - Allow nerfed mobs to jump and float diff --git a/patches/server/0036-Option-to-configure-entity-water-sensitivity.patch b/patches/server/0036-Option-to-configure-entity-water-sensitivity.patch index da68718..e791eb0 100644 --- a/patches/server/0036-Option-to-configure-entity-water-sensitivity.patch +++ b/patches/server/0036-Option-to-configure-entity-water-sensitivity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option to configure entity water sensitivity diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index daf37223c47f30f6da23a996c8b0473e473cbba2..acfb7762f53636a5df1e8de8f1cbcf8d150debc7 100644 +index f1560f5139b3090057950b41c4374ded4c50b3e2..e7603a67c985ff105a8a4e16179fe33fe26f5b22 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3719,7 +3719,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3730,7 +3730,7 @@ public abstract class LivingEntity extends Entity implements Attackable { // Paper end - Add EntityMoveEvent world = this.level(); if (world instanceof ServerLevel worldserver) { diff --git a/patches/server/0037-Configure-cannon-physics-by-version.patch b/patches/server/0037-Configure-cannon-physics-by-version.patch index 1762a79..df5ea26 100644 --- a/patches/server/0037-Configure-cannon-physics-by-version.patch +++ b/patches/server/0037-Configure-cannon-physics-by-version.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configure cannon physics by version diff --git a/src/main/java/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java b/src/main/java/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java -index f6be260f942c6b9c65e8c3ed625639db75086267..27b7be52f7617a6ecd1ff7e967604424f40027bc 100644 +index a8abdfe0f9e7f8e1b1b92b03dec53906c553bf67..b85f739b21cab2f72237fcbc04386af77250527b 100644 --- a/src/main/java/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java +++ b/src/main/java/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java @@ -1801,6 +1801,13 @@ public final class CollisionUtil { @@ -106,7 +106,7 @@ index ebe5f0c8c2f09920b5f5ef734e63f5e7cd8bd3a1..320cdb1f4e655a2d093890e88476df90 protected int getExplosionCount() { if (this.cause.getMergeEntityData().getMergeLevel() == MergeLevel.NONE) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 687eb620c0ee3fc19472f830b6296862a7dcf01c..dd93bff521e8bfc72416cebed20cb3a5bce094b8 100644 +index a56517cb6628939e6eed4b26e5e7f8bf6fc1c7af..57d9003a79c2d3a0c756b4e4738c33f7a206e62a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -341,7 +341,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -132,7 +132,7 @@ index 687eb620c0ee3fc19472f830b6296862a7dcf01c..dd93bff521e8bfc72416cebed20cb3a5 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -1161,7 +1168,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1169,7 +1176,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } protected void checkSupportingBlock(boolean onGround, @Nullable Vec3 movement) { @@ -141,7 +141,7 @@ index 687eb620c0ee3fc19472f830b6296862a7dcf01c..dd93bff521e8bfc72416cebed20cb3a5 AABB axisalignedbb = this.getBoundingBox(); AABB axisalignedbb1 = new AABB(axisalignedbb.minX, axisalignedbb.minY - 1.0E-6D, axisalignedbb.minZ, axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.maxZ); Optional optional = this.level.findSupportingBlock(this, axisalignedbb1); -@@ -1221,7 +1228,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1229,7 +1236,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (this.noPhysics) { this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z); } else { @@ -150,7 +150,7 @@ index 687eb620c0ee3fc19472f830b6296862a7dcf01c..dd93bff521e8bfc72416cebed20cb3a5 movement = this.limitPistonMovement(movement); if (movement.equals(Vec3.ZERO)) { return; -@@ -1239,8 +1246,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1247,8 +1254,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess Vec3 vec3d1 = this.sakura_collide(movement); double d0 = vec3d1.lengthSqr(); @@ -161,7 +161,7 @@ index 687eb620c0ee3fc19472f830b6296862a7dcf01c..dd93bff521e8bfc72416cebed20cb3a5 BlockHitResult clipResult = this.level().clip(new ClipContext(this.position(), this.position().add(vec3d1), ClipContext.Block.FALLDAMAGE_RESETTING, ClipContext.Fluid.WATER, this)); if (clipResult.getType() != HitResult.Type.MISS) { this.resetFallDistance(); -@@ -1269,6 +1276,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1277,6 +1284,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } else { if (this.horizontalCollision) { Vec3 vec3d2 = this.getDeltaMovement(); @@ -173,7 +173,7 @@ index 687eb620c0ee3fc19472f830b6296862a7dcf01c..dd93bff521e8bfc72416cebed20cb3a5 this.setDeltaMovement(movedX ? 0.0D : vec3d2.x, vec3d2.y, movedZ ? 0.0D : vec3d2.z); } -@@ -1674,7 +1686,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1687,7 +1699,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess bb = currBoundingBox.expandTowards(movement.x, movement.y, movement.z); } this.collectCollisions(bb, voxelList, bbList); @@ -182,7 +182,7 @@ index 687eb620c0ee3fc19472f830b6296862a7dcf01c..dd93bff521e8bfc72416cebed20cb3a5 } private Vec3 collideAxisScan(Vec3 movement, AABB currBoundingBox, List voxelList, List bbList) { -@@ -1682,7 +1694,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1695,7 +1707,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess double y = movement.y; double z = movement.z; @@ -194,7 +194,7 @@ index 687eb620c0ee3fc19472f830b6296862a7dcf01c..dd93bff521e8bfc72416cebed20cb3a5 if (y != 0.0) { y = this.scanY(currBoundingBox, y, voxelList, bbList); -@@ -1780,7 +1795,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1793,7 +1808,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.COLLISION_FLAG_CHECK_BORDER | this.getExtraCollisionFlags(), null // Sakura - load chunks on movement ); potentialCollisionsBB.addAll(entityAABBs); @@ -203,24 +203,15 @@ index 687eb620c0ee3fc19472f830b6296862a7dcf01c..dd93bff521e8bfc72416cebed20cb3a5 final boolean collidedX = collided.x != movement.x; final boolean collidedY = collided.y != movement.y; -@@ -1947,7 +1962,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - - private void checkInsideBlocks(List queuedCollisionChecks, Set collidedBlocks) { - if (this.isAffectedByBlocks()) { -- AABB axisalignedbb = this.getBoundingBox().deflate(9.999999747378752E-6D); -+ // Sakura start - physics version api -+ double offset = this.physics.afterOrEqual(1_21_2) ? 1.0E-5f : this.physics.afterOrEqual(1_19_3) ? 1.0E-7D : 0.001D; -+ AABB axisalignedbb = this.getBoundingBox().deflate(offset); -+ // Sakura end - physics version api - LongSet longset = this.visitedBlocks; - Iterator iterator = queuedCollisionChecks.iterator(); - -@@ -1955,7 +1973,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1967,8 +1982,17 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess Entity.Movement entity_b = (Entity.Movement) iterator.next(); Vec3 vec3d = entity_b.from(); Vec3 vec3d1 = entity_b.to(); +- AABB axisalignedbb = this.makeBoundingBox(vec3d1).deflate(9.999999747378752E-6D); - Iterator iterator1 = BlockGetter.boxTraverseBlocks(vec3d, vec3d1, axisalignedbb).iterator(); + // Sakura start - physics version api ++ double offset = this.physics.afterOrEqual(1_21_2) ? 1.0E-5f : this.physics.afterOrEqual(1_19_3) ? 1.0E-7D : 0.001D; ++ AABB axisalignedbb = this.makeBoundingBox(vec3d1).deflate(offset); + final Iterable positions; + if (this.physics.afterOrEqual(1_21_2)) { + positions = BlockGetter.boxTraverseBlocks(vec3d, vec3d1, axisalignedbb); @@ -233,7 +224,7 @@ index 687eb620c0ee3fc19472f830b6296862a7dcf01c..dd93bff521e8bfc72416cebed20cb3a5 while (iterator1.hasNext()) { BlockPos blockposition = (BlockPos) iterator1.next(); 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 890f1d6f8ad740afb0b30208f7cd42594e4c9d20..7ec7cfde4ce47a7f4a64e83fa49ed7287684d6a0 100644 +index 446b168babf732df9322826e3124fee08f22a015..e271bf7a5efea424dc4facdeba3e6ccb061853dc 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -147,6 +147,8 @@ public class FallingBlockEntity extends Entity implements me.samsuik.sakura.enti @@ -365,7 +356,7 @@ index 890f1d6f8ad740afb0b30208f7cd42594e4c9d20..7ec7cfde4ce47a7f4a64e83fa49ed728 } diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 3e4935f4a07fa14152d1f55f069c49fdd2f3bc02..1231d99374ffa5d988e5b240be2da95f0002947c 100644 +index 80a512033689171196c20f07a5b99fbd30c167c6..0ed14efbfca22e9f319f23ad8920fd656930a7c6 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -108,6 +108,13 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak @@ -456,10 +447,10 @@ index 3e4935f4a07fa14152d1f55f069c49fdd2f3bc02..1231d99374ffa5d988e5b240be2da95f // Paper end - Option to prevent TNT from moving in water } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 452a9fef94d093b637245c82d36dacbb1e1d86c5..b67c4bcc7afb074134344b5f239370290416934e 100644 +index 9fb78a9bd08521dff83b1f28be2421aa37af5898..f99497c7b10716c1804d29e1e51e608c3a542127 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -841,6 +841,170 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -842,6 +842,170 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl return chunk != null ? chunk.getNoiseBiome(x, y, z) : this.getUncachedNoiseBiome(x, y, z); } // Paper end - optimise random ticking @@ -631,7 +622,7 @@ index 452a9fef94d093b637245c82d36dacbb1e1d86c5..b67c4bcc7afb074134344b5f23937029 public final me.samsuik.sakura.explosion.density.BlockDensityCache densityCache = new me.samsuik.sakura.explosion.density.BlockDensityCache(); // Sakura - explosion density cache public final me.samsuik.sakura.explosion.durable.DurableBlockManager durabilityManager = new me.samsuik.sakura.explosion.durable.DurableBlockManager(); // Sakura - explosion durable blocks diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java -index 85c84333614a4e0739e39cb72d8e4015ed78e7b7..bdc3ff8cbe4e5eaa9d9a34f38fdd150f7368e33b 100644 +index fe77344a266b5f9cbb5b0394abfdc5878662160c..977c73dc9faa9114705f329f6b00a0c69c1cca37 100644 --- a/src/main/java/net/minecraft/world/level/ServerExplosion.java +++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java @@ -413,6 +413,7 @@ public class ServerExplosion implements Explosion { @@ -692,7 +683,7 @@ index 85c84333614a4e0739e39cb72d8e4015ed78e7b7..bdc3ff8cbe4e5eaa9d9a34f38fdd150f if (d4 != 0.0D) { d1 /= d4; -@@ -961,7 +981,7 @@ public class ServerExplosion implements Explosion { +@@ -965,7 +985,7 @@ public class ServerExplosion implements Explosion { // Sakura start - replace density cache float blockDensity = this.level.densityCache.getDensity(vec3d, entity); if (blockDensity == me.samsuik.sakura.explosion.density.BlockDensityCache.UNKNOWN_DENSITY) { @@ -701,7 +692,7 @@ index 85c84333614a4e0739e39cb72d8e4015ed78e7b7..bdc3ff8cbe4e5eaa9d9a34f38fdd150f this.level.densityCache.putDensity(vec3d, entity, blockDensity); // Sakura end - replace density cache } -@@ -969,6 +989,16 @@ public class ServerExplosion implements Explosion { +@@ -973,6 +993,16 @@ public class ServerExplosion implements Explosion { return blockDensity; } @@ -936,10 +927,10 @@ index 72320c6099a4b26235bab68570e7b7efad84740f..737d4c96e9078504e1dd7c4ffd7812a3 } diff --git a/src/main/java/net/minecraft/world/level/block/piston/MovingPistonBlock.java b/src/main/java/net/minecraft/world/level/block/piston/MovingPistonBlock.java -index b696597540d998c52ec3207ffd8bf658fde59215..485929a4e6e5600b799943fff19ab591dbe9ddc6 100644 +index 9cb3d1bfc4d524d272819c2ce27d005595b319ab..6adff1edd134526b77595406f4ca2c06a34ef656 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/MovingPistonBlock.java +++ b/src/main/java/net/minecraft/world/level/block/piston/MovingPistonBlock.java -@@ -109,6 +109,17 @@ public class MovingPistonBlock extends BaseEntityBlock { +@@ -110,6 +110,17 @@ public class MovingPistonBlock extends BaseEntityBlock { @Override protected VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { PistonMovingBlockEntity pistonMovingBlockEntity = this.getBlockEntity(world, pos); @@ -974,7 +965,7 @@ index 4b51472502d08ea357da437afeb4b581979e9cff..6146c786730b2cd5e5883acbe19d1eec } diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonHeadBlock.java b/src/main/java/net/minecraft/world/level/block/piston/PistonHeadBlock.java -index c5c297b1081c9ddbb3bd0a0947401041aa8fec7d..d37c3ef71b1034ce2422c6078aa0abe79430cfac 100644 +index d35bf8367b0ec573dd3a3eebadcdf401ff5633d2..a61c0c6d9649bd7e643db591b8504fc61c44dd3a 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonHeadBlock.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonHeadBlock.java @@ -151,6 +151,11 @@ public class PistonHeadBlock extends DirectionalBlock { diff --git a/patches/server/0049-Add-instant-mob-death-animation.patch b/patches/server/0049-Add-instant-mob-death-animation.patch index 7b731da..099e439 100644 --- a/patches/server/0049-Add-instant-mob-death-animation.patch +++ b/patches/server/0049-Add-instant-mob-death-animation.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add instant mob death animation diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index acfb7762f53636a5df1e8de8f1cbcf8d150debc7..dc57d8d4448f60478693b6c3e81ae11074d4f22b 100644 +index e7603a67c985ff105a8a4e16179fe33fe26f5b22..1bd9f31da1ec66259dc6391448e2b8ce69ddb817 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1858,6 +1858,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1869,6 +1869,12 @@ public abstract class LivingEntity extends Entity implements Attackable { // Paper start if (this.dead) { // Paper diff --git a/patches/server/0051-Option-to-disable-explosions-hurting-players.patch b/patches/server/0051-Option-to-disable-explosions-hurting-players.patch index 39cfed2..31efd5a 100644 --- a/patches/server/0051-Option-to-disable-explosions-hurting-players.patch +++ b/patches/server/0051-Option-to-disable-explosions-hurting-players.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option to disable explosions hurting players 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 e50b64ba18fe8a4536b6f8aadca93064cd9f47f7..1a1203a93550cae95f2a82062e16fb21a779ee94 100644 +index d11f67157c1bf8c14776c56748de3588273c7d45..b439c196db1af082d5ebcd6df59c436396dc144e 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -925,6 +925,11 @@ public abstract class Player extends LivingEntity { +@@ -928,6 +928,11 @@ public abstract class Player extends LivingEntity { @Override public boolean isInvulnerableTo(ServerLevel world, DamageSource source) { diff --git a/patches/server/0057-Add-entity-travel-distance-limits.patch b/patches/server/0057-Add-entity-travel-distance-limits.patch index d1ec72f..48b4bfa 100644 --- a/patches/server/0057-Add-entity-travel-distance-limits.patch +++ b/patches/server/0057-Add-entity-travel-distance-limits.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add entity travel distance limits diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 423d26d6b833e9aa39a84333b9627ad709711378..2ed9565e44435239d8a375ca9dc94e839b2e757f 100644 +index 1973da88ac7c3a36cc2db48aeb7d4eab788be500..88432d15be0167450afe5e5c130b8be233c78437 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1328,6 +1328,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -1329,6 +1329,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(entity); // Paper - EAR 2 if (isActive) { // Paper - EAR 2 entity.tick(); @@ -21,7 +21,7 @@ index 423d26d6b833e9aa39a84333b9627ad709711378..2ed9565e44435239d8a375ca9dc94e83 } else { entity.inactiveTick(); } // Paper - EAR 2 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 247759b7e225bbd14951e7876d1fff6ded62cef0..a48d871f851c9cafdb05fef3e33ec1de81b7d0bd 100644 +index 1aa5803061861016a1bb790ac19b769170a76a79..a2b0fe7122c11da561ab6ceb91bc37385df16c0d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -638,6 +638,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess diff --git a/patches/server/0060-Disable-player-poses-shrinking-collision-box.patch b/patches/server/0060-Disable-player-poses-shrinking-collision-box.patch index f648550..9dec08e 100644 --- a/patches/server/0060-Disable-player-poses-shrinking-collision-box.patch +++ b/patches/server/0060-Disable-player-poses-shrinking-collision-box.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable player poses shrinking collision box 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 1a1203a93550cae95f2a82062e16fb21a779ee94..16f6834b88bf0b2f2157e25240e6bc51db501dce 100644 +index b439c196db1af082d5ebcd6df59c436396dc144e..f14759c18f760165dfad670049c880c01adb96d4 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -2246,7 +2246,13 @@ public abstract class Player extends LivingEntity { +@@ -2249,7 +2249,13 @@ public abstract class Player extends LivingEntity { @Override public EntityDimensions getDefaultDimensions(Pose pose) { diff --git a/patches/server/0064-Legacy-player-combat-mechanics.patch b/patches/server/0064-Legacy-player-combat-mechanics.patch index e5da736..6222399 100644 --- a/patches/server/0064-Legacy-player-combat-mechanics.patch +++ b/patches/server/0064-Legacy-player-combat-mechanics.patch @@ -145,10 +145,10 @@ index 0000000000000000000000000000000000000000..b4ab8f172d713204bb9c1ebf575dcc28 + private LegacyDamageMapping() {} +} diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index dc57d8d4448f60478693b6c3e81ae11074d4f22b..365ab6a0c564911bc58d3fb90e3abe82dbbdc642 100644 +index 1bd9f31da1ec66259dc6391448e2b8ce69ddb817..16e6bd46e54cba9e0ef39a488cefcc5e49476403 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -310,6 +310,43 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -308,6 +308,43 @@ public abstract class LivingEntity extends Entity implements Attackable { ++this.noActionTime; // Above all the floats } // Spigot end @@ -192,7 +192,7 @@ index dc57d8d4448f60478693b6c3e81ae11074d4f22b..365ab6a0c564911bc58d3fb90e3abe82 protected LivingEntity(EntityType type, Level world) { super(type, world); -@@ -2291,7 +2328,16 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2302,7 +2339,16 @@ public abstract class LivingEntity extends Entity implements Attackable { protected float getDamageAfterArmorAbsorb(DamageSource source, float amount) { if (!source.is(DamageTypeTags.BYPASSES_ARMOR)) { // this.hurtArmor(damagesource, f); // CraftBukkit - actuallyHurt(DamageSource, float, EntityDamageEvent) for handle damage @@ -209,7 +209,7 @@ index dc57d8d4448f60478693b6c3e81ae11074d4f22b..365ab6a0c564911bc58d3fb90e3abe82 } return amount; -@@ -3481,6 +3527,11 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3492,6 +3538,11 @@ public abstract class LivingEntity extends Entity implements Attackable { EnchantmentHelper.runLocationChangedEffects(worldserver, itemstack, this, enumitemslot1); } @@ -222,10 +222,10 @@ index dc57d8d4448f60478693b6c3e81ae11074d4f22b..365ab6a0c564911bc58d3fb90e3abe82 } } 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 16f6834b88bf0b2f2157e25240e6bc51db501dce..8c8cf4b640439ca10bc030fa3194f3ff61d10e6b 100644 +index f14759c18f760165dfad670049c880c01adb96d4..c6e728aec98c1abb55abc7bb31ae3604bd187374 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1240,14 +1240,20 @@ public abstract class Player extends LivingEntity { +@@ -1243,14 +1243,20 @@ public abstract class Player extends LivingEntity { if (playerAttackEntityEvent.callEvent() && willAttack) { // Logic moved to willAttack local variable. { // Paper end - PlayerAttackEntityEvent @@ -247,7 +247,7 @@ index 16f6834b88bf0b2f2157e25240e6bc51db501dce..8c8cf4b640439ca10bc030fa3194f3ff // this.resetAttackStrengthTicker(); // CraftBukkit - Moved to EntityLiving to reset the cooldown after the damage is dealt if (target.getType().is(EntityTypeTags.REDIRECTABLE_PROJECTILE) && target instanceof Projectile) { Projectile iprojectile = (Projectile) target; -@@ -1275,7 +1281,7 @@ public abstract class Player extends LivingEntity { +@@ -1278,7 +1284,7 @@ public abstract class Player extends LivingEntity { } f += itemstack.getItem().getAttackDamageBonus(target, f, damagesource); diff --git a/patches/server/0065-Allow-disabling-sweep-attacks.patch b/patches/server/0065-Allow-disabling-sweep-attacks.patch index cdcdc7b..eac44ef 100644 --- a/patches/server/0065-Allow-disabling-sweep-attacks.patch +++ b/patches/server/0065-Allow-disabling-sweep-attacks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow disabling sweep attacks 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 8c8cf4b640439ca10bc030fa3194f3ff61d10e6b..a99903df673f7cde190a880b681d44be0b747c90 100644 +index c6e728aec98c1abb55abc7bb31ae3604bd187374..23c66dc1bba4f4242c848121f70879bb94f0fb4b 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1348,7 +1348,7 @@ public abstract class Player extends LivingEntity { +@@ -1351,7 +1351,7 @@ public abstract class Player extends LivingEntity { LivingEntity entityliving2; diff --git a/patches/server/0066-Change-shields-to-reduce-damage.patch b/patches/server/0066-Change-shields-to-reduce-damage.patch index bb6dd46..f397be3 100644 --- a/patches/server/0066-Change-shields-to-reduce-damage.patch +++ b/patches/server/0066-Change-shields-to-reduce-damage.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Change shields to reduce damage diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 365ab6a0c564911bc58d3fb90e3abe82dbbdc642..8992f0ad55c1177bee9d4167cedf2fef54117a6a 100644 +index 16e6bd46e54cba9e0ef39a488cefcc5e49476403..8dab67d53a058b62d73e009e378d6376dae70075 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2433,7 +2433,13 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2444,7 +2444,13 @@ public abstract class LivingEntity extends Entity implements Attackable { com.google.common.base.Function blocking = new com.google.common.base.Function() { @Override public Double apply(Double f) { diff --git a/patches/server/0067-Old-enchanted-golden-apples.patch b/patches/server/0067-Old-enchanted-golden-apples.patch index 80d3bfa..f6878a8 100644 --- a/patches/server/0067-Old-enchanted-golden-apples.patch +++ b/patches/server/0067-Old-enchanted-golden-apples.patch @@ -75,10 +75,10 @@ index 0000000000000000000000000000000000000000..18cb28a9bdfcb9a421bc001f057b4be5 + } +} diff --git a/src/main/java/net/minecraft/world/item/Items.java b/src/main/java/net/minecraft/world/item/Items.java -index 5a70111cd39af50981cfd440c021340da1de5eab..92a3ae94e936809004c9664c18dae74edf154399 100644 +index 6d16b4433e79eca0ff8008941f0b9b807b1db9db..5aeb780535d6ab8010e544cade33fa2b20f9068c 100644 --- a/src/main/java/net/minecraft/world/item/Items.java +++ b/src/main/java/net/minecraft/world/item/Items.java -@@ -1174,6 +1174,7 @@ public class Items { +@@ -1183,6 +1183,7 @@ public class Items { public static final Item GOLDEN_APPLE = registerItem("golden_apple", new Item.Properties().food(Foods.GOLDEN_APPLE, Consumables.GOLDEN_APPLE)); public static final Item ENCHANTED_GOLDEN_APPLE = registerItem( "enchanted_golden_apple", diff --git a/patches/server/0070-Old-combat-sounds-and-particle-effects.patch b/patches/server/0070-Old-combat-sounds-and-particle-effects.patch index 700e9a7..e7914b5 100644 --- a/patches/server/0070-Old-combat-sounds-and-particle-effects.patch +++ b/patches/server/0070-Old-combat-sounds-and-particle-effects.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Old combat sounds and particle effects 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 a99903df673f7cde190a880b681d44be0b747c90..97e078989ccbb25d5a82c2dd7d034079ce4b9acf 100644 +index 23c66dc1bba4f4242c848121f70879bb94f0fb4b..e0cb3a9d0cd27a98e302816bc736db291a32cf4f 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1458,7 +1458,7 @@ public abstract class Player extends LivingEntity { +@@ -1461,7 +1461,7 @@ public abstract class Player extends LivingEntity { float f8 = f4 - ((LivingEntity) target).getHealth(); this.awardStat(Stats.DAMAGE_DEALT, Math.round(f8 * 10.0F)); @@ -17,7 +17,7 @@ index a99903df673f7cde190a880b681d44be0b747c90..97e078989ccbb25d5a82c2dd7d034079 int i = (int) ((double) f8 * 0.5D); ((ServerLevel) this.level()).sendParticles(ParticleTypes.DAMAGE_INDICATOR, target.getX(), target.getY(0.5D), target.getZ(), i, 0.1D, 0.0D, 0.1D, 0.2D); -@@ -1866,6 +1866,7 @@ public abstract class Player extends LivingEntity { +@@ -1869,6 +1869,7 @@ public abstract class Player extends LivingEntity { } // Paper start - send while respecting visibility private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) { diff --git a/patches/server/0072-Entity-tracking-range-modifier.patch b/patches/server/0072-Entity-tracking-range-modifier.patch index 1171ef5..28b244c 100644 --- a/patches/server/0072-Entity-tracking-range-modifier.patch +++ b/patches/server/0072-Entity-tracking-range-modifier.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity tracking range modifier diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 54bfe3dfda0e023cc3d25ddcf1fe366a6cf50c90..0b9783c473585aed6a63f870e66a1809d00c0aee 100644 +index 274b3a5e1d4606ed47ba7e3e4ee369d607cea8a1..49f8afdaa91e89b899b9fcce1ef9a972ec141b8b 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1326,7 +1326,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -21,10 +21,10 @@ index 54bfe3dfda0e023cc3d25ddcf1fe366a6cf50c90..0b9783c473585aed6a63f870e66a1809 double d2 = d0 * d0; // Paper start - Configurable entity tracking range by Y diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ac8308be5b200237aa61a21404e558f245356546..c9c39cbdf7e0ff715630fc98712db0f202362eb5 100644 +index 5266e37ade8851a8b73a4ae12ecd67a8d0c6e09d..c572b1ab6f3763738747560296a604d65d05c12c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -360,6 +360,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple +@@ -358,6 +358,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple } // Paper end - rewrite chunk system public final me.samsuik.sakura.player.visibility.PlayerVisibilitySettings visibilitySettings = new me.samsuik.sakura.player.visibility.PlayerVisibilitySettings(); // Sakura - client visibility settings @@ -33,10 +33,10 @@ index ac8308be5b200237aa61a21404e558f245356546..c9c39cbdf7e0ff715630fc98712db0f2 public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) { super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ab38f0913b7adf3593c5d0b5a65441afefeeffbc..de2c9dcaf3b481ef4762598a7df0968a67d2d41a 100644 +index d00fcfd5219a532204533f159d68524b2d33ccc7..4d0027a08d11fc838aee3cb318b6ea9182b4183c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3039,6 +3039,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3024,6 +3024,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return (this.getHandle().requestedViewDistance() == 0) ? Bukkit.getViewDistance() : this.getHandle().requestedViewDistance(); } diff --git a/patches/server/0073-Set-entity-impulse-on-explosion.patch b/patches/server/0073-Set-entity-impulse-on-explosion.patch index 7251b51..ec46c0e 100644 --- a/patches/server/0073-Set-entity-impulse-on-explosion.patch +++ b/patches/server/0073-Set-entity-impulse-on-explosion.patch @@ -17,14 +17,20 @@ index c916d3037bd5920ec06213a9162223a124428d6b..fd98f36ca2fd7e0b5961fd89aa976dbf } } diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java -index a9a63fa9d2c45298ebd4146e0dfeea54b6431797..f4ab7d377171bf5b9ead7ffd0e6151884bcd2968 100644 +index 8ddcbb5f5ea867d3bce207ba25f93a940f78a93b..06cbe3ac6adf0d91a185e365a056b29ee54380e6 100644 --- a/src/main/java/net/minecraft/world/level/ServerExplosion.java +++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java -@@ -748,6 +748,7 @@ public class ServerExplosion implements Explosion { +@@ -748,7 +748,12 @@ public class ServerExplosion implements Explosion { // Paper end - knockback events } // CraftBukkit end -+ entity.hasImpulse = true; // Sakura - set entity impulse on explosion - entity.setDeltaMovement(entity.getDeltaMovement().add(vec3d)); +- entity.push(vec3d); ++ // Sakura start - set entity impulse on explosion ++ // Wait for upstream to change the push method to be more sane. ++ // entity.push(vec3d); ++ entity.hasImpulse = true; ++ entity.setDeltaMovement(entity.getDeltaMovement().add(vec3d)); ++ // Sakura end - set entity impulse on explosion if (entity instanceof Player) { Player entityhuman = (Player) entity; + diff --git a/patches/server/0074-Configurable-left-shooting-and-adjusting-limits.patch b/patches/server/0074-Configurable-left-shooting-and-adjusting-limits.patch index 3e68302..13686cf 100644 --- a/patches/server/0074-Configurable-left-shooting-and-adjusting-limits.patch +++ b/patches/server/0074-Configurable-left-shooting-and-adjusting-limits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable left shooting and adjusting limits diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a48d871f851c9cafdb05fef3e33ec1de81b7d0bd..dcf2c3f9236a96618608887b269164b23127d6ff 100644 +index a2b0fe7122c11da561ab6ceb91bc37385df16c0d..95f4854ca21a6b34ad1ab95a1cb38f7d2dfd24c3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -651,6 +651,46 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -55,7 +55,7 @@ index a48d871f851c9cafdb05fef3e33ec1de81b7d0bd..dcf2c3f9236a96618608887b269164b2 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -1729,6 +1769,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1742,6 +1782,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } if (xSmaller && z != 0.0) { @@ -63,7 +63,7 @@ index a48d871f851c9cafdb05fef3e33ec1de81b7d0bd..dcf2c3f9236a96618608887b269164b2 z = this.scanZ(currBoundingBox, z, voxelList, bbList); if (z != 0.0) { currBoundingBox = ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.offsetZ(currBoundingBox, z); -@@ -1736,6 +1777,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1749,6 +1790,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } if (x != 0.0) { @@ -76,7 +76,7 @@ index a48d871f851c9cafdb05fef3e33ec1de81b7d0bd..dcf2c3f9236a96618608887b269164b2 if (x != 0.0) { currBoundingBox = ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.offsetX(currBoundingBox, x); 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 2d9e42465d4a8adf2095d3d23b29df29af3df00d..20c67c47d90b5a41d6db783fda460636873638c4 100644 +index 6a3d0d407dc25715c1408818cd7aba1d962ed382..1a90e7bb8209e20c288afd8c78e681c1fab317cb 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -270,6 +270,7 @@ public class FallingBlockEntity extends Entity implements me.samsuik.sakura.enti diff --git a/patches/server/0075-Optimise-hopper-ticking.patch b/patches/server/0075-Optimise-hopper-ticking.patch index 0dd7075..97800e2 100644 --- a/patches/server/0075-Optimise-hopper-ticking.patch +++ b/patches/server/0075-Optimise-hopper-ticking.patch @@ -42,10 +42,10 @@ index 5db5ba026462ca642dcee718af732f80fadabef5..51e26395b53628b34b1f7f68935a9ba4 boolean isEmpty(); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b8d59ca87e908ce2bdd978007e3a97e297a10278..cdd56fedb0e0703e820fe807789e0fad78d4b409 100644 +index f99497c7b10716c1804d29e1e51e608c3a542127..290f3fc3c05892c4de8015fe38cec0c5e5d9fb61 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1648,7 +1648,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -1649,7 +1649,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl tilesThisCycle--; toRemove.add(tickingblockentity); // Paper - Fix MC-117075; use removeAll // Spigot end @@ -55,7 +55,7 @@ index b8d59ca87e908ce2bdd978007e3a97e297a10278..cdd56fedb0e0703e820fe807789e0fad // Paper start - rewrite chunk system if ((++tickedEntities & 7) == 0) { diff --git a/src/main/java/net/minecraft/world/level/block/HopperBlock.java b/src/main/java/net/minecraft/world/level/block/HopperBlock.java -index 005a2a66a6e8a492acfa7ba91117884cda08562d..00a2eeeedaadb9e7486e6b366bef6c15e48d23cd 100644 +index 8ba23af2fa6c5174aa3ec34e78f9c21ce786c4fc..45070d4506b79890f3cd806789a2fa7ab9d37d27 100644 --- a/src/main/java/net/minecraft/world/level/block/HopperBlock.java +++ b/src/main/java/net/minecraft/world/level/block/HopperBlock.java @@ -140,6 +140,12 @@ public class HopperBlock extends BaseEntityBlock { @@ -72,10 +72,10 @@ index 005a2a66a6e8a492acfa7ba91117884cda08562d..00a2eeeedaadb9e7486e6b366bef6c15 } } diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -index 1f929b467a0ece3143af58a657cf5983c07a8d51..dafdaf4d34af9c0a3d7915957c9de243d03b06f7 100644 +index 1f664c10138a6e19bdc0051fa80575516d5602e7..1d3b7bf7b06b340f15671db4b910ca8d830f268d 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -@@ -49,6 +49,55 @@ public abstract class BlockEntity { +@@ -48,6 +48,55 @@ public abstract class BlockEntity { private BlockState blockState; private DataComponentMap components; @@ -131,7 +131,7 @@ index 1f929b467a0ece3143af58a657cf5983c07a8d51..dafdaf4d34af9c0a3d7915957c9de243 public BlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { this.components = DataComponentMap.EMPTY; this.type = type; -@@ -227,12 +276,23 @@ public abstract class BlockEntity { +@@ -217,12 +266,23 @@ public abstract class BlockEntity { public void setChanged() { if (this.level != null) { if (ignoreTileUpdates) return; // Paper - Perf: Optimize Hoppers @@ -156,7 +156,7 @@ index 1f929b467a0ece3143af58a657cf5983c07a8d51..dafdaf4d34af9c0a3d7915957c9de243 world.blockEntityChanged(pos); if (!state.isAir()) { world.updateNeighbourForOutputSignal(pos, state.getBlock()); -@@ -263,6 +323,7 @@ public abstract class BlockEntity { +@@ -253,6 +313,7 @@ public abstract class BlockEntity { public void setRemoved() { this.remove = true; @@ -283,10 +283,10 @@ index 28e3b73507b988f7234cbf29c4024c88180d0aef..a0d247aa883553708c4b921582324255 + // Sakura end - optimise hopper ticking } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 4640baec5bed6c2d53cc0f8ca1d273cc115abe9b..aec495138c9724590be9bd5775189f0643b12a09 100644 +index 97937e3bd211997f0a0a3e9e671a1c59712d0003..ce92f8f2d2f96ec77ae7128b741689ec2b77aad9 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -1035,6 +1035,13 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p +@@ -1040,6 +1040,13 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p return this.ticker.getType(); } @@ -300,7 +300,7 @@ index 4640baec5bed6c2d53cc0f8ca1d273cc115abe9b..aec495138c9724590be9bd5775189f06 public String toString() { return String.valueOf(this.ticker) + " "; } -@@ -1107,6 +1114,13 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p +@@ -1112,6 +1119,13 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p return BlockEntityType.getKey(this.blockEntity.getType()).toString(); } diff --git a/patches/server/0076-Tick-entity-schedulers-only-when-necessary.patch b/patches/server/0076-Tick-entity-schedulers-only-when-necessary.patch index 71b84ae..e1fd928 100644 --- a/patches/server/0076-Tick-entity-schedulers-only-when-necessary.patch +++ b/patches/server/0076-Tick-entity-schedulers-only-when-necessary.patch @@ -83,10 +83,10 @@ index c03608fec96b51e1867f43d8f42e5aefb1520e46..32ac34e6ca4a7443e894369fee349911 return true; } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7da3a92b9c81cc903d10b50ea0efd0151626a8e5..49bcdf00bcbabb0d775fc0ce284a04d60a203c8e 100644 +index 56357e253247d19c108a7f753058fa3eba0302ee..c2c0cd8ae1afd90d9b08adec3cb127b13ce60331 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1823,7 +1823,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { diff --git a/patches/server/0077-Add-max-armour-durability-damage.patch b/patches/server/0077-Add-max-armour-durability-damage.patch index 93a0886..f36cd98 100644 --- a/patches/server/0077-Add-max-armour-durability-damage.patch +++ b/patches/server/0077-Add-max-armour-durability-damage.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add max armour durability damage diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8992f0ad55c1177bee9d4167cedf2fef54117a6a..8cb19ec587512d70a792235ba4e7d82b56074a77 100644 +index 8dab67d53a058b62d73e009e378d6376dae70075..a32c4dac9c2a25f52ca39c8dcf7d72acc7ad7f8f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2535,6 +2535,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2546,6 +2546,12 @@ public abstract class LivingEntity extends Entity implements Attackable { // Apply damage to armor if (!damagesource.is(DamageTypeTags.BYPASSES_ARMOR)) { float armorDamage = (float) (event.getDamage() + event.getDamage(DamageModifier.BLOCKING) + event.getDamage(DamageModifier.HARD_HAT)); diff --git a/patches/server/0079-Optimise-check-inside-blocks-and-traverse-blocks.patch b/patches/server/0079-Optimise-check-inside-blocks-and-traverse-blocks.patch index b6c2806..71bff07 100644 --- a/patches/server/0079-Optimise-check-inside-blocks-and-traverse-blocks.patch +++ b/patches/server/0079-Optimise-check-inside-blocks-and-traverse-blocks.patch @@ -71,10 +71,10 @@ index 0000000000000000000000000000000000000000..e00c07c614e007c007076e3dbe8bd8cc + } +} diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index dcf2c3f9236a96618608887b269164b23127d6ff..2c31c508409780334cd925368a1623192f8428a6 100644 +index 95f4854ca21a6b34ad1ab95a1cb38f7d2dfd24c3..7d35952cdf48150f43b103b765358b7760411c9d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2050,6 +2050,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2061,6 +2061,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } final Iterator iterator1 = positions.iterator(); // Sakura end - physics version api @@ -86,7 +86,7 @@ index dcf2c3f9236a96618608887b269164b23127d6ff..2c31c508409780334cd925368a162319 while (iterator1.hasNext()) { BlockPos blockposition = (BlockPos) iterator1.next(); -@@ -2058,7 +2063,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2069,7 +2074,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return; } @@ -108,7 +108,7 @@ index dcf2c3f9236a96618608887b269164b23127d6ff..2c31c508409780334cd925368a162319 if (!iblockdata.isAir() && longset.add(blockposition.asLong())) { try { diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java -index 93738c7dea1ea3d19013a47380391274612a719b..bbf79df2636ea96a288cd614e5b90968e5754937 100644 +index 62719778c62d6632a8eb6f2bc670956c15a247de..ecdb8769c1a388827bf5c4565c82f8e32672c5d7 100644 --- a/src/main/java/net/minecraft/world/level/BlockGetter.java +++ b/src/main/java/net/minecraft/world/level/BlockGetter.java @@ -215,11 +215,18 @@ public interface BlockGetter extends LevelHeightAccessor { @@ -131,9 +131,9 @@ index 93738c7dea1ea3d19013a47380391274612a719b..bbf79df2636ea96a288cd614e5b90968 + Iterable iterable = BlockPos.betweenClosed(boundingBox); + // Sakura end - optimise check inside blocks Set set = new ObjectLinkedOpenHashSet(); - Vec3 vec3d3 = vec3d2.normalize().scale(1.0E-7D); - Vec3 vec3d4 = boundingBox.getMinPosition().add(vec3d3); -@@ -238,6 +245,16 @@ public interface BlockGetter extends LevelHeightAccessor { + Vec3 vec3d3 = boundingBox.getMinPosition(); + Vec3 vec3d4 = vec3d3.subtract(vec3d2); +@@ -237,6 +244,16 @@ public interface BlockGetter extends LevelHeightAccessor { } }