diff --git a/eco-core/core-nms/v1_16_R3/src/main/java/com/willfp/ecobosses/proxy/v1_16_R3/CustomIllusioner.java b/eco-core/core-nms/v1_16_R3/src/main/java/com/willfp/ecobosses/proxy/v1_16_R3/CustomIllusioner.java index 3ee59f5..0f0df36 100644 --- a/eco-core/core-nms/v1_16_R3/src/main/java/com/willfp/ecobosses/proxy/v1_16_R3/CustomIllusioner.java +++ b/eco-core/core-nms/v1_16_R3/src/main/java/com/willfp/ecobosses/proxy/v1_16_R3/CustomIllusioner.java @@ -19,6 +19,7 @@ import net.minecraft.server.v1_16_R3.PathfinderGoalRandomStroll; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_16_R3.CraftWorld; import org.bukkit.craftbukkit.v1_16_R3.util.CraftNamespacedKey; +import org.bukkit.entity.Illusioner; import org.bukkit.persistence.PersistentDataType; import org.jetbrains.annotations.NotNull; @@ -52,9 +53,9 @@ public class CustomIllusioner extends EntityIllagerIllusioner implements CustomI } @Override - public CustomIllusionerProxy spawn(@NotNull final Location location) { + public Illusioner spawn(@NotNull final Location location) { CustomIllusioner illusioner = new CustomIllusioner(location); ((CraftWorld) location.getWorld()).getHandle().addEntity(illusioner); - return illusioner; + return (Illusioner) illusioner.getBukkitEntity(); } } 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 f3b3d5a..95ac342 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 @@ -1,22 +1,17 @@ package com.willfp.ecobosses.bosses; import com.willfp.eco.internal.config.AbstractUndefinedConfig; -import com.willfp.ecobosses.EcoBossesPlugin; +import com.willfp.eco.util.internal.PluginDependent; +import com.willfp.eco.util.plugin.AbstractEcoPlugin; import lombok.AccessLevel; import lombok.Getter; import org.jetbrains.annotations.NotNull; import java.util.Objects; -@SuppressWarnings("unchecked") -public class EcoBoss { +public class EcoBoss extends PluginDependent { /** - * Instance of EcoArmor. - */ - private static final EcoBossesPlugin PLUGIN = EcoBossesPlugin.getInstance(); - - /** - * The name of the set. + * The name of the boss. */ @Getter private final String name; @@ -32,9 +27,12 @@ public class EcoBoss { * * @param name The name of the set. * @param config The set's config. + * @param plugin Instance of EcoBosses. */ public EcoBoss(@NotNull final String name, - @NotNull final AbstractUndefinedConfig config) { + @NotNull final AbstractUndefinedConfig config, + @NotNull final AbstractEcoPlugin plugin) { + super(plugin); this.config = config; this.name = name; @@ -68,4 +66,4 @@ public class EcoBoss { + this.getName() + "}"; } -} \ No newline at end of file +} diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBosses.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBosses.java index 0a75970..65060e2 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBosses.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBosses.java @@ -61,7 +61,7 @@ public class EcoBosses { } for (String defaultSetName : DEFAULT_BOSSES) { - new EcoBoss(defaultSetName, new BaseBossConfig(defaultSetName)); + new EcoBoss(defaultSetName, new BaseBossConfig(defaultSetName), EcoBossesPlugin.getInstance()); } try { @@ -69,9 +69,10 @@ public class EcoBosses { .filter(Files::isRegularFile) .forEach(path -> { String name = path.getFileName().toString().replace(".yml", ""); - new EcoBoss ( + new EcoBoss( name, - new CustomConfig(name, YamlConfiguration.loadConfiguration(path.toFile())) + new CustomConfig(name, YamlConfiguration.loadConfiguration(path.toFile())), + EcoBossesPlugin.getInstance() ); }); } catch (IOException e) { diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/listeners/DeathListeners.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/listeners/DeathListeners.java index 5e44ebc..cc6240c 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/listeners/DeathListeners.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/listeners/DeathListeners.java @@ -14,7 +14,7 @@ import org.jetbrains.annotations.NotNull; public class DeathListeners implements Listener { /** - * Called when the illusioner dies. + * Called when a boss dies. * * @param event The event to listen for. */ diff --git a/eco-core/core-proxy/src/main/java/com/willfp/ecobosses/proxy/proxies/CustomIllusionerProxy.java b/eco-core/core-proxy/src/main/java/com/willfp/ecobosses/proxy/proxies/CustomIllusionerProxy.java index f511289..86721ac 100644 --- a/eco-core/core-proxy/src/main/java/com/willfp/ecobosses/proxy/proxies/CustomIllusionerProxy.java +++ b/eco-core/core-proxy/src/main/java/com/willfp/ecobosses/proxy/proxies/CustomIllusionerProxy.java @@ -1,17 +1,8 @@ package com.willfp.ecobosses.proxy.proxies; -import com.willfp.eco.util.plugin.AbstractEcoPlugin; import com.willfp.eco.util.proxy.AbstractProxy; -import org.bukkit.Location; -import org.bukkit.boss.BossBar; -import org.jetbrains.annotations.NotNull; +import com.willfp.ecobosses.proxy.util.CustomEntity; +import org.bukkit.entity.Illusioner; -public interface CustomIllusionerProxy extends AbstractProxy { - /** - * Spawn an illusioner. - * - * @param location The location to spawn it at. - * @return The created illusioner. - */ - CustomIllusionerProxy spawn(@NotNull Location location); +public interface CustomIllusionerProxy extends AbstractProxy, CustomEntity { } diff --git a/eco-core/core-proxy/src/main/java/com/willfp/ecobosses/proxy/util/CustomEntity.java b/eco-core/core-proxy/src/main/java/com/willfp/ecobosses/proxy/util/CustomEntity.java new file mode 100644 index 0000000..5308244 --- /dev/null +++ b/eco-core/core-proxy/src/main/java/com/willfp/ecobosses/proxy/util/CustomEntity.java @@ -0,0 +1,14 @@ +package com.willfp.ecobosses.proxy.util; + +import org.bukkit.Location; +import org.jetbrains.annotations.NotNull; + +public interface CustomEntity { + /** + * Spawn a custom entity. + * + * @param location The location to spawn it at. + * @return The created entity. + */ + T spawn(@NotNull Location location); +}