mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-30 16:19:03 +01:00
b06cb423cb
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: b999860d SPIGOT-2304: Add LootGenerateEvent CraftBukkit Changes:77fd87e4
SPIGOT-2304: Implement LootGenerateEventa1a705ee
SPIGOT-5566: Doused campfires & fires should call EntityChangeBlockEvent41712edd
SPIGOT-5707: PersistentDataHolder not Persistent on API dropped Item
71 lines
No EOL
3.7 KiB
Diff
71 lines
No EOL
3.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Sudzzy <originmc@outlook.com>
|
|
Date: Wed, 2 Mar 2016 14:48:03 -0600
|
|
Subject: [PATCH] Disable explosion knockback
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
index f038d3f7dc..25e0717186 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
|
optimizeExplosions = getBoolean("optimize-explosions", false);
|
|
log("Optimize explosions: " + optimizeExplosions);
|
|
}
|
|
+
|
|
+ public boolean disableExplosionKnockback;
|
|
+ private void disableExplosionKnockback(){
|
|
+ disableExplosionKnockback = getBoolean("disable-explosion-knockback", false);
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
|
index 690c1ce0f6..d4d60220ef 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
|
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
|
|
}
|
|
}
|
|
|
|
+ boolean knockbackCancelled = world.paperConfig.disableExplosionKnockback && damagesource.isExplosion() && this instanceof EntityHuman; // Paper - Disable explosion knockback
|
|
if (flag1) {
|
|
if (flag) {
|
|
this.world.broadcastEntityEffect(this, (byte) 29);
|
|
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
|
|
b0 = 2;
|
|
}
|
|
|
|
+ if (!knockbackCancelled) // Paper - Disable explosion knockback
|
|
this.world.broadcastEntityEffect(this, b0);
|
|
}
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
|
|
}
|
|
}
|
|
|
|
+ if (knockbackCancelled) this.world.broadcastEntityEffect(this, (byte) 2); // Paper - Disable explosion knockback
|
|
+
|
|
if (this.getHealth() <= 0.0F) {
|
|
if (!this.f(damagesource)) {
|
|
SoundEffect soundeffect = this.getSoundDeath();
|
|
diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java
|
|
index 5583860f15..d99d2defe9 100644
|
|
--- a/src/main/java/net/minecraft/server/Explosion.java
|
|
+++ b/src/main/java/net/minecraft/server/Explosion.java
|
|
@@ -0,0 +0,0 @@ public class Explosion {
|
|
double d14 = d13;
|
|
|
|
if (entity instanceof EntityLiving) {
|
|
- d14 = EnchantmentProtection.a((EntityLiving) entity, d13);
|
|
+ d14 = entity instanceof EntityHuman && world.paperConfig.disableExplosionKnockback ? 0 : EnchantmentProtection.a((EntityLiving) entity, d13); // Paper - Disable explosion knockback
|
|
}
|
|
|
|
entity.setMot(entity.getMot().add(d8 * d14, d9 * d14, d10 * d14));
|
|
if (entity instanceof EntityHuman) {
|
|
EntityHuman entityhuman = (EntityHuman) entity;
|
|
|
|
- if (!entityhuman.isSpectator() && (!entityhuman.isCreative() || !entityhuman.abilities.isFlying)) {
|
|
+ if (!entityhuman.isSpectator() && (!entityhuman.isCreative() && !world.paperConfig.disableExplosionKnockback || !entityhuman.abilities.isFlying)) { // Paper - Disable explosion knockback
|
|
this.l.put(entityhuman, new Vec3D(d8 * d13, d9 * d13, d10 * d13));
|
|
}
|
|
}
|
|
--
|