From b4a9d0e9844ecb4256da79af0ae9b5774ab411e1 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Fri, 12 Mar 2021 21:17:19 +0000 Subject: [PATCH] Fixed missing nms impls --- .../proxy/v1_15_R1/CustomEntitySpawner.java | 22 +++++++++++++++++++ .../proxy/v1_15_R1/CustomIllusioner.java | 18 ++++++++------- .../proxy/v1_16_R2/CustomEntitySpawner.java | 22 +++++++++++++++++++ .../proxy/v1_16_R2/CustomIllusioner.java | 18 ++++++++------- .../proxy/v1_16_R3/CustomEntitySpawner.java | 22 +++++++++++++++++++ .../proxy/v1_16_R3/CustomIllusioner.java | 19 +++++++++++----- 6 files changed, 100 insertions(+), 21 deletions(-) create mode 100644 eco-core/core-nms/v1_15_R1/src/main/java/com/willfp/ecobosses/proxy/v1_15_R1/CustomEntitySpawner.java create mode 100644 eco-core/core-nms/v1_16_R2/src/main/java/com/willfp/ecobosses/proxy/v1_16_R2/CustomEntitySpawner.java create mode 100644 eco-core/core-nms/v1_16_R3/src/main/java/com/willfp/ecobosses/proxy/v1_16_R3/CustomEntitySpawner.java diff --git a/eco-core/core-nms/v1_15_R1/src/main/java/com/willfp/ecobosses/proxy/v1_15_R1/CustomEntitySpawner.java b/eco-core/core-nms/v1_15_R1/src/main/java/com/willfp/ecobosses/proxy/v1_15_R1/CustomEntitySpawner.java new file mode 100644 index 0000000..27317f8 --- /dev/null +++ b/eco-core/core-nms/v1_15_R1/src/main/java/com/willfp/ecobosses/proxy/v1_15_R1/CustomEntitySpawner.java @@ -0,0 +1,22 @@ +package com.willfp.ecobosses.proxy.v1_15_R1; + +import com.willfp.ecobosses.proxy.proxies.CustomEntitySpawnerProxy; +import com.willfp.ecobosses.proxy.proxies.CustomIllusionerProxy; +import com.willfp.ecobosses.proxy.util.CustomEntity; +import org.bukkit.Location; +import org.bukkit.entity.LivingEntity; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +@SuppressWarnings("unchecked") +public class CustomEntitySpawner implements CustomEntitySpawnerProxy { + @Override + public @Nullable T spawnCustomEntity(final Class> entityClass, + @NotNull final Location location) { + if (entityClass.equals(CustomIllusionerProxy.class)) { + return (T) CustomIllusioner.spawn(location); + } + + return null; + } +} diff --git a/eco-core/core-nms/v1_15_R1/src/main/java/com/willfp/ecobosses/proxy/v1_15_R1/CustomIllusioner.java b/eco-core/core-nms/v1_15_R1/src/main/java/com/willfp/ecobosses/proxy/v1_15_R1/CustomIllusioner.java index f45fe96..c43fdee 100644 --- a/eco-core/core-nms/v1_15_R1/src/main/java/com/willfp/ecobosses/proxy/v1_15_R1/CustomIllusioner.java +++ b/eco-core/core-nms/v1_15_R1/src/main/java/com/willfp/ecobosses/proxy/v1_15_R1/CustomIllusioner.java @@ -18,21 +18,18 @@ import net.minecraft.server.v1_15_R1.PathfinderGoalNearestAttackableTarget; import net.minecraft.server.v1_15_R1.PathfinderGoalRandomStroll; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_15_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_15_R1.util.CraftNamespacedKey; -import org.bukkit.persistence.PersistentDataType; +import org.bukkit.entity.Illusioner; import org.jetbrains.annotations.NotNull; public class CustomIllusioner extends EntityIllagerIllusioner implements CustomIllusionerProxy { /** * Instantiate a new custom illusioner entity. * - * @param location The location to spawn it at. + * @param location The location to spawn it at. */ public CustomIllusioner(@NotNull final Location location) { super(EntityTypes.ILLUSIONER, ((CraftWorld) location.getWorld()).getHandle()); - this.getBukkitEntity().getPersistentDataContainer().set(CraftNamespacedKey.fromString("ecobosses:type"), PersistentDataType.STRING, "custom_illusioner"); - this.setPosition(location.getX(), location.getY(), location.getZ()); this.goalSelector.a(0, new PathfinderGoalFloat(this)); @@ -51,10 +48,15 @@ public class CustomIllusioner extends EntityIllagerIllusioner implements CustomI this.targetSelector.a(3, (new PathfinderGoalNearestAttackableTarget<>(this, EntityIronGolem.class, false)).a(300)); } - @Override - public CustomIllusionerProxy spawn(@NotNull final Location location) { + /** + * Spawn illusioner. + * + * @param location The location. + * @return The illusioner. + */ + public static 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-nms/v1_16_R2/src/main/java/com/willfp/ecobosses/proxy/v1_16_R2/CustomEntitySpawner.java b/eco-core/core-nms/v1_16_R2/src/main/java/com/willfp/ecobosses/proxy/v1_16_R2/CustomEntitySpawner.java new file mode 100644 index 0000000..778bc29 --- /dev/null +++ b/eco-core/core-nms/v1_16_R2/src/main/java/com/willfp/ecobosses/proxy/v1_16_R2/CustomEntitySpawner.java @@ -0,0 +1,22 @@ +package com.willfp.ecobosses.proxy.v1_16_R2; + +import com.willfp.ecobosses.proxy.proxies.CustomEntitySpawnerProxy; +import com.willfp.ecobosses.proxy.proxies.CustomIllusionerProxy; +import com.willfp.ecobosses.proxy.util.CustomEntity; +import org.bukkit.Location; +import org.bukkit.entity.LivingEntity; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +@SuppressWarnings("unchecked") +public class CustomEntitySpawner implements CustomEntitySpawnerProxy { + @Override + public @Nullable T spawnCustomEntity(final Class> entityClass, + @NotNull final Location location) { + if (entityClass.equals(CustomIllusionerProxy.class)) { + return (T) CustomIllusioner.spawn(location); + } + + return null; + } +} diff --git a/eco-core/core-nms/v1_16_R2/src/main/java/com/willfp/ecobosses/proxy/v1_16_R2/CustomIllusioner.java b/eco-core/core-nms/v1_16_R2/src/main/java/com/willfp/ecobosses/proxy/v1_16_R2/CustomIllusioner.java index c924c7f..59768db 100644 --- a/eco-core/core-nms/v1_16_R2/src/main/java/com/willfp/ecobosses/proxy/v1_16_R2/CustomIllusioner.java +++ b/eco-core/core-nms/v1_16_R2/src/main/java/com/willfp/ecobosses/proxy/v1_16_R2/CustomIllusioner.java @@ -18,21 +18,18 @@ import net.minecraft.server.v1_16_R2.PathfinderGoalNearestAttackableTarget; import net.minecraft.server.v1_16_R2.PathfinderGoalRandomStroll; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_16_R2.CraftWorld; -import org.bukkit.craftbukkit.v1_16_R2.util.CraftNamespacedKey; -import org.bukkit.persistence.PersistentDataType; +import org.bukkit.entity.Illusioner; import org.jetbrains.annotations.NotNull; public class CustomIllusioner extends EntityIllagerIllusioner implements CustomIllusionerProxy { /** * Instantiate a new custom illusioner entity. * - * @param location The location to spawn it at. + * @param location The location to spawn it at. */ public CustomIllusioner(@NotNull final Location location) { super(EntityTypes.ILLUSIONER, ((CraftWorld) location.getWorld()).getHandle()); - this.getBukkitEntity().getPersistentDataContainer().set(CraftNamespacedKey.fromString("ecobosses:type"), PersistentDataType.STRING, "custom_illusioner"); - this.setPosition(location.getX(), location.getY(), location.getZ()); this.goalSelector.a(0, new PathfinderGoalFloat(this)); @@ -51,10 +48,15 @@ public class CustomIllusioner extends EntityIllagerIllusioner implements CustomI this.targetSelector.a(3, (new PathfinderGoalNearestAttackableTarget<>(this, EntityIronGolem.class, false)).a(300)); } - @Override - public CustomIllusionerProxy spawn(@NotNull final Location location) { + /** + * Spawn illusioner. + * + * @param location The location. + * @return The illusioner. + */ + public static 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-nms/v1_16_R3/src/main/java/com/willfp/ecobosses/proxy/v1_16_R3/CustomEntitySpawner.java b/eco-core/core-nms/v1_16_R3/src/main/java/com/willfp/ecobosses/proxy/v1_16_R3/CustomEntitySpawner.java new file mode 100644 index 0000000..cb55906 --- /dev/null +++ b/eco-core/core-nms/v1_16_R3/src/main/java/com/willfp/ecobosses/proxy/v1_16_R3/CustomEntitySpawner.java @@ -0,0 +1,22 @@ +package com.willfp.ecobosses.proxy.v1_16_R3; + +import com.willfp.ecobosses.proxy.proxies.CustomEntitySpawnerProxy; +import com.willfp.ecobosses.proxy.proxies.CustomIllusionerProxy; +import com.willfp.ecobosses.proxy.util.CustomEntity; +import org.bukkit.Location; +import org.bukkit.entity.LivingEntity; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +@SuppressWarnings("unchecked") +public class CustomEntitySpawner implements CustomEntitySpawnerProxy { + @Override + public @Nullable T spawnCustomEntity(final Class> entityClass, + @NotNull final Location location) { + if (entityClass.equals(CustomIllusionerProxy.class)) { + return (T) CustomIllusioner.spawn(location); + } + + return null; + } +} 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 f063a82..f6de909 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 @@ -18,21 +18,18 @@ import net.minecraft.server.v1_16_R3.PathfinderGoalNearestAttackableTarget; 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.persistence.PersistentDataType; +import org.bukkit.entity.Illusioner; import org.jetbrains.annotations.NotNull; public class CustomIllusioner extends EntityIllagerIllusioner implements CustomIllusionerProxy { /** * Instantiate a new custom illusioner entity. * - * @param location The location to spawn it at. + * @param location The location to spawn it at. */ public CustomIllusioner(@NotNull final Location location) { super(EntityTypes.ILLUSIONER, ((CraftWorld) location.getWorld()).getHandle()); - this.getBukkitEntity().getPersistentDataContainer().set(CraftNamespacedKey.fromString("ecobosses:type"), PersistentDataType.STRING, "custom_illusioner"); - this.setPosition(location.getX(), location.getY(), location.getZ()); this.goalSelector.a(0, new PathfinderGoalFloat(this)); @@ -50,4 +47,16 @@ 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)); } + + /** + * Spawn illusioner. + * + * @param location The location. + * @return The illusioner. + */ + public static Illusioner spawn(@NotNull final Location location) { + CustomIllusioner illusioner = new CustomIllusioner(location); + ((CraftWorld) location.getWorld()).getHandle().addEntity(illusioner); + return (Illusioner) illusioner.getBukkitEntity(); + } }