From a959bddfe7cb6d8751eac911cd86b36cfc7a3d38 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 27 Aug 2021 19:37:10 -0500 Subject: [PATCH] Fix creepers not fusing down when mounting --- patches/server/0008-Ridables.patch | 12 ++++++++---- .../0009-Configurable-entity-base-attributes.patch | 4 ++-- .../0033-Charged-creeper-naturally-spawn.patch | 4 ++-- ...-Add-enderman-and-creeper-griefing-controls.patch | 4 ++-- ...d-mobGriefing-bypass-to-everything-affected.patch | 4 ++-- ...71-Config-to-make-Creepers-explode-on-death.patch | 8 ++++---- ...r-health-to-impact-Creeper-explosion-radius.patch | 4 ++-- 7 files changed, 22 insertions(+), 18 deletions(-) diff --git a/patches/server/0008-Ridables.patch b/patches/server/0008-Ridables.patch index 911ce5201..70bac8b9b 100644 --- a/patches/server/0008-Ridables.patch +++ b/patches/server/0008-Ridables.patch @@ -2808,10 +2808,10 @@ index d980b906d9206560741576fa4153c57212f307a0..dd05c5f35d78d1385f793f4e34333ff2 public boolean doHurtTarget(Entity target) { if (super.doHurtTarget(target)) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index e8c36e8541f041a0d72a86f49ced2a3ce1549be0..1bf65519883585569a1acc780554505dc5d6c30b 100644 +index e8c36e8541f041a0d72a86f49ced2a3ce1549be0..b9d23fb187541d734b56bfa48ccc18ee4f6d7e88 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -@@ -60,21 +60,89 @@ public class Creeper extends Monster implements PowerableMob { +@@ -60,21 +60,93 @@ public class Creeper extends Monster implements PowerableMob { public int maxSwell = 30; public int explosionRadius = 3; private int droppedSkulls; @@ -2845,6 +2845,7 @@ index e8c36e8541f041a0d72a86f49ced2a3ce1549be0..1bf65519883585569a1acc780554505d + if (getRider().getForwardMot() != 0 || getRider().getStrafeMot() != 0) { + spacebarCharge = 0; + setIgnited(false); ++ setSwellDir(-1); + } + if (spacebarCharge == prevSpacebarCharge) { + spacebarCharge = 0; @@ -2858,6 +2859,7 @@ index e8c36e8541f041a0d72a86f49ced2a3ce1549be0..1bf65519883585569a1acc780554505d + public void onMount(Player rider) { + super.onMount(rider); + setIgnited(false); ++ setSwellDir(-1); + } + + @Override @@ -2872,6 +2874,7 @@ index e8c36e8541f041a0d72a86f49ced2a3ce1549be0..1bf65519883585569a1acc780554505d + powerToggleDelay = 20; + setPowered(!isPowered()); + setIgnited(false); ++ setSwellDir(-1); + return true; + } + } @@ -2879,6 +2882,7 @@ index e8c36e8541f041a0d72a86f49ced2a3ce1549be0..1bf65519883585569a1acc780554505d + if (getRider() != null && getRider().getForwardMot() == 0 && getRider().getStrafeMot() == 0 && + getRider().getBukkitEntity().hasPermission("allow.special.creeper")) { + setIgnited(true); ++ setSwellDir(1); + return true; + } + } @@ -2901,7 +2905,7 @@ index e8c36e8541f041a0d72a86f49ced2a3ce1549be0..1bf65519883585569a1acc780554505d this.targetSelector.addGoal(1, new NearestAttackableTargetGoal<>(this, Player.class, true)); this.targetSelector.addGoal(2, new HurtByTargetGoal(this, new Class[0])); } -@@ -318,6 +386,7 @@ public class Creeper extends Monster implements PowerableMob { +@@ -318,6 +390,7 @@ public class Creeper extends Monster implements PowerableMob { com.destroystokyo.paper.event.entity.CreeperIgniteEvent event = new com.destroystokyo.paper.event.entity.CreeperIgniteEvent((org.bukkit.entity.Creeper) getBukkitEntity(), ignited); if (event.callEvent()) { this.entityData.set(Creeper.DATA_IS_IGNITED, event.isIgnited()); @@ -4521,7 +4525,7 @@ index 008e3b769011df76697ad0abcdde5727cef05f64..0837875231ef96ff58f2fee3e558d706 Projectile(EntityType type, Level world) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index faa4ad6af45ce1ef62084194340c6789634bff5f..ad7dbfa8dd5f38af87ec8980fd972ea4449da7ed 100644 +index 6903706219a146146a213710a5f83af37f7f60b8..41134227b3902f6e008f1db7b0803a1f81e7fd6e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -156,4 +156,9 @@ public class PurpurConfig { diff --git a/patches/server/0009-Configurable-entity-base-attributes.patch b/patches/server/0009-Configurable-entity-base-attributes.patch index d031cf2c1..e4a4fe3cf 100644 --- a/patches/server/0009-Configurable-entity-base-attributes.patch +++ b/patches/server/0009-Configurable-entity-base-attributes.patch @@ -792,10 +792,10 @@ index dd05c5f35d78d1385f793f4e34333ff242d136e1..45b53f11b52cc161775fcaa18567e4a7 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 1bf65519883585569a1acc780554505dc5d6c30b..b71a6af3c2d1ca2a946b23efb11b0e794840cf25 100644 +index b9d23fb187541d734b56bfa48ccc18ee4f6d7e88..3a14f975e26530e1c4887844ec0c3967bd15a05b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -@@ -129,6 +129,11 @@ public class Creeper extends Monster implements PowerableMob { +@@ -133,6 +133,11 @@ public class Creeper extends Monster implements PowerableMob { } return getForwardMot() == 0 && getStrafeMot() == 0; // do not jump if standing still } diff --git a/patches/server/0033-Charged-creeper-naturally-spawn.patch b/patches/server/0033-Charged-creeper-naturally-spawn.patch index 0310c2eeb..d67f977a6 100644 --- a/patches/server/0033-Charged-creeper-naturally-spawn.patch +++ b/patches/server/0033-Charged-creeper-naturally-spawn.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Charged creeper naturally spawn diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index b71a6af3c2d1ca2a946b23efb11b0e794840cf25..b2b3630a90c685b0a692efb9bf8bb111e321c9d1 100644 +index 3a14f975e26530e1c4887844ec0c3967bd15a05b..9e05eadd09df031bac8321748f0e89c2701b74a1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -@@ -134,6 +134,14 @@ public class Creeper extends Monster implements PowerableMob { +@@ -138,6 +138,14 @@ public class Creeper extends Monster implements PowerableMob { public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.creeperMaxHealth); } diff --git a/patches/server/0060-Add-enderman-and-creeper-griefing-controls.patch b/patches/server/0060-Add-enderman-and-creeper-griefing-controls.patch index 976fdccab..ff5a2de46 100644 --- a/patches/server/0060-Add-enderman-and-creeper-griefing-controls.patch +++ b/patches/server/0060-Add-enderman-and-creeper-griefing-controls.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add enderman and creeper griefing controls diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index b2b3630a90c685b0a692efb9bf8bb111e321c9d1..c7554c6c1a1787d976ad1fe0c78d86562464947e 100644 +index 9e05eadd09df031bac8321748f0e89c2701b74a1..cda677a5cb5b9993764be24140bc9b27cc3298af 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -@@ -340,7 +340,7 @@ public class Creeper extends Monster implements PowerableMob { +@@ -344,7 +344,7 @@ public class Creeper extends Monster implements PowerableMob { public void explodeCreeper() { if (!this.level.isClientSide) { diff --git a/patches/server/0149-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0149-Add-mobGriefing-bypass-to-everything-affected.patch index f48605506..282565d5e 100644 --- a/patches/server/0149-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0149-Add-mobGriefing-bypass-to-everything-affected.patch @@ -166,10 +166,10 @@ index ee13bdfb5cfc9992d26126804c0a0bb512c2eb1e..bdcbe92cbe431727f5879a04bf734811 j = Mth.floor(this.getX()); int i1 = Mth.floor(this.getZ()); diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index c7554c6c1a1787d976ad1fe0c78d86562464947e..c550b8c19837ed9bf730a3eb777bc00de4e7ceb2 100644 +index cda677a5cb5b9993764be24140bc9b27cc3298af..0192c5502037b8f93e6507e7dcb9229201d29d36 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -@@ -340,7 +340,7 @@ public class Creeper extends Monster implements PowerableMob { +@@ -344,7 +344,7 @@ public class Creeper extends Monster implements PowerableMob { public void explodeCreeper() { if (!this.level.isClientSide) { diff --git a/patches/server/0171-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0171-Config-to-make-Creepers-explode-on-death.patch index a0b4ab38a..3103e4928 100644 --- a/patches/server/0171-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/server/0171-Config-to-make-Creepers-explode-on-death.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Config to make Creepers explode on death Creepers exploded after being killed in the alpha days. This brings that back. diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index c550b8c19837ed9bf730a3eb777bc00de4e7ceb2..02494dcc8a342f65b2855612aebeb019095abf65 100644 +index 0192c5502037b8f93e6507e7dcb9229201d29d36..ba12eb0b3b4023371938ec4c076cbac3166099a8 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -64,6 +64,7 @@ public class Creeper extends Monster implements PowerableMob { @@ -17,7 +17,7 @@ index c550b8c19837ed9bf730a3eb777bc00de4e7ceb2..02494dcc8a342f65b2855612aebeb019 // Purpur end public Creeper(EntityType type, Level world) { -@@ -142,6 +143,14 @@ public class Creeper extends Monster implements PowerableMob { +@@ -146,6 +147,14 @@ public class Creeper extends Monster implements PowerableMob { } return super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityNbt); } @@ -32,7 +32,7 @@ index c550b8c19837ed9bf730a3eb777bc00de4e7ceb2..02494dcc8a342f65b2855612aebeb019 // Purpur end @Override -@@ -339,6 +348,7 @@ public class Creeper extends Monster implements PowerableMob { +@@ -343,6 +352,7 @@ public class Creeper extends Monster implements PowerableMob { } public void explodeCreeper() { @@ -40,7 +40,7 @@ index c550b8c19837ed9bf730a3eb777bc00de4e7ceb2..02494dcc8a342f65b2855612aebeb019 if (!this.level.isClientSide) { Explosion.BlockInteraction explosion_effect = (this.level.purpurConfig.creeperBypassMobGriefing || this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) && level.purpurConfig.creeperAllowGriefing ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.NONE; // Purpur float f = this.isPowered() ? 2.0F : 1.0F; -@@ -357,7 +367,7 @@ public class Creeper extends Monster implements PowerableMob { +@@ -361,7 +371,7 @@ public class Creeper extends Monster implements PowerableMob { } // CraftBukkit end } diff --git a/patches/server/0197-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0197-Config-for-health-to-impact-Creeper-explosion-radius.patch index bafc6efbf..b67400c30 100644 --- a/patches/server/0197-Config-for-health-to-impact-Creeper-explosion-radius.patch +++ b/patches/server/0197-Config-for-health-to-impact-Creeper-explosion-radius.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config for health to impact Creeper explosion radius diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 02494dcc8a342f65b2855612aebeb019095abf65..d66c8866f3c6b1412a6c1876c62e3b29316a0923 100644 +index ba12eb0b3b4023371938ec4c076cbac3166099a8..02ebc4ee80d433f895e643bfbc618aa85d96cc43 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -@@ -352,9 +352,10 @@ public class Creeper extends Monster implements PowerableMob { +@@ -356,9 +356,10 @@ public class Creeper extends Monster implements PowerableMob { if (!this.level.isClientSide) { Explosion.BlockInteraction explosion_effect = (this.level.purpurConfig.creeperBypassMobGriefing || this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) && level.purpurConfig.creeperAllowGriefing ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.NONE; // Purpur float f = this.isPowered() ? 2.0F : 1.0F;