diff --git a/patches/server/0016-Add-utility-methods-to-EntitySlices.patch b/patches/server/0016-Add-utility-methods-to-EntitySlices.patch index e9453a1..185fd96 100644 --- a/patches/server/0016-Add-utility-methods-to-EntitySlices.patch +++ b/patches/server/0016-Add-utility-methods-to-EntitySlices.patch @@ -40,24 +40,3 @@ index 1d6b96fd6dae9524c31e71a778351e8b2d325b7f..ce231d8b230d4983b21c597357c0b223 public void getEntities(final Entity except, final AABB box, final List into, final Predicate predicate) { if (this.count == 0) { -diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 303c4a47b275e6c53a809c65482ad66734945622..45e6a37fc304d89cc7b152bcb3ff5ae0f2e3bde5 100644 ---- a/src/main/java/net/minecraft/world/level/Level.java -+++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -289,6 +289,16 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - - public final it.unimi.dsi.fastutil.longs.Long2IntMap minimalTNT = new it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap(); // Sakura - visibility api - -+ // Sakura start -+ public Entity[] getSectionEntities(int chunkX, int chunkY, int chunkZ) { -+ var slices = ((ServerLevel)this).getEntityLookup().getChunk(chunkX, chunkZ); -+ if (slices == null) { -+ return new Entity[0]; -+ } -+ return slices.getSectionEntities(chunkY); -+ } -+ // Sakura end -+ - protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, Supplier sakuraWorldConfigCreator, java.util.concurrent.Executor executor) { // Sakura // Paper - Async-Anti-Xray - Pass executor - this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot - this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper diff --git a/patches/server/0017-Store-Entity-Data-State.patch b/patches/server/0017-Store-Entity-Data-State.patch index 40d4c6f..efd2f8a 100644 --- a/patches/server/0017-Store-Entity-Data-State.patch +++ b/patches/server/0017-Store-Entity-Data-State.patch @@ -87,10 +87,10 @@ index 7e2a9c3b356e2ac46c1a0badb82c444def901045..1bd5db8e0919d126d18e250bb1cb35cb 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 45e6a37fc304d89cc7b152bcb3ff5ae0f2e3bde5..9bf8b4d67a5a2295ad994fd6fdb4df77c84c2486 100644 +index 303c4a47b275e6c53a809c65482ad66734945622..aacb2bb7218eb486f8a76ce586de00225683b4ca 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -949,6 +949,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -939,6 +939,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public void guardEntityTick(Consumer tickConsumer, T entity) { try { diff --git a/patches/server/0018-Merge-Cannon-Entities.patch b/patches/server/0018-Merge-Cannon-Entities.patch index a70968a..1f03d03 100644 --- a/patches/server/0018-Merge-Cannon-Entities.patch +++ b/patches/server/0018-Merge-Cannon-Entities.patch @@ -464,13 +464,13 @@ index 6097d495252c9c7ee54f7017ca2b39d42e5046fe..2bdd46350317a9fadf362b1a341993c9 this.explode(); } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 9bf8b4d67a5a2295ad994fd6fdb4df77c84c2486..86e8bcaee950d233b062b906bc9fc12d7708e125 100644 +index aacb2bb7218eb486f8a76ce586de00225683b4ca..d1ca193575f531f0cb12e056bfda75b86c3940bb 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -298,6 +298,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - return slices.getSectionEntities(chunkY); - } - // Sakura end +@@ -288,6 +288,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + public abstract ResourceKey getTypeKey(); + + public final it.unimi.dsi.fastutil.longs.Long2IntMap minimalTNT = new it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap(); // Sakura - visibility api + public final me.samsuik.sakura.entity.merge.MergeHistory mergeHistory = new me.samsuik.sakura.entity.merge.MergeHistory(); // Sakura protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, Supplier sakuraWorldConfigCreator, java.util.concurrent.Executor executor) { // Sakura // Paper - Async-Anti-Xray - Pass executor diff --git a/patches/server/0019-Optimised-Explosions.patch b/patches/server/0019-Optimised-Explosions.patch index fe5015a..d9445a5 100644 --- a/patches/server/0019-Optimised-Explosions.patch +++ b/patches/server/0019-Optimised-Explosions.patch @@ -961,18 +961,18 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..88fccb17260c203111147a2a458d8185 return blockDensity; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 86e8bcaee950d233b062b906bc9fc12d7708e125..378197b05a074fc69ac2508d02acdc788242b49c 100644 +index d1ca193575f531f0cb12e056bfda75b86c3940bb..c62793c50e95e2e9588e20a59a1d8fb70ddf7760 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -299,6 +299,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - } - // Sakura end +@@ -289,6 +289,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + + public final it.unimi.dsi.fastutil.longs.Long2IntMap minimalTNT = new it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap(); // Sakura - visibility api public final me.samsuik.sakura.entity.merge.MergeHistory mergeHistory = new me.samsuik.sakura.entity.merge.MergeHistory(); // Sakura + public final me.samsuik.sakura.explosion.DensityCache densityCache = new me.samsuik.sakura.explosion.DensityCache(); // Sakura protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, Supplier sakuraWorldConfigCreator, java.util.concurrent.Executor executor) { // Sakura // Paper - Async-Anti-Xray - Pass executor this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot -@@ -1020,7 +1021,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1010,7 +1011,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } Explosion.BlockInteraction explosion_effect1 = explosion_effect; diff --git a/patches/server/0021-Limited-Get-Entities.patch b/patches/server/0021-Limited-Get-Entities.patch index f6f126d..d9a3a97 100644 --- a/patches/server/0021-Limited-Get-Entities.patch +++ b/patches/server/0021-Limited-Get-Entities.patch @@ -329,10 +329,10 @@ index ce231d8b230d4983b21c597357c0b22377e4bcca..91b0e10a60173b428612e2515fdcfd62 if (this.count == 0) { return; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 378197b05a074fc69ac2508d02acdc788242b49c..ae3dac2e1e1508c65b7464f64e74e470a42d668e 100644 +index c62793c50e95e2e9588e20a59a1d8fb70ddf7760..87b7254406166f4b98bd2e2ca1e57b53d789867c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -301,6 +301,39 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -291,6 +291,39 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public final me.samsuik.sakura.entity.merge.MergeHistory mergeHistory = new me.samsuik.sakura.entity.merge.MergeHistory(); // Sakura public final me.samsuik.sakura.explosion.DensityCache densityCache = new me.samsuik.sakura.explosion.DensityCache(); // Sakura diff --git a/patches/server/0029-Explosion-Durable-Blocks.patch b/patches/server/0029-Explosion-Durable-Blocks.patch index 7a99229..fafd53e 100644 --- a/patches/server/0029-Explosion-Durable-Blocks.patch +++ b/patches/server/0029-Explosion-Durable-Blocks.patch @@ -124,7 +124,7 @@ index a8008c7550488be34b51f4280f5569170b1ebd1d..2e5c4d610d648ec8608ff0e5bbe0f3b2 @Override public String getDescriptionId() { diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 4487045d031948e01c37ec91a5114fc1e8909cf2..97ebbb51773d7da046687ec00d16b3e4a8d569d5 100644 +index 88fccb17260c203111147a2a458d81855cf12152..2fdfd6bbe87d3c93efd368307447f0577b714fa8 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -287,6 +287,16 @@ public class Explosion { @@ -162,11 +162,11 @@ index 4487045d031948e01c37ec91a5114fc1e8909cf2..97ebbb51773d7da046687ec00d16b3e4 Entity sourceEntity = this.source == null ? null : this.source; BlockPos sourceBlock = sourceEntity == null ? BlockPos.containing(this.x, this.y, this.z) : null; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index ae3dac2e1e1508c65b7464f64e74e470a42d668e..dc5b4d9e98ed8feb55b0714270518b4d5beaa7e3 100644 +index 87b7254406166f4b98bd2e2ca1e57b53d789867c..1bcd2400e4a1319e844592c9f313f4e396e4d97e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -300,6 +300,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - // Sakura end +@@ -290,6 +290,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + public final it.unimi.dsi.fastutil.longs.Long2IntMap minimalTNT = new it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap(); // Sakura - visibility api public final me.samsuik.sakura.entity.merge.MergeHistory mergeHistory = new me.samsuik.sakura.entity.merge.MergeHistory(); // Sakura public final me.samsuik.sakura.explosion.DensityCache densityCache = new me.samsuik.sakura.explosion.DensityCache(); // Sakura + public final me.samsuik.sakura.explosion.durable.DurableBlockManager durabilityManager = new me.samsuik.sakura.explosion.durable.DurableBlockManager(); // Sakura diff --git a/patches/server/0031-Cache-Vanillia-and-Eigen-Redstone.patch b/patches/server/0031-Cache-Vanillia-and-Eigen-Redstone.patch index 4e01aa6..306f8fa 100644 --- a/patches/server/0031-Cache-Vanillia-and-Eigen-Redstone.patch +++ b/patches/server/0031-Cache-Vanillia-and-Eigen-Redstone.patch @@ -353,10 +353,10 @@ index cd095a5a921d1c1dd7cbc2adc2f3111801d23a5c..20ef1c7c94e4159bc1d177b2aaa9c773 this.isIteratingOverLevels = false; // Paper diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index dc5b4d9e98ed8feb55b0714270518b4d5beaa7e3..4aad7fd1abafef27dd27062c988154a8de0069c2 100644 +index 1bcd2400e4a1319e844592c9f313f4e396e4d97e..890ef46187e555a49f216620a55dc6ac40f6530f 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -301,6 +301,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -291,6 +291,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public final me.samsuik.sakura.entity.merge.MergeHistory mergeHistory = new me.samsuik.sakura.entity.merge.MergeHistory(); // Sakura public final me.samsuik.sakura.explosion.DensityCache densityCache = new me.samsuik.sakura.explosion.DensityCache(); // Sakura public final me.samsuik.sakura.explosion.durable.DurableBlockManager durabilityManager = new me.samsuik.sakura.explosion.durable.DurableBlockManager(); // Sakura @@ -364,7 +364,7 @@ index dc5b4d9e98ed8feb55b0714270518b4d5beaa7e3..4aad7fd1abafef27dd27062c988154a8 // Sakura start - limited get entities public void getLimitedEntities(Entity except, AABB box, Predicate predicate, List into, int limit, int search) { -@@ -636,6 +637,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -626,6 +627,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.getProfiler().pop(); } diff --git a/patches/server/0039-Configure-cannon-physics-by-version.patch b/patches/server/0039-Configure-cannon-physics-by-version.patch index 110bbbe..9c816f2 100644 --- a/patches/server/0039-Configure-cannon-physics-by-version.patch +++ b/patches/server/0039-Configure-cannon-physics-by-version.patch @@ -86,7 +86,7 @@ index 93c7be878632296683a794235455013c33bec9e7..c201c7e558205e3ca27db9b1f1486125 x /= distance; y /= distance; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f56aa48748612dbe2dc964efcd5cba04ef1b7bb1..28e568f3333cf1000a9bd2a39b89a569695e4238 100644 +index 0c9324423b8caefcc8c6fa9b7c27c819ba24f208..e2fdb43a69944819152363f91f6fabee0443dbf6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -363,7 +363,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -515,10 +515,10 @@ index 5455f99e88672c2163502616f9e820af46657062..e0ea2117efa3bb87e398b970a168840c d8 /= d11; d9 /= d11; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 4aad7fd1abafef27dd27062c988154a8de0069c2..da90ed4be7a5ca14576f8de93a17bdba5a6b5457 100644 +index 890ef46187e555a49f216620a55dc6ac40f6530f..0ecbccd8a6e2d50f0ad61b6e86300009f122e737 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -335,6 +335,205 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -325,6 +325,205 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return this.getLimitedEntities(except, box, net.minecraft.world.entity.EntitySelector.NO_SPECTATORS, limit, search); } // Sakura end