Skip to content

Commit

Permalink
Cleanup disable explosion knockback patch (#9858)
Browse files Browse the repository at this point in the history
  • Loading branch information
LemonCaramel authored Oct 28, 2023
1 parent b1faa5d commit 52849f6
Show file tree
Hide file tree
Showing 35 changed files with 88 additions and 113 deletions.
25 changes: 0 additions & 25 deletions patches/server/0041-Disable-explosion-knockback.patch
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,6 @@ Date: Wed, 2 Mar 2016 14:48:03 -0600
Subject: [PATCH] Disable explosion knockback


diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index de73a18438462b478af813a7a709964506b41174..7fd5e2cb9139f53c0c08cf14760db311347f843d 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1476,10 +1476,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
}

+ boolean knockbackCancelled = this.level().paperConfig().environment.disableExplosionKnockback && source.is(DamageTypeTags.IS_EXPLOSION) && this instanceof net.minecraft.world.entity.player.Player; // Paper - Disable explosion knockback
if (flag1) {
if (flag) {
this.level().broadcastEntityEvent(this, (byte) 29);
} else {
+ if (!knockbackCancelled) // Paper - Disable explosion knockback
this.level().broadcastDamageEvent(this, source);
}

@@ -1503,6 +1505,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
}

+ if (knockbackCancelled) this.level().broadcastEntityEvent(this, (byte) 2); // Paper - Disable explosion knockback
if (this.isDeadOrDying()) {
if (!this.checkTotemDeathProtection(source)) {
SoundEvent soundeffect = this.getDeathSound();
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 03151b8042912882ebb969dda16cc378562a0005..aea135503da20b7c4e2c6cd2dba81998f101b0c4 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
Expand Down
8 changes: 4 additions & 4 deletions patches/server/0072-Custom-replacement-for-eaten-items.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ Subject: [PATCH] Custom replacement for eaten items


diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index f22055ef2b5ff7a98c9388b0324b8e3e4b5e1172..a2cc42373e4fe078197d90e2f16245fb75cd18bb 100644
index 0c049587bd99b66b5307cd37da72b1b01f201a86..b819c60cb7640c10594953597e3dde3007ff3be5 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3699,10 +3699,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3696,10 +3696,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.triggerItemUseEffects(this.useItem, 16);
// CraftBukkit start - fire PlayerItemConsumeEvent
ItemStack itemstack;
Expand All @@ -21,7 +21,7 @@ index f22055ef2b5ff7a98c9388b0324b8e3e4b5e1172..a2cc42373e4fe078197d90e2f16245fb
this.level().getCraftServer().getPluginManager().callEvent(event);

if (event.isCancelled()) {
@@ -3716,6 +3717,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3713,6 +3714,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
} else {
itemstack = this.useItem.finishUsingItem(this.level(), this);
}
Expand All @@ -34,7 +34,7 @@ index f22055ef2b5ff7a98c9388b0324b8e3e4b5e1172..a2cc42373e4fe078197d90e2f16245fb
// CraftBukkit end

if (itemstack != this.useItem) {
@@ -3723,6 +3730,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3720,6 +3727,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
}

this.stopUsingItem();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index a2cc42373e4fe078197d90e2f16245fb75cd18bb..dc5ff4fc1fb2472ff1e9b1f142b5d964e9d740ee 100644
index b819c60cb7640c10594953597e3dde3007ff3be5..3fe9b954bf2394986cf8b76f37e6e0780b3d5978 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3467,7 +3467,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3464,7 +3464,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
Vec3 vec3d = new Vec3(this.getX(), this.getEyeY(), this.getZ());
Vec3 vec3d1 = new Vec3(entity.getX(), entity.getEyeY(), entity.getZ());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Subject: [PATCH] handle NaN health/absorb values and repair bad data


diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index dc5ff4fc1fb2472ff1e9b1f142b5d964e9d740ee..82eee07363edd313c6f1f6243867d91185076382 100644
index 3fe9b954bf2394986cf8b76f37e6e0780b3d5978..08d7c37c1d9dcee4f1578600ac2cd6b584bf2d71 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -794,7 +794,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
Expand Down Expand Up @@ -34,7 +34,7 @@ index dc5ff4fc1fb2472ff1e9b1f142b5d964e9d740ee..82eee07363edd313c6f1f6243867d911
// CraftBukkit start - Handle scaled health
if (this instanceof ServerPlayer) {
org.bukkit.craftbukkit.entity.CraftPlayer player = ((ServerPlayer) this).getBukkitEntity();
@@ -3532,7 +3542,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3529,7 +3539,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}

public final void setAbsorptionAmount(float absorptionAmount) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/ma
index c178a564156562d1dd2c0a30eec3040cb8b4c2d1..3d99e7ea6109261dc5d8de610791ec08dde180b4 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1792,7 +1792,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1789,7 +1789,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
protected void dropExperience() {
// CraftBukkit start - Update getExpReward() above if the removed if() changes!
if (true && !(this instanceof net.minecraft.world.entity.boss.enderdragon.EnderDragon)) { // CraftBukkit - SPIGOT-2420: Special case ender dragon will drop the xp over time
Expand Down
4 changes: 2 additions & 2 deletions patches/server/0128-Cap-Entity-Collisions.patch
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ index f3db63ddb175f82b6eafee48686065050437fc92..4e71fb3fcbd89c21e5132cfb76dcbf8c
private org.bukkit.util.Vector origin;
@javax.annotation.Nullable
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 402fa40908a82a55686c6dc02266093384e7a4e4..42a90da13826d0cdae3f1d4cb609c11fa23ceaae 100644
index e9948f593c5d0df365104f50444e520b1be3d974..382e3546fb8d1482956484920ea6ece691a828e1 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3349,10 +3349,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3346,10 +3346,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
}

Iterator iterator1 = list.iterator();
Expand Down
4 changes: 2 additions & 2 deletions patches/server/0162-Add-PlayerArmorChangeEvent.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerArmorChangeEvent


diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 42a90da13826d0cdae3f1d4cb609c11fa23ceaae..29d6fcdd74445a8e9088db6078ce1d8bd176029e 100644
index 382e3546fb8d1482956484920ea6ece691a828e1..1371e57840727fee82186c44618064e8e147d260 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1,5 +1,6 @@
Expand All @@ -15,7 +15,7 @@ index 42a90da13826d0cdae3f1d4cb609c11fa23ceaae..29d6fcdd74445a8e9088db6078ce1d8b
import com.google.common.base.Objects;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -3053,6 +3054,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3050,6 +3051,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
ItemStack itemstack1 = this.getItemBySlot(enumitemslot);

if (this.equipmentHasChanged(itemstack, itemstack1)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ Subject: [PATCH] Make shield blocking delay configurable


diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 29d6fcdd74445a8e9088db6078ce1d8bd176029e..4fabac2c6e5edc64ff71f92b527d8ceead36e498 100644
index 1371e57840727fee82186c44618064e8e147d260..91de8c2ca2bd681c8289ce0c59f3ddb1d56be83e 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3809,12 +3809,24 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3806,12 +3806,24 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (this.isUsingItem() && !this.useItem.isEmpty()) {
Item item = this.useItem.getItem();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@ index 1d21c5d5ea84f76d4cafe9d2d22226cf50232ee1..ca773bca9df5a313d979e97e3a5245e7

protected void markHurt() {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 4fabac2c6e5edc64ff71f92b527d8ceead36e498..b3690175df91a21517d2d192a824984d75473d1e 100644
index 91de8c2ca2bd681c8289ce0c59f3ddb1d56be83e..d9ed53c65b8b59da452016d415e925e9e579fe94 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1516,7 +1516,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1514,7 +1514,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
d0 = (Math.random() - Math.random()) * 0.01D;
}

Expand All @@ -45,7 +45,7 @@ index 4fabac2c6e5edc64ff71f92b527d8ceead36e498..b3690175df91a21517d2d192a824984d
if (!flag) {
this.indicateDamage(d0, d1);
}
@@ -1565,7 +1565,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1562,7 +1562,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}

protected void blockedByShield(LivingEntity target) {
Expand All @@ -54,7 +54,7 @@ index 4fabac2c6e5edc64ff71f92b527d8ceead36e498..b3690175df91a21517d2d192a824984d
}

private boolean checkTotemDeathProtection(DamageSource source) {
@@ -1826,6 +1826,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1823,6 +1823,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
}

public void knockback(double strength, double x, double z) {
Expand All @@ -66,7 +66,7 @@ index 4fabac2c6e5edc64ff71f92b527d8ceead36e498..b3690175df91a21517d2d192a824984d
strength *= 1.0D - this.getAttributeValue(Attributes.KNOCKBACK_RESISTANCE);
if (strength > 0.0D) {
this.hasImpulse = true;
@@ -1833,6 +1838,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1830,6 +1835,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
Vec3 vec3d1 = (new Vec3(x, 0.0D, z)).normalize().scale(strength);

this.setDeltaMovement(vec3d.x / 2.0D - vec3d1.x, this.onGround() ? Math.min(0.4D, vec3d.y / 2.0D + strength) : vec3d.y, vec3d.z / 2.0D - vec3d1.z);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ Subject: [PATCH] Add ray tracing methods to LivingEntity


diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index b3690175df91a21517d2d192a824984d75473d1e..05595ff2336b25712b59b8ad6b11163dd333e6c0 100644
index d9ed53c65b8b59da452016d415e925e9e579fe94..036299bd181f36776cac3843d2909a65ec2a875e 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3830,6 +3830,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3827,6 +3827,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
}

// Paper start
Expand Down
14 changes: 7 additions & 7 deletions patches/server/0253-Improve-death-events.patch
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ index 16fb709582d5311c4b59d72974467eaa1c61a2ab..73b30df698142abf569c232630ec1d95

@Override
public float getBukkitYaw() {
@@ -1526,13 +1527,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (knockbackCancelled) this.level().broadcastEntityEvent(this, (byte) 2); // Paper - Disable explosion knockback
@@ -1523,13 +1524,12 @@ public abstract class LivingEntity extends Entity implements Attackable {

if (this.isDeadOrDying()) {
if (!this.checkTotemDeathProtection(source)) {
- SoundEvent soundeffect = this.getDeathSound();
Expand All @@ -99,7 +99,7 @@ index 16fb709582d5311c4b59d72974467eaa1c61a2ab..73b30df698142abf569c232630ec1d95
}
} else if (flag1) {
this.playHurtSound(source);
@@ -1685,7 +1685,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1682,7 +1682,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (!this.isRemoved() && !this.dead) {
Entity entity = damageSource.getEntity();
LivingEntity entityliving = this.getKillCredit();
Expand All @@ -108,7 +108,7 @@ index 16fb709582d5311c4b59d72974467eaa1c61a2ab..73b30df698142abf569c232630ec1d95
if (this.deathScore >= 0 && entityliving != null) {
entityliving.awardKillScore(this, this.deathScore, damageSource);
}
@@ -1697,24 +1697,59 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1694,24 +1694,59 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (!this.level().isClientSide && this.hasCustomName()) {
if (org.spigotmc.SpigotConfig.logNamedDeaths) LivingEntity.LOGGER.info("Named entity {} died: {}", this, this.getCombatTracker().getDeathMessage().getString()); // Spigot
}
Expand Down Expand Up @@ -173,7 +173,7 @@ index 16fb709582d5311c4b59d72974467eaa1c61a2ab..73b30df698142abf569c232630ec1d95
}
}

@@ -1722,7 +1757,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1719,7 +1754,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (!this.level().isClientSide) {
boolean flag = false;

Expand All @@ -182,7 +182,7 @@ index 16fb709582d5311c4b59d72974467eaa1c61a2ab..73b30df698142abf569c232630ec1d95
if (this.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) {
BlockPos blockposition = this.blockPosition();
BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState();
@@ -1751,7 +1786,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1748,7 +1783,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
}

Expand All @@ -195,7 +195,7 @@ index 16fb709582d5311c4b59d72974467eaa1c61a2ab..73b30df698142abf569c232630ec1d95
Entity entity = source.getEntity();
int i;

@@ -1766,18 +1805,27 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1763,18 +1802,27 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.dropEquipment(); // CraftBukkit - from below
if (this.shouldDropLoot() && this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) {
this.dropFromLootTable(source, flag);
Expand Down
4 changes: 2 additions & 2 deletions patches/server/0265-Add-LivingEntity-getTargetEntity.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Subject: [PATCH] Add LivingEntity#getTargetEntity


diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 96e9616f4ceedf95ec94854a0b1d8526a80057f5..4778851ce1592d5f7fafb03310a7c965b6cde492 100644
index a16e60f7dde5ad3b908d76d1889ea8ddb3d5e102..d8c413e60abbdbd337afef31f0b88a1b8ac6a59f 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -116,6 +116,7 @@ import net.minecraft.world.level.storage.loot.LootTable;
Expand All @@ -16,7 +16,7 @@ index 96e9616f4ceedf95ec94854a0b1d8526a80057f5..4778851ce1592d5f7fafb03310a7c965
import net.minecraft.world.phys.HitResult;
import net.minecraft.world.phys.Vec3;
import net.minecraft.world.scores.PlayerTeam;
@@ -3892,6 +3893,38 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3889,6 +3890,38 @@ public abstract class LivingEntity extends Entity implements Attackable {
return this.level().clip(raytrace);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,10 @@ index 63f9f874ef9da0d5f0c6d6df2901be27df5e30a0..72c33eaa232503c373bf8cf9a1c1c760
if (this.valid) {
Bukkit.getPluginManager().callEvent(event);
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 4778851ce1592d5f7fafb03310a7c965b6cde492..491ba787cbcc89ec2fee4885d29940e58d0d09b0 100644
index d8c413e60abbdbd337afef31f0b88a1b8ac6a59f..8606dabdc5759e7b09e3e47d5a1ef7045a0de78b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3472,9 +3472,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3469,9 +3469,15 @@ public abstract class LivingEntity extends Entity implements Attackable {

@Override
public void stopRiding() {
Expand Down
Loading

0 comments on commit 52849f6

Please sign in to comment.