From 468b0b4292b4be61b497a6ca17f6c5b4046d89e3 Mon Sep 17 00:00:00 2001 From: _OfTeN_ Date: Mon, 20 Sep 2021 11:16:44 +0300 Subject: [PATCH] Added 'baby: true/false' option for boss config to control the mob age. --- .../src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java | 6 ++++++ .../java/com/willfp/ecobosses/bosses/LivingEcoBoss.java | 6 ++++++ .../core-plugin/src/main/resources/bosses/alpha_wolf.yml | 1 + .../core-plugin/src/main/resources/bosses/dark_guardian.yml | 1 + .../core-plugin/src/main/resources/bosses/steel_golem.yml | 1 + .../core-plugin/src/main/resources/bosses/tarantula.yml | 1 + 6 files changed, 16 insertions(+) diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java index b6be417..0d9d840 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java @@ -124,6 +124,11 @@ public class EcoBoss extends PluginDependent { @Getter private final int attackDamage; + /** + * Age state. + */ + @Getter + private final boolean baby; /** * The follow range. @@ -325,6 +330,7 @@ public class EcoBoss extends PluginDependent { this.name = name; this.livingBosses = new HashMap<>(); this.isGlowing = this.getConfig().getBool("glowing"); + this.baby = this.getConfig().getBool("baby"); this.displayName = this.getConfig().getString("name"); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java index 307667d..8e8b33d 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java @@ -21,6 +21,7 @@ import org.bukkit.attribute.AttributeInstance; import org.bukkit.attribute.AttributeModifier; import org.bukkit.block.Block; import org.bukkit.boss.BarFlag; +import org.bukkit.entity.Ageable; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.inventory.EntityEquipment; @@ -107,6 +108,11 @@ public class LivingEcoBoss extends PluginDependent { if (boss.isGlowing()) entity.addPotionEffect(new PotionEffect(PotionEffectType.GLOWING, Integer.MAX_VALUE, 1, false, false, false)); + if (entity instanceof Ageable ageable) { + if (boss.isBaby()) ageable.setBaby(); + else ageable.setAdult(); + } + if (boss.getTimeToLive() > 0) { entity.setMetadata("death-time", this.getPlugin().getMetadataValueFactory().create(System.currentTimeMillis() + (boss.getTimeToLive() * 1000L))); } diff --git a/eco-core/core-plugin/src/main/resources/bosses/alpha_wolf.yml b/eco-core/core-plugin/src/main/resources/bosses/alpha_wolf.yml index ee39081..09f7408 100644 --- a/eco-core/core-plugin/src/main/resources/bosses/alpha_wolf.yml +++ b/eco-core/core-plugin/src/main/resources/bosses/alpha_wolf.yml @@ -2,6 +2,7 @@ enabled: true name: "&fAlpha Wolf &7| &c%health%♥ &7| &e%time%" # Display name base-mob: wolf +baby: false # If set to true: will make the boss mob baby (if possible) bossbar: enabled: true diff --git a/eco-core/core-plugin/src/main/resources/bosses/dark_guardian.yml b/eco-core/core-plugin/src/main/resources/bosses/dark_guardian.yml index 9db16f3..f134f64 100644 --- a/eco-core/core-plugin/src/main/resources/bosses/dark_guardian.yml +++ b/eco-core/core-plugin/src/main/resources/bosses/dark_guardian.yml @@ -2,6 +2,7 @@ enabled: true name: "&9Dark Guardian &7| &c%health%♥ &7| &e%time%" # Display name base-mob: ravager +baby: false # If set to true: will make the boss mob baby (if possible) bossbar: enabled: true diff --git a/eco-core/core-plugin/src/main/resources/bosses/steel_golem.yml b/eco-core/core-plugin/src/main/resources/bosses/steel_golem.yml index 99bd570..631c162 100644 --- a/eco-core/core-plugin/src/main/resources/bosses/steel_golem.yml +++ b/eco-core/core-plugin/src/main/resources/bosses/steel_golem.yml @@ -2,6 +2,7 @@ enabled: true name: "&8Steel Golem &7| &c%health%♥ &7| &e%time%" # Display name base-mob: iron_golem +baby: false # If set to true: will make the boss mob baby (if possible) bossbar: enabled: true diff --git a/eco-core/core-plugin/src/main/resources/bosses/tarantula.yml b/eco-core/core-plugin/src/main/resources/bosses/tarantula.yml index e711c38..91f1ff9 100644 --- a/eco-core/core-plugin/src/main/resources/bosses/tarantula.yml +++ b/eco-core/core-plugin/src/main/resources/bosses/tarantula.yml @@ -2,6 +2,7 @@ enabled: true name: "&4Tarantula &7| &c%health%♥ &7| &e%time%" # Display name base-mob: cave_spider +baby: false # If set to true: will make the boss mob baby (if possible) bossbar: enabled: true