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) { public boolean doHurtTarget(Entity target) {
if (super.doHurtTarget(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 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 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/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 maxSwell = 30;
public int explosionRadius = 3; public int explosionRadius = 3;
private int droppedSkulls; private int droppedSkulls;
@@ -2845,6 +2845,7 @@ index e8c36e8541f041a0d72a86f49ced2a3ce1549be0..1bf65519883585569a1acc780554505d
+ if (getRider().getForwardMot() != 0 || getRider().getStrafeMot() != 0) { + if (getRider().getForwardMot() != 0 || getRider().getStrafeMot() != 0) {
+ spacebarCharge = 0; + spacebarCharge = 0;
+ setIgnited(false); + setIgnited(false);
+ setSwellDir(-1);
+ } + }
+ if (spacebarCharge == prevSpacebarCharge) { + if (spacebarCharge == prevSpacebarCharge) {
+ spacebarCharge = 0; + spacebarCharge = 0;
@@ -2858,6 +2859,7 @@ index e8c36e8541f041a0d72a86f49ced2a3ce1549be0..1bf65519883585569a1acc780554505d
+ public void onMount(Player rider) { + public void onMount(Player rider) {
+ super.onMount(rider); + super.onMount(rider);
+ setIgnited(false); + setIgnited(false);
+ setSwellDir(-1);
+ } + }
+ +
+ @Override + @Override
@@ -2872,6 +2874,7 @@ index e8c36e8541f041a0d72a86f49ced2a3ce1549be0..1bf65519883585569a1acc780554505d
+ powerToggleDelay = 20; + powerToggleDelay = 20;
+ setPowered(!isPowered()); + setPowered(!isPowered());
+ setIgnited(false); + setIgnited(false);
+ setSwellDir(-1);
+ return true; + return true;
+ } + }
+ } + }
@@ -2879,6 +2882,7 @@ index e8c36e8541f041a0d72a86f49ced2a3ce1549be0..1bf65519883585569a1acc780554505d
+ if (getRider() != null && getRider().getForwardMot() == 0 && getRider().getStrafeMot() == 0 && + if (getRider() != null && getRider().getForwardMot() == 0 && getRider().getStrafeMot() == 0 &&
+ getRider().getBukkitEntity().hasPermission("allow.special.creeper")) { + getRider().getBukkitEntity().hasPermission("allow.special.creeper")) {
+ setIgnited(true); + setIgnited(true);
+ setSwellDir(1);
+ return true; + return true;
+ } + }
+ } + }
@@ -2901,7 +2905,7 @@ index e8c36e8541f041a0d72a86f49ced2a3ce1549be0..1bf65519883585569a1acc780554505d
this.targetSelector.addGoal(1, new NearestAttackableTargetGoal<>(this, Player.class, true)); this.targetSelector.addGoal(1, new NearestAttackableTargetGoal<>(this, Player.class, true));
this.targetSelector.addGoal(2, new HurtByTargetGoal(this, new Class[0])); 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); com.destroystokyo.paper.event.entity.CreeperIgniteEvent event = new com.destroystokyo.paper.event.entity.CreeperIgniteEvent((org.bukkit.entity.Creeper) getBukkitEntity(), ignited);
if (event.callEvent()) { if (event.callEvent()) {
this.entityData.set(Creeper.DATA_IS_IGNITED, event.isIgnited()); this.entityData.set(Creeper.DATA_IS_IGNITED, event.isIgnited());
@@ -4521,7 +4525,7 @@ index 008e3b769011df76697ad0abcdde5727cef05f64..0837875231ef96ff58f2fee3e558d706
Projectile(EntityType<? extends Projectile> type, Level world) { 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 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 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -156,4 +156,9 @@ public class PurpurConfig { @@ -156,4 +156,9 @@ public class PurpurConfig {

View File

@@ -792,10 +792,10 @@ index dd05c5f35d78d1385f793f4e34333ff242d136e1..45b53f11b52cc161775fcaa18567e4a7
@Override @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 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 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/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 return getForwardMot() == 0 && getStrafeMot() == 0; // do not jump if standing still
} }

View File

@@ -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 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 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/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() { public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.creeperMaxHealth); this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.creeperMaxHealth);
} }

View File

@@ -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 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 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/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() { public void explodeCreeper() {
if (!this.level.isClientSide) { if (!this.level.isClientSide) {

View File

@@ -166,10 +166,10 @@ index ee13bdfb5cfc9992d26126804c0a0bb512c2eb1e..bdcbe92cbe431727f5879a04bf734811
j = Mth.floor(this.getX()); j = Mth.floor(this.getX());
int i1 = Mth.floor(this.getZ()); 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 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 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/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() { public void explodeCreeper() {
if (!this.level.isClientSide) { if (!this.level.isClientSide) {

View File

@@ -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. 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 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 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/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 { @@ -64,6 +64,7 @@ public class Creeper extends Monster implements PowerableMob {
@@ -17,7 +17,7 @@ index c550b8c19837ed9bf730a3eb777bc00de4e7ceb2..02494dcc8a342f65b2855612aebeb019
// Purpur end // Purpur end
public Creeper(EntityType<? extends Creeper> type, Level world) { public Creeper(EntityType<? extends Creeper> 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); return super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityNbt);
} }
@@ -32,7 +32,7 @@ index c550b8c19837ed9bf730a3eb777bc00de4e7ceb2..02494dcc8a342f65b2855612aebeb019
// Purpur end // Purpur end
@Override @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() { public void explodeCreeper() {
@@ -40,7 +40,7 @@ index c550b8c19837ed9bf730a3eb777bc00de4e7ceb2..02494dcc8a342f65b2855612aebeb019
if (!this.level.isClientSide) { 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 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; 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 // CraftBukkit end
} }

View File

@@ -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 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 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/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) { 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 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; float f = this.isPowered() ? 2.0F : 1.0F;