Fix creepers not fusing down when mounting

This commit is contained in:
William Blake Galbreath
2021-08-27 19:37:10 -05:00
parent a2fb41ab7f
commit a959bddfe7
7 changed files with 22 additions and 18 deletions

View File

@@ -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<? extends Projectile> 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 {