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 0f0df36..f063a82 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,7 +19,6 @@ 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; @@ -51,11 +50,4 @@ public class CustomIllusioner extends EntityIllagerIllusioner implements CustomI this.targetSelector.a(3, (new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false)).a(300)); this.targetSelector.a(3, (new PathfinderGoalNearestAttackableTarget<>(this, EntityIronGolem.class, false)).a(300)); } - - @Override - public Illusioner spawn(@NotNull final Location location) { - CustomIllusioner illusioner = new CustomIllusioner(location); - ((CraftWorld) location.getWorld()).getHandle().addEntity(illusioner); - return (Illusioner) illusioner.getBukkitEntity(); - } } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/bosstype/BossEntityUtils.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/bosstype/BossEntityUtils.java index 1cfb77b..34453cd 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/bosstype/BossEntityUtils.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/bosstype/BossEntityUtils.java @@ -1,13 +1,15 @@ package com.willfp.ecobosses.bosses.util.bosstype; import com.willfp.ecobosses.proxy.util.CustomEntities; +import com.willfp.ecobosses.proxy.util.CustomEntity; import lombok.experimental.UtilityClass; import org.bukkit.entity.EntityType; +import org.bukkit.entity.LivingEntity; import org.jetbrains.annotations.NotNull; - -import java.util.Objects; +import org.jetbrains.annotations.Nullable; @UtilityClass +@SuppressWarnings("unchecked") public class BossEntityUtils { /** * Get boss type. @@ -15,11 +17,17 @@ public class BossEntityUtils { * @param id The name. * @return The boss type. */ + @Nullable public static BossType getBossType(@NotNull final String id) { - if (CustomEntities.getEntityClass(id) != null) { - return new CustomBossType(Objects.requireNonNull(CustomEntities.getEntityClass(id))); - } else { - return new VanillaBossType(Objects.requireNonNull(EntityType.valueOf(id.toUpperCase()).getEntityClass())); + Class> proxy = CustomEntities.getEntityClass(id.toLowerCase()); + Class type = (Class) EntityType.valueOf(id.toUpperCase()).getEntityClass(); + if (proxy != null) { + return new CustomBossType(proxy); } + if (type != null) { + return new VanillaBossType(type); + } + + return null; } } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/bosstype/VanillaBossType.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/bosstype/VanillaBossType.java index b521101..b041960 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/bosstype/VanillaBossType.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/bosstype/VanillaBossType.java @@ -1,7 +1,6 @@ package com.willfp.ecobosses.bosses.util.bosstype; import org.bukkit.Location; -import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.jetbrains.annotations.NotNull; @@ -11,14 +10,14 @@ class VanillaBossType extends BossType { /** * The entity type. */ - private final Class entityClass; + private final Class entityClass; /** * Create new vanilla boss type. * * @param entityClass The entity class. */ - VanillaBossType(@NotNull final Class entityClass) { + VanillaBossType(@NotNull final Class entityClass) { this.entityClass = entityClass; }