diff --git a/patches/api/Missing-Entity-Behavior-API.patch b/patches/api/Missing-Entity-Behavior-API.patch index 1f9fa4cb3b..06c9cd19e3 100644 --- a/patches/api/Missing-Entity-Behavior-API.patch +++ b/patches/api/Missing-Entity-Behavior-API.patch @@ -175,6 +175,49 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + public boolean isFaceplanted(); + // Paper end - Add more fox behavior API } +diff --git a/src/main/java/org/bukkit/entity/Ghast.java b/src/main/java/org/bukkit/entity/Ghast.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/entity/Ghast.java ++++ b/src/main/java/org/bukkit/entity/Ghast.java +@@ -0,0 +0,0 @@ package org.bukkit.entity; + /** + * Represents a Ghast. + */ +-public interface Ghast extends Flying {} ++// Paper start ++public interface Ghast extends Flying { ++ ++ /** ++ * Returns whether the ghast is charging an attack. ++ * ++ * @return whether the ghast is charging an attack ++ */ ++ boolean isCharging(); ++ ++ /** ++ * Sets whether the ghast is charging an attack. ++ * This determines whether the client displays the charging animation. ++ * ++ * @param charging whether the ghast is charging an attack ++ */ ++ void setCharging(boolean charging); ++ ++ /** ++ * Returns the explosion power of shot fireballs. ++ * ++ * @return explosion power of shot fireballs ++ */ ++ int getExplosionPower(); ++ ++ /** ++ * Sets the explosion power of shot fireballs. ++ * ++ * @param explosionPower explosion power of shot fireballs ++ * @throws IllegalArgumentException if the explosion power is less than 0 or greater than 127 ++ */ ++ void setExplosionPower(int explosionPower); ++ // Paper end ++} diff --git a/src/main/java/org/bukkit/entity/Panda.java b/src/main/java/org/bukkit/entity/Panda.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/entity/Panda.java diff --git a/patches/server/Missing-Entity-Behavior-API.patch b/patches/server/Missing-Entity-Behavior-API.patch index 206ddb2c5c..8665d7b616 100644 --- a/patches/server/Missing-Entity-Behavior-API.patch +++ b/patches/server/Missing-Entity-Behavior-API.patch @@ -35,6 +35,23 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public void setStanding(boolean angry) { if (angry) { this.setEating(false); +diff --git a/src/main/java/net/minecraft/world/entity/monster/Ghast.java b/src/main/java/net/minecraft/world/entity/monster/Ghast.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/Ghast.java ++++ b/src/main/java/net/minecraft/world/entity/monster/Ghast.java +@@ -0,0 +0,0 @@ public class Ghast extends FlyingMob implements Enemy { + return this.explosionPower; + } + ++ // Paper start ++ public void setExplosionPower(int explosionPower) { ++ this.explosionPower = explosionPower; ++ } ++ // Paper end ++ + @Override + protected boolean shouldDespawnInPeaceful() { + return true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java @@ -156,6 +173,38 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + // Paper end - Add more fox behavior API } +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java +@@ -0,0 +0,0 @@ public class CraftGhast extends CraftFlying implements Ghast { + public EntityType getType() { + return EntityType.GHAST; + } ++ ++ // Paper start ++ @Override ++ public boolean isCharging() { ++ return this.getHandle().isCharging(); ++ } ++ ++ @Override ++ public void setCharging(boolean charging) { ++ this.getHandle().setCharging(charging); ++ } ++ ++ @Override ++ public int getExplosionPower() { ++ return this.getHandle().getExplosionPower(); ++ } ++ ++ @Override ++ public void setExplosionPower(int explosionPower) { ++ com.google.common.base.Preconditions.checkArgument(explosionPower >= 0 && explosionPower <= 127, "The explosion power has to be between 0 and 127"); ++ this.getHandle().setExplosionPower(explosionPower); ++ } ++ // Paper end + } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java