From 6483a9bb1d12257abece6015d8be32897eb00f9e Mon Sep 17 00:00:00 2001 From: MC_XiaoHei Date: Fri, 4 Jul 2025 09:12:37 +0800 Subject: [PATCH] feat: old projectile explosion behavior(#516) --- ...35-Old-projectile-explosion-behavior.patch | 19 +++++++++++++++++++ .../org/leavesmc/leaves/LeavesConfig.java | 3 +++ 2 files changed, 22 insertions(+) create mode 100644 leaves-server/minecraft-patches/features/0135-Old-projectile-explosion-behavior.patch diff --git a/leaves-server/minecraft-patches/features/0135-Old-projectile-explosion-behavior.patch b/leaves-server/minecraft-patches/features/0135-Old-projectile-explosion-behavior.patch new file mode 100644 index 00000000..37ed415b --- /dev/null +++ b/leaves-server/minecraft-patches/features/0135-Old-projectile-explosion-behavior.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: MC_XiaoHei +Date: Fri, 4 Jul 2025 09:11:46 +0800 +Subject: [PATCH] Old projectile explosion behavior + + +diff --git a/net/minecraft/world/level/ServerExplosion.java b/net/minecraft/world/level/ServerExplosion.java +index 87635f6db2f1e77edc7ba6a26e9818d070a9faf7..b4a63faf11d4bf153d079aba5cfea7ed022891f7 100644 +--- a/net/minecraft/world/level/ServerExplosion.java ++++ b/net/minecraft/world/level/ServerExplosion.java +@@ -551,7 +551,7 @@ public class ServerExplosion implements Explosion { + // Paper end - knockback events + } + // CraftBukkit end +- entity.push(vec3); ++ if (org.leavesmc.leaves.LeavesConfig.modify.oldMC.oldProjectileExplosionBehavior) entity.setDeltaMovement(entity.getDeltaMovement().add(vec3)); else entity.push(vec3); // Leaves - old projectile explosion behavior + if (entity instanceof Player player && !player.isSpectator() && (!player.isCreative() || !player.getAbilities().flying) && !level.paperConfig().environment.disableExplosionKnockback) { // Paper - Option to disable explosion knockback + this.hitPlayers.put(player, vec3); + } diff --git a/leaves-server/src/main/java/org/leavesmc/leaves/LeavesConfig.java b/leaves-server/src/main/java/org/leavesmc/leaves/LeavesConfig.java index 2e30c03d..448f76a7 100644 --- a/leaves-server/src/main/java/org/leavesmc/leaves/LeavesConfig.java +++ b/leaves-server/src/main/java/org/leavesmc/leaves/LeavesConfig.java @@ -355,6 +355,9 @@ public final class LeavesConfig { @GlobalConfig("tnt-wet-explosion-no-item-damage") public boolean tntWetExplosionNoItemDamage = false; + + @GlobalConfig("old-projectile-explosion-behavior") + public boolean oldProjectileExplosionBehavior = false; } public ElytraAeronauticsConfig elytraAeronautics = new ElytraAeronauticsConfig();