mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-25 18:37:35 +01:00
72 lines
3.4 KiB
Diff
72 lines
3.4 KiB
Diff
|
From 8fa94297f64a5c59b5b323bb17b3272a24676438 Mon Sep 17 00:00:00 2001
|
||
|
From: Sudzzy <originmc@outlook.com>
|
||
|
Date: Tue, 14 Jul 2015 09:20:44 -0700
|
||
|
Subject: [PATCH] Disable explosion knockback
|
||
|
|
||
|
|
||
|
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||
|
index 8090a0c..b2484a7 100644
|
||
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||
|
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||
|
@@ -778,7 +778,10 @@ public abstract class EntityLiving extends Entity {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
- if (flag) {
|
||
|
+ // PaperSpigot start - Disable explosion knockback
|
||
|
+ boolean knockbackCancelled = false;
|
||
|
+ if (flag && !(knockbackCancelled = world.paperSpigotConfig.disableExplosionKnockback && damagesource.isExplosion() && this instanceof EntityHuman)) {
|
||
|
+ // PaperSpigot end
|
||
|
this.world.broadcastEntityEffect(this, (byte) 2);
|
||
|
if (damagesource != DamageSource.DROWN) {
|
||
|
this.ac();
|
||
|
@@ -800,6 +803,8 @@ public abstract class EntityLiving extends Entity {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+ if (knockbackCancelled) this.world.broadcastEntityEffect(this, (byte) 2); // PaperSpigot
|
||
|
+
|
||
|
String s;
|
||
|
|
||
|
if (this.getHealth() <= 0.0F) {
|
||
|
diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java
|
||
|
index 4afb8d7..f23245e 100644
|
||
|
--- a/src/main/java/net/minecraft/server/Explosion.java
|
||
|
+++ b/src/main/java/net/minecraft/server/Explosion.java
|
||
|
@@ -140,7 +140,7 @@ public class Explosion {
|
||
|
continue;
|
||
|
}
|
||
|
// CraftBukkit end
|
||
|
- double d14 = EnchantmentProtection.a(entity, d13);
|
||
|
+ double d14 = entity instanceof EntityHuman && world.paperSpigotConfig.disableExplosionKnockback ? 0 : EnchantmentProtection.a(entity, d13); // PaperSpigot
|
||
|
|
||
|
// PaperSpigot start - Fix cannons
|
||
|
/*
|
||
|
@@ -152,7 +152,7 @@ public class Explosion {
|
||
|
entity.g(d8 * d14, d9 * d14, d10 * d14);
|
||
|
// PaperSpigot end
|
||
|
|
||
|
- if (entity instanceof EntityHuman && !((EntityHuman) entity).abilities.isInvulnerable) {
|
||
|
+ if (entity instanceof EntityHuman && !((EntityHuman) entity).abilities.isInvulnerable && !world.paperSpigotConfig.disableExplosionKnockback) { // PaperSpigot
|
||
|
this.k.put((EntityHuman) entity, new Vec3D(d8 * d13, d9 * d13, d10 * d13));
|
||
|
}
|
||
|
}
|
||
|
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||
|
index 20cf3ce..178f251 100644
|
||
|
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||
|
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||
|
@@ -360,4 +360,10 @@ public class PaperSpigotWorldConfig
|
||
|
lavaFlowSpeedNormal = getInt( "lava-flow-speed.normal", 30 );
|
||
|
lavaFlowSpeedNether = getInt( "lava-flow-speed.nether", 10 );
|
||
|
}
|
||
|
+
|
||
|
+ public boolean disableExplosionKnockback;
|
||
|
+ private void disableExplosionKnockback()
|
||
|
+ {
|
||
|
+ disableExplosionKnockback = getBoolean( "disable-explosion-knockback", false );
|
||
|
+ }
|
||
|
}
|
||
|
--
|
||
|
1.9.5.msysgit.1
|
||
|
|