9
0
mirror of https://github.com/Auxilor/EcoMobs.git synced 2025-12-20 07:29:21 +00:00

Updated PR to use ChargedCreeperBossType

This commit is contained in:
Auxilor
2021-09-21 08:44:37 +01:00
parent ea2b14fbec
commit b75b83aebf
3 changed files with 31 additions and 19 deletions

View File

@@ -42,7 +42,7 @@ public class BossEntityUtils {
}
if (id.equalsIgnoreCase("charged_creeper")) {
return new VanillaBossType(Creeper.class, true);
return new ChargedCreeperBossType();
}
try {

View File

@@ -0,0 +1,30 @@
package com.willfp.ecobosses.bosses.util.bosstype;
import org.bukkit.Location;
import org.bukkit.entity.Creeper;
import org.bukkit.entity.LivingEntity;
import org.jetbrains.annotations.NotNull;
import java.util.Objects;
class ChargedCreeperBossType extends VanillaBossType {
/**
* Create new Charged Creeper boss type.
*/
ChargedCreeperBossType() {
super(Creeper.class);
}
/**
* Spawn a charged creeper.
*
* @param location The location.
* @return The entity.
*/
@Override
public LivingEntity spawnBossEntity(@NotNull final Location location) {
Creeper creeper = Objects.requireNonNull(location.getWorld()).spawn(location, Creeper.class);
creeper.setPowered(true);
return creeper;
}
}

View File

@@ -13,11 +13,6 @@ class VanillaBossType extends BossType {
*/
private final Class<? extends LivingEntity> entityClass;
/**
* If the entity is Creeper and should or should not be charged.
*/
private final boolean creeperCharged;
/**
* Create new vanilla boss type.
*
@@ -25,24 +20,11 @@ class VanillaBossType extends BossType {
*/
VanillaBossType(@NotNull final Class<? extends LivingEntity> entityClass) {
this.entityClass = entityClass;
this.creeperCharged = false;
}
/**
* Create new vanilla boss type.
*
* @param entityClass The entity class.
* @param creeperCharged The creeper power state.
*/
VanillaBossType(@NotNull final Class<? extends LivingEntity> entityClass, boolean creeperCharged) {
this.entityClass = entityClass;
this.creeperCharged = creeperCharged;
}
@Override
public LivingEntity spawnBossEntity(@NotNull final Location location) {
LivingEntity result = Objects.requireNonNull(location.getWorld()).spawn(location, entityClass);
if (result instanceof Creeper creeper && creeperCharged) creeper.setPowered(true);
return result;
}
}