diff --git a/patches/server/0005-Visibility-API-and-Command.patch b/patches/server/0005-Visibility-API-and-Command.patch index afd5480..7fe9600 100644 --- a/patches/server/0005-Visibility-API-and-Command.patch +++ b/patches/server/0005-Visibility-API-and-Command.patch @@ -559,22 +559,6 @@ index de87483600e55d88176fe25db621bbd3e464729f..5bd189fad703ac99d57258fa448dbcc1 } public PrimedTnt(Level world, double x, double y, double z, @Nullable LivingEntity igniter) { -diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java -index bbbd451ff184be8fa13bd93d53c89a9502f9951a..7280806cd37a1aed53e304de0a03d68c18b86b09 100644 ---- a/src/main/java/net/minecraft/world/level/ServerExplosion.java -+++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java -@@ -559,7 +559,10 @@ public class ServerExplosion implements Explosion { - Player entityhuman = (Player) entity; - - if (!entityhuman.isSpectator() && (!entityhuman.isCreative() || !entityhuman.getAbilities().flying) && !level.paperConfig().environment.disableExplosionKnockback) { // Paper - Option to disable explosion knockback -- this.hitPlayers.put(entityhuman, vec3d); -+ // Sakura start - specialised explosions; tally player velocity -+ final Vec3 explosionImpact = vec3d; -+ this.hitPlayers.compute(entityhuman, (p, v) -> v != null ? v.add(explosionImpact) : explosionImpact); -+ // Sakura end - specialised explosions; tally player velocity - } - } - diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 2c7ec674f55b3178b9dcba7f2bc1ff5efccb50ea..7976eb7496d57d5d1fe29c902e167d79a86bac32 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/patches/server/0017-Replace-explosion-density-cache.patch b/patches/server/0017-Replace-explosion-density-cache.patch index a394f1a..0ec30cb 100644 --- a/patches/server/0017-Replace-explosion-density-cache.patch +++ b/patches/server/0017-Replace-explosion-density-cache.patch @@ -150,7 +150,7 @@ index d036cdcc17b8429c986946a020cb34cd6ced322e..b45ad0125cd5c116126e8ffb89358597 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 a7f64335001c7beb7f4474c9cda3c6988725f69a..c4d167ea4390c6605c99d5868d778e0b3f01f97c 100644 +index a92be80081178cc302a7f0b646bad7daa28f7c66..10432b31acd047ac2aa8581f2ee863254ec8d1eb 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 { @@ -185,7 +185,7 @@ index a7f64335001c7beb7f4474c9cda3c6988725f69a..c4d167ea4390c6605c99d5868d778e0b ++i; } -@@ -694,6 +708,12 @@ public class ServerExplosion implements Explosion { +@@ -691,6 +705,12 @@ public class ServerExplosion implements Explosion { return; } // CraftBukkit end @@ -198,7 +198,7 @@ index a7f64335001c7beb7f4474c9cda3c6988725f69a..c4d167ea4390c6605c99d5868d778e0b Iterator iterator = positions.iterator(); while (iterator.hasNext()) { -@@ -867,14 +887,12 @@ public class ServerExplosion implements Explosion { +@@ -864,14 +884,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 e4e5e99..642d702 100644 --- a/patches/server/0019-Specialised-Explosions.patch +++ b/patches/server/0019-Specialised-Explosions.patch @@ -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 37c32860af0efab2e272ee1ca6e67d6b9b885cbf..59e38ee6ac0699350a7021f1d074fdfee4a5ba41 100644 +index b07c2eb8cc3cc54e8ab72c5ed3d6d7623416e7fb..59e38ee6ac0699350a7021f1d074fdfee4a5ba41 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 { @@ -589,7 +589,19 @@ index 37c32860af0efab2e272ee1ca6e67d6b9b885cbf..59e38ee6ac0699350a7021f1d074fdfe // Paper start - collision optimisations final ObjectArrayList ret = new ObjectArrayList<>(); -@@ -685,7 +717,7 @@ public class ServerExplosion implements Explosion { +@@ -670,7 +702,10 @@ public class ServerExplosion implements Explosion { + Player entityhuman = (Player) entity; + + if (!entityhuman.isSpectator() && (!entityhuman.isCreative() || !entityhuman.getAbilities().flying) && !level.paperConfig().environment.disableExplosionKnockback) { // Paper - Option to disable explosion knockback +- this.hitPlayers.put(entityhuman, vec3d); ++ // Sakura start - specialised explosions; tally player velocity ++ final Vec3 explosionImpact = vec3d; ++ this.hitPlayers.compute(entityhuman, (p, v) -> v != null ? v.add(explosionImpact) : explosionImpact); ++ // Sakura end - specialised explosions; tally player velocity + } + } + +@@ -682,7 +717,7 @@ public class ServerExplosion implements Explosion { } @@ -598,7 +610,7 @@ index 37c32860af0efab2e272ee1ca6e67d6b9b885cbf..59e38ee6ac0699350a7021f1d074fdfe List list1 = new ArrayList(); Util.shuffle(positions, this.level.random); -@@ -790,14 +822,7 @@ public class ServerExplosion implements Explosion { +@@ -787,14 +822,7 @@ public class ServerExplosion implements Explosion { return; } // CraftBukkit end @@ -614,7 +626,7 @@ index 37c32860af0efab2e272ee1ca6e67d6b9b885cbf..59e38ee6ac0699350a7021f1d074fdfe this.level.gameEvent(this.source, (Holder) GameEvent.EXPLODE, this.center); List list = this.calculateExplodedPositions(); -@@ -813,13 +838,7 @@ public class ServerExplosion implements Explosion { +@@ -810,13 +838,7 @@ public class ServerExplosion implements Explosion { if (this.fire) { this.createFire(list); } @@ -629,7 +641,7 @@ index 37c32860af0efab2e272ee1ca6e67d6b9b885cbf..59e38ee6ac0699350a7021f1d074fdfe } -@@ -840,7 +859,7 @@ public class ServerExplosion implements Explosion { +@@ -837,7 +859,7 @@ public class ServerExplosion implements Explosion { } @@ -638,7 +650,7 @@ index 37c32860af0efab2e272ee1ca6e67d6b9b885cbf..59e38ee6ac0699350a7021f1d074fdfe return this.blockInteraction != Explosion.BlockInteraction.KEEP; } -@@ -907,7 +926,7 @@ public class ServerExplosion implements Explosion { +@@ -904,7 +926,7 @@ public class ServerExplosion implements Explosion { } // Paper start - Optimize explosions