From 2cc9625c0a5299641a0365cf485505c781db3ff9 Mon Sep 17 00:00:00 2001 From: AMinecraftDev Date: Sun, 1 Jul 2018 12:58:46 +0800 Subject: [PATCH] 3.0.0-SNAPSHOT-U15 Added Donkey, Evoker, Illusioner, Mule, Vex and Vindicator Handlers as well as added ZombieHorse, Donkey, Mule, Evoker, Vex, Vindicator, Illusioner, Creeper, Skeleton, Spider, Giant, Zombie, BabyZombie, Slime, Ghast, PigZombie, BabyPigZombie, Enderman, CaveSpider, Silverfish, Blaze, MagmaCube, EnderDragon, Wither, Bat, Witch to EntityFinder. --- .../custombosses/utils/EntityFinder.java | 27 +++++++++- .../custombosses/utils/EntityTypeUtil.java | 52 ------------------- .../entity/handlers/DonkeyHorseHandler.java | 31 +++++++++++ .../utils/entity/handlers/EvokerHandler.java | 27 ++++++++++ .../entity/handlers/IllusionerHandler.java | 27 ++++++++++ .../entity/handlers/MuleHorseHandler.java | 31 +++++++++++ .../utils/entity/handlers/VexHandler.java | 27 ++++++++++ .../entity/handlers/VindicatorHandler.java | 27 ++++++++++ pom.xml | 2 +- 9 files changed, 197 insertions(+), 54 deletions(-) delete mode 100644 plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/EntityTypeUtil.java create mode 100644 plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/DonkeyHorseHandler.java create mode 100644 plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/EvokerHandler.java create mode 100644 plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/IllusionerHandler.java create mode 100644 plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/MuleHorseHandler.java create mode 100644 plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/VexHandler.java create mode 100644 plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/VindicatorHandler.java diff --git a/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/EntityFinder.java b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/EntityFinder.java index cf0ffcd..9135b24 100644 --- a/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/EntityFinder.java +++ b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/EntityFinder.java @@ -24,7 +24,32 @@ public enum EntityFinder { HUSK("Husk", new HuskZombieHandler(), "husk"), ZOMBIE_VILLAGER("ZombieVillager", new ZombieVillagerHandler(), "zombievillager", "zombie_villager", "zombie villager", "villagerzombie", "villager_zombie", "villager zombie"), SKELETON_HORSE("SkeletonHorse", new SkeletonHorseHandler(), "skeletonhorse", "skeleton_horse", "skeleton horse"), - ZOMBIE_HORSE("ZombieHorse", new ZombieHorseHandler(), "zombiehorse", "zombie_horse", "zombie horse"); + ZOMBIE_HORSE("ZombieHorse", new ZombieHorseHandler(), "zombiehorse", "zombie_horse", "zombie horse"), + DONKEY("Donkey", new DonkeyHorseHandler(), "donkey"), + MULE("Mule", new MuleHorseHandler(), "mule"), + EVOKER("Evoker", new EvokerHandler(), "evoker"), + VEX("Vex", new VexHandler(), "vex"), + VINDICATOR("Vindicator", new VindicatorHandler(), "vindicator"), + ILLUSIONER("Illusioner", new IllusionerHandler(), "illusioner"), + CREEPER("Creeper", EntityType.CREEPER, "creeper"), + SKELETON("Skeleton", EntityType.SKELETON, "skeleton"), + SPIDER("Spider", EntityType.SPIDER, "spider"), + GIANT("Giant", EntityType.GIANT, "giant", "giant_zombie", "giant zombie", "giantzombie"), + ZOMBIE("Zombie", new ZombieHandler(), "zombie"), + BABY_ZOMBIE("BabyZombie", new ZombieBabyHandler(), "babyzombie", "baby_zombie", "baby zombie"), + SLIME("Slime", new SlimeHandler(), "slime"), + GHAST("Ghast", EntityType.GHAST, "ghast"), + PIG_ZOMBIE("PigZombie", new PigZombieHandler(), "pigzombie", "pig zombie", "pig_zombie", "zombiepigman", "zombie_pigman", "zombie pigman"), + BABY_PIG_ZOMBIE("BabyPigZombie", new PigZombieBabyHandler(), "babypigzombie", "baby pig zombie", "baby_pig_zombie", "babyzombiepigman", "baby_zombie_pigman", "baby zombie pigman"), + ENDERMAN("Enderman", EntityType.ENDERMAN, "enderman"), + CAVE_SPIDER("CaveSpider", EntityType.CAVE_SPIDER, "cavespider", "cave_spider", "cave spider"), + SILVERFISH("Silverfish", EntityType.SILVERFISH, "silverfish"), + BLAZE("Blaze", EntityType.BLAZE, "blaze"), + MAGMA_CUBE("MagmaCube", new MagmaCubeHandler(), "magmacube", "magma_cube", "magma cube"), + ENDER_DRAGON("EnderDragon", EntityType.ENDER_DRAGON, "enderdragon", "ender_dragon", "ender dragon"), + WITHER("Wither", EntityType.WITHER, "wither"), + BAT("Bat", EntityType.BAT, "bat"), + WITCH("Witch", EntityType.WITCH, "witch"); @Getter private ICustomEntityHandler customEntityHandler; @Getter private List names = new ArrayList<>(); diff --git a/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/EntityTypeUtil.java b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/EntityTypeUtil.java deleted file mode 100644 index 884fd94..0000000 --- a/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/EntityTypeUtil.java +++ /dev/null @@ -1,52 +0,0 @@ -package net.aminecraftdev.custombosses.utils; - -import net.aminecraftdev.custombosses.utils.entity.ICustomEntityHandler; -import net.aminecraftdev.custombosses.utils.entity.handlers.*; -import org.bukkit.Location; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.LivingEntity; - -/** - * @author Charles Cullen - * @version 1.0.0 - * @since 01-Jun-18 - */ -public enum EntityTypeUtil { - - WITHER_SKELETON(new WitherSkeletonHandler()), - ELDER_GUARDIAN(new ElderGuardianHandler()), - KILLER_BUNNY(new KillerBunnyHandler()), - ZOMBIE(new ZombieBabyHandler()), - BABY_ZOMBIE(new ZombieBabyHandler()), - PIG_ZOMBIE(new PigZombieHandler()), - BABY_PIG_ZOMBIE(new PigZombieBabyHandler()), - SLIME(new SlimeHandler()), - MAGMA_CUBE(new MagmaCubeHandler()), - VILLAGER(new VillagerHandler()); - - private ICustomEntityHandler entityHandler; - - EntityTypeUtil(ICustomEntityHandler customEntityHandler) { - this.entityHandler = customEntityHandler; - } - - private ICustomEntityHandler getEntityHandler() { - return entityHandler; - } - - public static LivingEntity get(String entityType, Location spawnLocation) { - for(EntityTypeUtil entityTypeUtil : values()) { - if(entityType.toUpperCase().startsWith(entityTypeUtil.name())) return entityTypeUtil.getEntityHandler().getBaseEntity(entityType, spawnLocation); - } - - return null; - } - - public static EntityTypeUtil get(String entityType) { - for(EntityTypeUtil entityTypeUtil : values()) { - if(entityType.toUpperCase().startsWith(entityTypeUtil.name())) return entityTypeUtil; - } - - return null; - } -} diff --git a/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/DonkeyHorseHandler.java b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/DonkeyHorseHandler.java new file mode 100644 index 0000000..1cedc87 --- /dev/null +++ b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/DonkeyHorseHandler.java @@ -0,0 +1,31 @@ +package net.aminecraftdev.custombosses.utils.entity.handlers; + +import net.aminecraftdev.custombosses.utils.Versions; +import net.aminecraftdev.custombosses.utils.entity.ICustomEntityHandler; +import net.aminecraftdev.custombosses.utils.version.VersionHandler; +import org.bukkit.Location; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Horse; +import org.bukkit.entity.LivingEntity; + +/** + * @author Charles Cullen + * @version 1.0.0 + * @since 01-Jul-18 + */ +public class DonkeyHorseHandler implements ICustomEntityHandler { + + private VersionHandler versionHandler = new VersionHandler(); + + @Override + public LivingEntity getBaseEntity(String entityType, Location spawnLocation) { + if(this.versionHandler.getVersion().isHigherThanOrEqualTo(Versions.v1_11_R1)) { + return (LivingEntity) spawnLocation.getWorld().spawnEntity(spawnLocation, EntityType.DONKEY); + } + + Horse horse = (Horse) spawnLocation.getWorld().spawnEntity(spawnLocation, EntityType.HORSE); + horse.setVariant(Horse.Variant.DONKEY); + + return horse; + } +} diff --git a/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/EvokerHandler.java b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/EvokerHandler.java new file mode 100644 index 0000000..d4c188c --- /dev/null +++ b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/EvokerHandler.java @@ -0,0 +1,27 @@ +package net.aminecraftdev.custombosses.utils.entity.handlers; + +import net.aminecraftdev.custombosses.utils.Versions; +import net.aminecraftdev.custombosses.utils.entity.ICustomEntityHandler; +import net.aminecraftdev.custombosses.utils.version.VersionHandler; +import org.bukkit.Location; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.LivingEntity; + +/** + * @author Charles Cullen + * @version 1.0.0 + * @since 01-Jul-18 + */ +public class EvokerHandler implements ICustomEntityHandler { + + private VersionHandler versionHandler = new VersionHandler(); + + @Override + public LivingEntity getBaseEntity(String entityType, Location spawnLocation) { + if(this.versionHandler.getVersion().isLessThan(Versions.v1_11_R1)) { + throw new NullPointerException("This feature is only implemented in version 1.11 and above of Minecraft."); + } + + return (LivingEntity) spawnLocation.getWorld().spawnEntity(spawnLocation, EntityType.EVOKER); + } +} diff --git a/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/IllusionerHandler.java b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/IllusionerHandler.java new file mode 100644 index 0000000..7c72687 --- /dev/null +++ b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/IllusionerHandler.java @@ -0,0 +1,27 @@ +package net.aminecraftdev.custombosses.utils.entity.handlers; + +import net.aminecraftdev.custombosses.utils.Versions; +import net.aminecraftdev.custombosses.utils.entity.ICustomEntityHandler; +import net.aminecraftdev.custombosses.utils.version.VersionHandler; +import org.bukkit.Location; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.LivingEntity; + +/** + * @author Charles Cullen + * @version 1.0.0 + * @since 01-Jul-18 + */ +public class IllusionerHandler implements ICustomEntityHandler { + + private VersionHandler versionHandler = new VersionHandler(); + + @Override + public LivingEntity getBaseEntity(String entityType, Location spawnLocation) { + if(this.versionHandler.getVersion().isLessThan(Versions.v1_11_R1)) { + throw new NullPointerException("This feature is only implemented in version 1.11 and above of Minecraft."); + } + + return (LivingEntity) spawnLocation.getWorld().spawnEntity(spawnLocation, EntityType.ILLUSIONER); + } +} diff --git a/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/MuleHorseHandler.java b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/MuleHorseHandler.java new file mode 100644 index 0000000..5fdb671 --- /dev/null +++ b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/MuleHorseHandler.java @@ -0,0 +1,31 @@ +package net.aminecraftdev.custombosses.utils.entity.handlers; + +import net.aminecraftdev.custombosses.utils.Versions; +import net.aminecraftdev.custombosses.utils.entity.ICustomEntityHandler; +import net.aminecraftdev.custombosses.utils.version.VersionHandler; +import org.bukkit.Location; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Horse; +import org.bukkit.entity.LivingEntity; + +/** + * @author Charles Cullen + * @version 1.0.0 + * @since 01-Jul-18 + */ +public class MuleHorseHandler implements ICustomEntityHandler { + + private VersionHandler versionHandler = new VersionHandler(); + + @Override + public LivingEntity getBaseEntity(String entityType, Location spawnLocation) { + if(this.versionHandler.getVersion().isHigherThanOrEqualTo(Versions.v1_11_R1)) { + return (LivingEntity) spawnLocation.getWorld().spawnEntity(spawnLocation, EntityType.MULE); + } + + Horse horse = (Horse) spawnLocation.getWorld().spawnEntity(spawnLocation, EntityType.HORSE); + horse.setVariant(Horse.Variant.MULE); + + return horse; + } +} diff --git a/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/VexHandler.java b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/VexHandler.java new file mode 100644 index 0000000..7ce5416 --- /dev/null +++ b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/VexHandler.java @@ -0,0 +1,27 @@ +package net.aminecraftdev.custombosses.utils.entity.handlers; + +import net.aminecraftdev.custombosses.utils.Versions; +import net.aminecraftdev.custombosses.utils.entity.ICustomEntityHandler; +import net.aminecraftdev.custombosses.utils.version.VersionHandler; +import org.bukkit.Location; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.LivingEntity; + +/** + * @author Charles Cullen + * @version 1.0.0 + * @since 01-Jul-18 + */ +public class VexHandler implements ICustomEntityHandler { + + private VersionHandler versionHandler = new VersionHandler(); + + @Override + public LivingEntity getBaseEntity(String entityType, Location spawnLocation) { + if(this.versionHandler.getVersion().isLessThan(Versions.v1_11_R1)) { + throw new NullPointerException("This feature is only implemented in version 1.11 and above of Minecraft."); + } + + return (LivingEntity) spawnLocation.getWorld().spawnEntity(spawnLocation, EntityType.VEX); + } +} diff --git a/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/VindicatorHandler.java b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/VindicatorHandler.java new file mode 100644 index 0000000..fe50b71 --- /dev/null +++ b/plugin-modules/Core/src/net/aminecraftdev/custombosses/utils/entity/handlers/VindicatorHandler.java @@ -0,0 +1,27 @@ +package net.aminecraftdev.custombosses.utils.entity.handlers; + +import net.aminecraftdev.custombosses.utils.Versions; +import net.aminecraftdev.custombosses.utils.entity.ICustomEntityHandler; +import net.aminecraftdev.custombosses.utils.version.VersionHandler; +import org.bukkit.Location; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.LivingEntity; + +/** + * @author Charles Cullen + * @version 1.0.0 + * @since 01-Jul-18 + */ +public class VindicatorHandler implements ICustomEntityHandler { + + private VersionHandler versionHandler = new VersionHandler(); + + @Override + public LivingEntity getBaseEntity(String entityType, Location spawnLocation) { + if(this.versionHandler.getVersion().isLessThan(Versions.v1_11_R1)) { + throw new NullPointerException("This feature is only implemented in version 1.11 and above of Minecraft."); + } + + return (LivingEntity) spawnLocation.getWorld().spawnEntity(spawnLocation, EntityType.VINDICATOR); + } +} diff --git a/pom.xml b/pom.xml index 890d800..459dbb8 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ - 3.0.0-SNAPSHOT-U14 + 3.0.0-SNAPSHOT-U15 CustomBosses net.aminecraftdev.custombosses.CustomBosses AMinecraftDev