diff --git a/main/src/main/java/net/citizensnpcs/trait/BoundingBoxTrait.java b/main/src/main/java/net/citizensnpcs/trait/BoundingBoxTrait.java index 536ae14d8..8fdddb14f 100644 --- a/main/src/main/java/net/citizensnpcs/trait/BoundingBoxTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/BoundingBoxTrait.java @@ -1,16 +1,21 @@ package net.citizensnpcs.trait; -import net.citizensnpcs.api.npc.NPC.NPCUpdate; +import java.util.function.BiFunction; +import java.util.function.Supplier; + +import org.bukkit.Location; + +import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.persistence.Persist; import net.citizensnpcs.api.trait.Trait; import net.citizensnpcs.api.trait.TraitName; +import net.citizensnpcs.api.util.BoundingBox; import net.citizensnpcs.api.util.EntityDim; -import net.citizensnpcs.util.NMS; -// TODO: could set a function instead which replaces makeBoundingBox @TraitName("boundingbox") -public class BoundingBoxTrait extends Trait { +public class BoundingBoxTrait extends Trait implements Supplier { private EntityDim base; + private BiFunction function; @Persist private float height = -1; @Persist @@ -22,6 +27,17 @@ public class BoundingBoxTrait extends Trait { super("boundingbox"); } + @Override + public BoundingBox get() { + if (function != null) { + return function.apply(npc.getStoredLocation(), getAdjustedBoundingBox()); + } + Location location = npc.getEntity().getLocation(); + EntityDim dim = getAdjustedBoundingBox(); + return new BoundingBox(location.getX() - dim.width / 2, location.getY(), location.getZ() - dim.width / 2, + location.getX() + dim.width / 2, location.getY() + dim.height, location.getZ() + dim.width / 2); + } + public EntityDim getAdjustedBoundingBox() { EntityDim desired = base.clone(); if (scale != -1) { @@ -31,19 +47,23 @@ public class BoundingBoxTrait extends Trait { } @Override - public void onSpawn() { - base = EntityDim.from(npc.getEntity()); + public void onDespawn() { + npc.data().remove(NPC.Metadata.BOUNDING_BOX_FUNCTION); } @Override - public void run() { - if (!npc.isUpdating(NPCUpdate.PACKET) || !npc.isSpawned()) - return; + public void onRemove() { + onDespawn(); + } - EntityDim desired = getAdjustedBoundingBox(); - if (!desired.equals(EntityDim.from(npc.getEntity()))) { - NMS.setDimensions(npc.getEntity(), desired); - } + @Override + public void onSpawn() { + base = EntityDim.from(npc.getEntity()); + npc.data().set(NPC.Metadata.BOUNDING_BOX_FUNCTION, this); + } + + public void setBoundingBoxFunction(BiFunction func) { + this.function = func; } public void setHeight(float height) { diff --git a/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java b/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java index 88a9ed59c..173d70112 100644 --- a/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java @@ -98,9 +98,9 @@ public class HologramTrait extends Trait { Material item = SpigotUtil.isUsing1_13API() ? Material.matchMaterial(itemMatcher.group(1), false) : Material.matchMaterial(itemMatcher.group(1)); NPC itemNPC = registry.createNPCUsingItem(EntityType.DROPPED_ITEM, "", new ItemStack(item, 1)); - if (itemMatcher.groupCount() > 1) { + if (itemMatcher.group(2) != null) { itemNPC.getOrAddTrait(ScoreboardTrait.class) - .setColor(Util.matchEnum(ChatColor.values(), itemMatcher.group(2))); + .setColor(Util.matchEnum(ChatColor.values(), itemMatcher.group(2).substring(1))); } itemNPC.spawn(currentLoc); ((ArmorStand) hologramNPC.getEntity()).addPassenger(itemNPC.getEntity()); @@ -405,5 +405,5 @@ public class HologramTrait extends Trait { } } - private static final Pattern ITEM_MATCHER = Pattern.compile("|"); + private static final Pattern ITEM_MATCHER = Pattern.compile(""); } diff --git a/main/src/main/java/net/citizensnpcs/util/NMS.java b/main/src/main/java/net/citizensnpcs/util/NMS.java index b502e9efb..8ef662089 100644 --- a/main/src/main/java/net/citizensnpcs/util/NMS.java +++ b/main/src/main/java/net/citizensnpcs/util/NMS.java @@ -7,7 +7,10 @@ import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.Collection; import java.util.List; +import java.util.function.Consumer; +import java.util.function.Supplier; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -35,6 +38,8 @@ import net.citizensnpcs.api.ai.NavigatorParameters; import net.citizensnpcs.api.astar.pathfinder.SwimmingExaminer; import net.citizensnpcs.api.command.CommandManager; import net.citizensnpcs.api.command.exception.CommandException; +import net.citizensnpcs.api.event.NPCEnderTeleportEvent; +import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.jnbt.CompoundTag; import net.citizensnpcs.api.npc.BlockBreaker; import net.citizensnpcs.api.npc.BlockBreaker.BlockBreakerConfiguration; @@ -70,6 +75,15 @@ public class NMS { BRIDGE.attack(attacker, bukkitTarget); } + public static void callKnockbackEvent(NPC npc, float strength, double dx, double dz, + Consumer cb) { + NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); + Bukkit.getPluginManager().callEvent(event); + if (!event.isCancelled()) { + cb.accept(event); + } + } + public static void cancelMoveDestination(Entity entity) { BRIDGE.cancelMoveDestination(entity); }/* @@ -77,6 +91,18 @@ public class NMS { * an Exception like it should. */ + public static void enderTeleportTo(NPC npc, double x, double y, double z, Runnable cb) { + if (npc == null) { + cb.run(); + return; + } + NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); + Bukkit.getPluginManager().callEvent(event); + if (!event.isCancelled()) { + cb.run(); + } + } + public static GameProfile fillProfileProperties(GameProfile profile, boolean requireSecure) throws Throwable { return BRIDGE.fillProfileProperties(profile, requireSecure); } @@ -433,6 +459,18 @@ public class NMS { } } + public static boolean isLeashed(NPC npc, Supplier isLeashed, Runnable unleash) { + if (npc == null) + return isLeashed.get(); + boolean protectedDefault = npc.isProtected(); + if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) + return isLeashed.get(); + if (isLeashed.get()) { + unleash.run(); + } + return false; + } + public static boolean isOnGround(org.bukkit.entity.Entity entity) { return BRIDGE.isOnGround(entity); } diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/BatController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/BatController.java index 1130a7483..0f3bf4197 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/BatController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/BatController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.entity.Bat; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityBat; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -59,14 +60,15 @@ public class BatController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -96,13 +98,7 @@ public class BatController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -132,16 +128,7 @@ public class BatController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) { - return super.isLeashed(); - } - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/BlazeController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/BlazeController.java index e52ad8b7a..cb8a7fb6a 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/BlazeController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/BlazeController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.entity.Blaze; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityBlaze; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -56,14 +57,15 @@ public class BlazeController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -93,13 +95,7 @@ public class BlazeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CaveSpiderController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CaveSpiderController.java index a4f656537..fd120198c 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CaveSpiderController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CaveSpiderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.entity.CaveSpider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityCaveSpider; @@ -58,6 +59,11 @@ public class CaveSpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -67,12 +73,8 @@ public class CaveSpiderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -109,13 +111,7 @@ public class CaveSpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ChickenController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ChickenController.java index 3aaf73f98..6f4827185 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ChickenController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ChickenController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.entity.Chicken; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityChicken; @@ -58,6 +59,11 @@ public class ChickenController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -78,12 +84,8 @@ public class ChickenController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -120,13 +122,7 @@ public class ChickenController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CowController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CowController.java index 8d33b4a44..93d22468b 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CowController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CowController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.entity.Cow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityCow; @@ -62,6 +63,11 @@ public class CowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -82,12 +88,8 @@ public class CowController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -135,13 +137,7 @@ public class CowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CreeperController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CreeperController.java index 04a28699e..94bf24a6a 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CreeperController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CreeperController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.entity.Creeper; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityCreeper; @@ -64,6 +65,11 @@ public class CreeperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -73,12 +79,8 @@ public class CreeperController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,13 +121,7 @@ public class CreeperController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EnderDragonController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EnderDragonController.java index 2cf38145b..1dbd350b6 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EnderDragonController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EnderDragonController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.entity.EnderDragon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityEnderDragon; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -56,14 +57,15 @@ public class EnderDragonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -92,13 +94,7 @@ public class EnderDragonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EndermanController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EndermanController.java index 16c584a46..25198b02d 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EndermanController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EndermanController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.entity.Enderman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityEnderman; @@ -58,6 +59,11 @@ public class EndermanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -67,12 +73,8 @@ public class EndermanController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -108,13 +110,7 @@ public class EndermanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EndermiteController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EndermiteController.java index 3bc9a5d2e..2d9f7d654 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EndermiteController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EndermiteController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity; import org.bukkit.entity.Endermite; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityEndermite; @@ -58,6 +59,11 @@ public class EndermiteController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -67,12 +73,8 @@ public class EndermiteController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -108,13 +110,7 @@ public class EndermiteController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GhastController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GhastController.java index 405295b46..281093940 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GhastController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GhastController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftGhast; import org.bukkit.entity.Ghast; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityGhast; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -42,14 +43,15 @@ public class GhastController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -84,13 +86,7 @@ public class GhastController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GiantController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GiantController.java index 03fab3ac5..dc9a96f12 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GiantController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GiantController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftGiant; import org.bukkit.entity.Giant; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityGiantZombie; @@ -44,6 +45,11 @@ public class GiantController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class GiantController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class GiantController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GuardianController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GuardianController.java index 3e21cde9e..ee43af075 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GuardianController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GuardianController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftGuardian; import org.bukkit.entity.Guardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityGuardian; @@ -44,6 +45,11 @@ public class GuardianController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class GuardianController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -95,13 +97,7 @@ public class GuardianController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HorseController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HorseController.java index f1b7cc8a3..18fb9077e 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HorseController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HorseController.java @@ -8,15 +8,15 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftHorse; import org.bukkit.entity.Horse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityHorse; @@ -30,17 +30,17 @@ public class HorseController extends MobEntityController { super(EntityHorseNPC.class); } - @Override - public Horse getBukkitEntity() { - return (Horse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Horse getBukkitEntity() { + return (Horse) super.getBukkitEntity(); + } + public static class EntityHorseNPC extends EntityHorse implements NPCHolder { private final CitizensNPC npc; @@ -56,6 +56,11 @@ public class HorseController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -76,12 +81,8 @@ public class HorseController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -126,13 +127,7 @@ public class HorseController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/IronGolemController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/IronGolemController.java index ccd73e58c..3f0cec858 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/IronGolemController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/IronGolemController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftIronGolem; import org.bukkit.entity.IronGolem; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityIronGolem; @@ -44,6 +45,11 @@ public class IronGolemController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class IronGolemController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class IronGolemController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MagmaCubeController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MagmaCubeController.java index 5380564d3..a49440523 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MagmaCubeController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MagmaCubeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftMagmaCube; import org.bukkit.entity.MagmaCube; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityHuman; @@ -50,6 +51,11 @@ public class MagmaCubeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -59,12 +65,8 @@ public class MagmaCubeController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -107,13 +109,7 @@ public class MagmaCubeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MushroomCowController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MushroomCowController.java index d45ddd30d..c19637aae 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MushroomCowController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MushroomCowController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftMushroomCow; import org.bukkit.entity.MushroomCow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityHuman; @@ -48,6 +49,11 @@ public class MushroomCowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -68,12 +74,8 @@ public class MushroomCowController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -116,13 +118,7 @@ public class MushroomCowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/OcelotController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/OcelotController.java index e812daff5..0073d9e3d 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/OcelotController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/OcelotController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftOcelot; import org.bukkit.entity.Ocelot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityOcelot; @@ -44,6 +45,11 @@ public class OcelotController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -64,12 +70,8 @@ public class OcelotController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -112,13 +114,7 @@ public class OcelotController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PigController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PigController.java index d02d11f6f..c43b84362 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PigController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PigController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPig; import org.bukkit.entity.Pig; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityLightning; @@ -45,6 +46,11 @@ public class PigController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -65,12 +71,8 @@ public class PigController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -115,13 +117,7 @@ public class PigController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PigZombieController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PigZombieController.java index 6fcebce1e..d99edf4ce 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PigZombieController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PigZombieController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPigZombie; import org.bukkit.entity.PigZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityPigZombie; @@ -45,6 +46,11 @@ public class PigZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class PigZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -95,13 +97,7 @@ public class PigZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PolarBearController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PolarBearController.java index 2ed385281..3fa89e7f7 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PolarBearController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PolarBearController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPolarBear; import org.bukkit.entity.PolarBear; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityPolarBear; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -42,6 +43,11 @@ public class PolarBearController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -55,12 +61,8 @@ public class PolarBearController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -90,13 +92,7 @@ public class PolarBearController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -126,16 +122,7 @@ public class PolarBearController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) { - return super.isLeashed(); - } - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/RabbitController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/RabbitController.java index fe41c145f..5c8679025 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/RabbitController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/RabbitController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftRabbit; import org.bukkit.entity.Rabbit; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityLiving; @@ -45,6 +46,11 @@ public class RabbitController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -65,12 +71,8 @@ public class RabbitController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -107,13 +109,7 @@ public class RabbitController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SheepController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SheepController.java index 0f73fdc3f..a101ec39b 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SheepController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SheepController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSheep; import org.bukkit.entity.Sheep; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntitySheep; @@ -44,6 +45,11 @@ public class SheepController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -64,12 +70,8 @@ public class SheepController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -105,13 +107,7 @@ public class SheepController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ShulkerController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ShulkerController.java index 80823cb87..371f0d769 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ShulkerController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ShulkerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftShulker; import org.bukkit.entity.Shulker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityAIBodyControl; @@ -45,6 +46,11 @@ public class ShulkerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class ShulkerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -95,13 +97,7 @@ public class ShulkerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SilverfishController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SilverfishController.java index f116c3345..603ce6b46 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SilverfishController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SilverfishController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSilverfish; import org.bukkit.entity.Silverfish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntitySilverfish; @@ -44,6 +45,11 @@ public class SilverfishController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class SilverfishController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class SilverfishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SkeletonController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SkeletonController.java index 4e8ecb3da..24c633ead 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SkeletonController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SkeletonController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSkeleton; import org.bukkit.entity.Skeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntitySkeleton; @@ -44,6 +45,11 @@ public class SkeletonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class SkeletonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class SkeletonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SlimeController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SlimeController.java index 046f5594c..e061191fb 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SlimeController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SlimeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSlime; import org.bukkit.entity.Slime; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_10_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityHuman; @@ -50,6 +51,11 @@ public class SlimeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -59,12 +65,8 @@ public class SlimeController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -108,13 +110,7 @@ public class SlimeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SnowmanController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SnowmanController.java index e36c7640d..f7f05d235 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SnowmanController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SnowmanController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSnowman; import org.bukkit.entity.Snowman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntitySnowman; @@ -44,6 +45,11 @@ public class SnowmanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class SnowmanController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class SnowmanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SpiderController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SpiderController.java index f13797192..4d7745927 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SpiderController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SpiderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSpider; import org.bukkit.entity.Spider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntitySpider; @@ -44,6 +45,11 @@ public class SpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class SpiderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class SpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SquidController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SquidController.java index 6c3530e48..9515e7857 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SquidController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SquidController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftSquid; import org.bukkit.entity.Squid; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntitySquid; @@ -44,6 +45,11 @@ public class SquidController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class SquidController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class SquidController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/VillagerController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/VillagerController.java index a5245ca6b..99675d2ce 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/VillagerController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/VillagerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftVillager; import org.bukkit.entity.Villager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityHuman; @@ -50,6 +51,11 @@ public class VillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -70,12 +76,8 @@ public class VillagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -129,13 +131,7 @@ public class VillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WitchController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WitchController.java index 1d09da85f..b15e91535 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WitchController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WitchController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftWitch; import org.bukkit.entity.Witch; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityWitch; @@ -44,6 +45,11 @@ public class WitchController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class WitchController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class WitchController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WitherController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WitherController.java index 67c897f85..3d53603e2 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WitherController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WitherController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftWither; import org.bukkit.entity.Wither; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityWither; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -42,14 +43,15 @@ public class WitherController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -84,13 +86,7 @@ public class WitherController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WolfController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WolfController.java index 0ec2b577a..87c6733ef 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WolfController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WolfController.java @@ -8,13 +8,14 @@ import org.bukkit.entity.Wolf; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityLiving; @@ -46,6 +47,11 @@ public class WolfController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -66,12 +72,8 @@ public class WolfController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -108,13 +110,7 @@ public class WolfController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ZombieController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ZombieController.java index 47f065c75..5a4d2a900 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ZombieController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ZombieController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftZombie; import org.bukkit.entity.Zombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Entity; import net.minecraft.server.v1_10_R1.EntityZombie; @@ -44,6 +45,11 @@ public class ZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class ZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class ZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/AreaEffectCloudController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/AreaEffectCloudController.java index 343fd406d..1eb95408a 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/AreaEffectCloudController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/AreaEffectCloudController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityAreaEffectCloud; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -52,6 +54,11 @@ public class AreaEffectCloudController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ArmorStandController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ArmorStandController.java index 286820c61..2feadeed1 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ArmorStandController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ArmorStandController.java @@ -11,10 +11,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityArmorStand; import net.minecraft.server.v1_10_R1.EntityHuman; import net.minecraft.server.v1_10_R1.EnumHand; @@ -60,6 +62,11 @@ public class ArmorStandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, ItemStack itemstack, EnumHand enumhand) { if (npc == null) { diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/BoatController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/BoatController.java index 59b5b3874..60bdc6562 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/BoatController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/BoatController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityBoat; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -53,6 +55,11 @@ public class BoatController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/DragonFireballController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/DragonFireballController.java index bd0df5680..2699ff828 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/DragonFireballController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/DragonFireballController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityDragonFireball; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -53,6 +55,11 @@ public class DragonFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EggController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EggController.java index e19924cf9..f51d27749 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EggController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EggController.java @@ -11,10 +11,12 @@ import org.bukkit.entity.Entity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityEgg; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -68,6 +70,11 @@ public class EggController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderCrystalController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderCrystalController.java index 99789131a..249a501f8 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderCrystalController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderCrystalController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityEnderCrystal; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -52,6 +54,11 @@ public class EnderCrystalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderPearlController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderPearlController.java index 8fc9796b6..58a3c031e 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderPearlController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderPearlController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityEnderPearl; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -52,6 +54,11 @@ public class EnderPearlController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderSignalController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderSignalController.java index 9a86cd809..fe721f5a3 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderSignalController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderSignalController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityEnderSignal; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -52,6 +54,11 @@ public class EnderSignalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ExperienceOrbController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ExperienceOrbController.java index 8e63cd0c2..f8b9ff3e0 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ExperienceOrbController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ExperienceOrbController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityExperienceOrb; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -38,6 +40,11 @@ public class ExperienceOrbController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FallingBlockController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FallingBlockController.java index 02c5eaada..7aad0b3b4 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FallingBlockController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FallingBlockController.java @@ -12,11 +12,13 @@ import org.bukkit.entity.FallingBlock; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.Block; import net.minecraft.server.v1_10_R1.EntityFallingBlock; import net.minecraft.server.v1_10_R1.IBlockData; @@ -60,6 +62,11 @@ public class FallingBlockController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FireworkController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FireworkController.java index 0bcfabde1..e2e42447f 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FireworkController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FireworkController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityFireworks; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -38,6 +40,11 @@ public class FireworkController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FishingHookController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FishingHookController.java index 0732871ed..965ac0b85 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FishingHookController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FishingHookController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityFishingHook; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -38,6 +40,11 @@ public class FishingHookController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemController.java index 70c12ea8f..90a8b8eae 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemController.java @@ -11,10 +11,12 @@ import org.bukkit.entity.Item; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityHuman; import net.minecraft.server.v1_10_R1.EntityItem; import net.minecraft.server.v1_10_R1.ItemStack; @@ -51,6 +53,11 @@ public class ItemController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemFrameController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemFrameController.java index d54aa7596..4dc963184 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemFrameController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemFrameController.java @@ -11,9 +11,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.EntityItemFrame; import net.minecraft.server.v1_10_R1.EnumDirection; @@ -51,6 +53,11 @@ public class ItemFrameController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LargeFireballController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LargeFireballController.java index 899dd3b97..8f7029c11 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LargeFireballController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LargeFireballController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityLargeFireball; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -39,6 +41,11 @@ public class LargeFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LeashController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LeashController.java index e9b28a06e..9683d22ea 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LeashController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LeashController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityLeash; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -38,6 +40,11 @@ public class LeashController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartChestController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartChestController.java index 1fbbacc95..414a9d9c6 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartChestController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartChestController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityMinecartChest; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -39,6 +41,11 @@ public class MinecartChestController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartCommandController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartCommandController.java index d61f0aa93..14b8a5205 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartCommandController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartCommandController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityMinecartCommandBlock; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -39,6 +41,11 @@ public class MinecartCommandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartFurnaceController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartFurnaceController.java index f7216533b..8cab7a1d8 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartFurnaceController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartFurnaceController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityMinecartFurnace; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -39,6 +41,11 @@ public class MinecartFurnaceController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartHopperController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartHopperController.java index 5c24557fb..348d838ef 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartHopperController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartHopperController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityMinecartHopper; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -35,6 +37,11 @@ public class MinecartHopperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartRideableController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartRideableController.java index 3c9fde03b..8a3b0e494 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartRideableController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartRideableController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityMinecartRideable; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -39,6 +41,11 @@ public class MinecartRideableController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartSpawnerController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartSpawnerController.java index f0f9de980..741b6916c 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartSpawnerController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartSpawnerController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityMinecartMobSpawner; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -35,6 +37,11 @@ public class MinecartSpawnerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartTNTController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartTNTController.java index 9ebdce06a..2c214d3e5 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartTNTController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartTNTController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityMinecartTNT; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -35,6 +37,11 @@ public class MinecartTNTController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/PaintingController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/PaintingController.java index 1cf22ef75..ab1900e76 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/PaintingController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/PaintingController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityPainting; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -38,6 +40,11 @@ public class PaintingController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ShulkerBulletController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ShulkerBulletController.java index 22f6f439c..03393ea22 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ShulkerBulletController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ShulkerBulletController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityShulkerBullet; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -38,6 +40,11 @@ public class ShulkerBulletController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SmallFireballController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SmallFireballController.java index 274e09187..1bde2cd5a 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SmallFireballController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SmallFireballController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntitySmallFireball; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -38,6 +40,11 @@ public class SmallFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SnowballController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SnowballController.java index 5bd25d9d7..954e4f8b9 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SnowballController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SnowballController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntitySnowball; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -38,6 +40,11 @@ public class SnowballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SpectralArrowController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SpectralArrowController.java index 99994fb53..3aa70bb5f 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SpectralArrowController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SpectralArrowController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntitySpectralArrow; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -38,6 +40,11 @@ public class SpectralArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TNTPrimedController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TNTPrimedController.java index cc688b6ae..9f5398f2e 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TNTPrimedController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TNTPrimedController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityTNTPrimed; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -38,6 +40,11 @@ public class TNTPrimedController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ThrownExpBottleController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ThrownExpBottleController.java index f317ca0e9..262a2f7b3 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ThrownExpBottleController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ThrownExpBottleController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityThrownExpBottle; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -38,6 +40,11 @@ public class ThrownExpBottleController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ThrownPotionController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ThrownPotionController.java index 7cb43922f..4941ea95f 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ThrownPotionController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ThrownPotionController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityPotion; import net.minecraft.server.v1_10_R1.Items; import net.minecraft.server.v1_10_R1.NBTTagCompound; @@ -39,6 +41,11 @@ public class ThrownPotionController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TippedArrowController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TippedArrowController.java index 2477e3ddf..85c30034e 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TippedArrowController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TippedArrowController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityTippedArrow; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -38,6 +40,11 @@ public class TippedArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/WitherSkullController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/WitherSkullController.java index ffde443e9..3922f27ab 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/WitherSkullController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/WitherSkullController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_10_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.EntityWitherSkull; import net.minecraft.server.v1_10_R1.NBTTagCompound; import net.minecraft.server.v1_10_R1.World; @@ -38,6 +40,11 @@ public class WitherSkullController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_10_R1.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSBoundingBox.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSBoundingBox.java new file mode 100644 index 000000000..ec179d058 --- /dev/null +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSBoundingBox.java @@ -0,0 +1,21 @@ +package net.citizensnpcs.nms.v1_10_R1.util; + +import java.util.function.Supplier; + +import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.util.BoundingBox; +import net.minecraft.server.v1_10_R1.AxisAlignedBB; + +public class NMSBoundingBox { + private NMSBoundingBox() { + } + + public static AxisAlignedBB convert(BoundingBox box) { + return new AxisAlignedBB(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ); + } + + public static AxisAlignedBB makeBB(NPC npc, AxisAlignedBB def) { + return npc == null || !npc.data().has(NPC.Metadata.BOUNDING_BOX_FUNCTION) ? def + : convert(npc.data().> get(NPC.Metadata.BOUNDING_BOX_FUNCTION).get()); + } +} diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/BatController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/BatController.java index 31f3e6aed..88d61d423 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/BatController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/BatController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.entity.Bat; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityBat; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -59,14 +60,15 @@ public class BatController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -96,13 +98,7 @@ public class BatController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/BlazeController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/BlazeController.java index 0cb5d0ca9..9272488b8 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/BlazeController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/BlazeController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.entity.Blaze; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityBlaze; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -56,14 +57,15 @@ public class BlazeController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -93,13 +95,7 @@ public class BlazeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -130,15 +126,7 @@ public class BlazeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/CaveSpiderController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/CaveSpiderController.java index 9a26dc8f0..5671676f8 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/CaveSpiderController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/CaveSpiderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.entity.CaveSpider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityCaveSpider; @@ -58,6 +59,11 @@ public class CaveSpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -67,12 +73,8 @@ public class CaveSpiderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -109,13 +111,7 @@ public class CaveSpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ChickenController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ChickenController.java index f317c528a..ebd9900f7 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ChickenController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ChickenController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.entity.Chicken; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityChicken; @@ -58,6 +59,11 @@ public class ChickenController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -78,12 +84,8 @@ public class ChickenController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -120,13 +122,7 @@ public class ChickenController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -166,15 +162,7 @@ public class ChickenController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/CowController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/CowController.java index b3ef57bad..b63e16818 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/CowController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/CowController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.entity.Cow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityCow; @@ -62,6 +63,11 @@ public class CowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -82,12 +88,8 @@ public class CowController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -135,13 +137,7 @@ public class CowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -181,15 +177,7 @@ public class CowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/CreeperController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/CreeperController.java index eb3ab92da..1ba82d530 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/CreeperController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/CreeperController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.entity.Creeper; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityCreeper; @@ -61,6 +62,11 @@ public class CreeperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -70,12 +76,8 @@ public class CreeperController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -111,13 +113,7 @@ public class CreeperController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -157,15 +153,7 @@ public class CreeperController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EnderDragonController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EnderDragonController.java index b5cc77ee1..7d6bcaa46 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EnderDragonController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EnderDragonController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.entity.EnderDragon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityEnderDragon; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -56,14 +57,15 @@ public class EnderDragonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -92,13 +94,7 @@ public class EnderDragonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -129,15 +125,7 @@ public class EnderDragonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EndermanController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EndermanController.java index 77e1c9341..8e6279eaf 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EndermanController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EndermanController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.entity.Enderman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityEnderman; @@ -58,6 +59,11 @@ public class EndermanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -67,12 +73,8 @@ public class EndermanController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -108,13 +110,7 @@ public class EndermanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -154,15 +150,7 @@ public class EndermanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EndermiteController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EndermiteController.java index 6f8c611c8..e4e33a8fc 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EndermiteController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EndermiteController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.entity.Endermite; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityEndermite; @@ -58,6 +59,11 @@ public class EndermiteController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -67,12 +73,8 @@ public class EndermiteController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -108,13 +110,7 @@ public class EndermiteController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -154,15 +150,7 @@ public class EndermiteController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EvokerController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EvokerController.java index 5c996d5ad..0d3bff3bc 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EvokerController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EvokerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEvoker; import org.bukkit.entity.Evoker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityEvoker; @@ -44,6 +45,11 @@ public class EvokerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class EvokerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -95,13 +97,7 @@ public class EvokerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -141,15 +137,7 @@ public class EvokerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GhastController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GhastController.java index b53fcedc7..362ccdc09 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GhastController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GhastController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftGhast; import org.bukkit.entity.Ghast; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityGhast; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -42,14 +43,15 @@ public class GhastController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -84,13 +86,7 @@ public class GhastController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -121,15 +117,7 @@ public class GhastController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GiantController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GiantController.java index a3ea911cc..13015cef7 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GiantController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GiantController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftGiant; import org.bukkit.entity.Giant; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityGiantZombie; @@ -44,6 +45,11 @@ public class GiantController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class GiantController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class GiantController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -140,15 +136,7 @@ public class GiantController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GuardianController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GuardianController.java index 97a04c2e4..05d2ef482 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GuardianController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GuardianController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftGuardian; import org.bukkit.entity.Guardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityGuardian; @@ -44,6 +45,11 @@ public class GuardianController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class GuardianController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -95,13 +97,7 @@ public class GuardianController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -141,15 +137,7 @@ public class GuardianController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GuardianElderController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GuardianElderController.java index 34fec045f..003d7e401 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GuardianElderController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/GuardianElderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.entity.ElderGuardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityGuardianElder; @@ -44,6 +45,11 @@ public class GuardianElderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class GuardianElderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -95,13 +97,7 @@ public class GuardianElderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -141,15 +137,7 @@ public class GuardianElderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseController.java index 755b6832d..1e19a913b 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseController.java @@ -8,15 +8,15 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftHorse; import org.bukkit.entity.Horse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHorse; @@ -30,17 +30,17 @@ public class HorseController extends MobEntityController { super(EntityHorseNPC.class); } - @Override - public Horse getBukkitEntity() { - return (Horse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Horse getBukkitEntity() { + return (Horse) super.getBukkitEntity(); + } + public static class EntityHorseNPC extends EntityHorse implements NPCHolder { private final CitizensNPC npc; @@ -56,6 +56,11 @@ public class HorseController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -76,12 +81,8 @@ public class HorseController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -118,13 +119,7 @@ public class HorseController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -164,15 +159,7 @@ public class HorseController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseDonkeyController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseDonkeyController.java index 28d6e5561..5b3527f7a 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseDonkeyController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseDonkeyController.java @@ -8,15 +8,15 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity; import org.bukkit.entity.Donkey; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHorseDonkey; @@ -30,17 +30,17 @@ public class HorseDonkeyController extends MobEntityController { super(EntityHorseDonkeyNPC.class); } - @Override - public Donkey getBukkitEntity() { - return (Donkey) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.addTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Donkey getBukkitEntity() { + return (Donkey) super.getBukkitEntity(); + } + public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { private final CitizensNPC npc; @@ -56,6 +56,11 @@ public class HorseDonkeyController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -76,12 +81,8 @@ public class HorseDonkeyController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -118,13 +119,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -164,15 +159,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseMuleController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseMuleController.java index 64ce6f936..f4263d0ac 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseMuleController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseMuleController.java @@ -8,15 +8,15 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftMule; import org.bukkit.entity.Mule; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHorseMule; @@ -30,17 +30,17 @@ public class HorseMuleController extends MobEntityController { super(EntityHorseMuleNPC.class); } - @Override - public Mule getBukkitEntity() { - return (Mule) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Mule getBukkitEntity() { + return (Mule) super.getBukkitEntity(); + } + public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { private final CitizensNPC npc; @@ -56,6 +56,11 @@ public class HorseMuleController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -76,12 +81,8 @@ public class HorseMuleController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -118,13 +119,7 @@ public class HorseMuleController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -164,15 +159,7 @@ public class HorseMuleController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseSkeletonController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseSkeletonController.java index 27305a424..d5d79c279 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseSkeletonController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseSkeletonController.java @@ -8,15 +8,15 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftSkeletonHorse; import org.bukkit.entity.SkeletonHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHorseSkeleton; @@ -30,17 +30,17 @@ public class HorseSkeletonController extends MobEntityController { super(EntityHorseSkeletonNPC.class); } - @Override - public SkeletonHorse getBukkitEntity() { - return (SkeletonHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public SkeletonHorse getBukkitEntity() { + return (SkeletonHorse) super.getBukkitEntity(); + } + public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { private final CitizensNPC npc; @@ -57,6 +57,11 @@ public class HorseSkeletonController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -77,12 +82,8 @@ public class HorseSkeletonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,13 +120,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -165,15 +160,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseZombieController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseZombieController.java index ed0176d51..ae5b0b230 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseZombieController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HorseZombieController.java @@ -8,15 +8,15 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftZombieHorse; import org.bukkit.entity.ZombieHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHorseZombie; @@ -30,17 +30,17 @@ public class HorseZombieController extends MobEntityController { super(EntityHorseZombieNPC.class); } - @Override - public ZombieHorse getBukkitEntity() { - return (ZombieHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public ZombieHorse getBukkitEntity() { + return (ZombieHorse) super.getBukkitEntity(); + } + public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { private final CitizensNPC npc; @@ -57,6 +57,11 @@ public class HorseZombieController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -77,12 +82,8 @@ public class HorseZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,13 +120,7 @@ public class HorseZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -165,15 +160,7 @@ public class HorseZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/IronGolemController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/IronGolemController.java index 12f27ac04..31dd61bce 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/IronGolemController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/IronGolemController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftIronGolem; import org.bukkit.entity.IronGolem; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityIronGolem; @@ -44,6 +45,11 @@ public class IronGolemController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class IronGolemController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class IronGolemController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -140,15 +136,7 @@ public class IronGolemController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/LlamaController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/LlamaController.java index b1eaf8c23..23265a8d7 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/LlamaController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/LlamaController.java @@ -8,15 +8,15 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftLlama; import org.bukkit.entity.Llama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityLlama; @@ -30,17 +30,17 @@ public class LlamaController extends MobEntityController { super(EntityLlamaNPC.class); } - @Override - public Llama getBukkitEntity() { - return (Llama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Llama getBukkitEntity() { + return (Llama) super.getBukkitEntity(); + } + public static class EntityLlamaNPC extends EntityLlama implements NPCHolder { private final CitizensNPC npc; @@ -56,6 +56,11 @@ public class LlamaController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -76,12 +81,8 @@ public class LlamaController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -118,13 +119,7 @@ public class LlamaController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -164,15 +159,7 @@ public class LlamaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MagmaCubeController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MagmaCubeController.java index c57b509a6..30679ecee 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MagmaCubeController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MagmaCubeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftMagmaCube; import org.bukkit.entity.MagmaCube; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHuman; @@ -50,6 +51,11 @@ public class MagmaCubeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -59,12 +65,8 @@ public class MagmaCubeController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -115,13 +117,7 @@ public class MagmaCubeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -161,15 +157,7 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MushroomCowController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MushroomCowController.java index 17fdb9ae0..0c068219c 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MushroomCowController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MushroomCowController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftMushroomCow; import org.bukkit.entity.MushroomCow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHuman; @@ -47,6 +48,11 @@ public class MushroomCowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -67,12 +73,8 @@ public class MushroomCowController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -115,13 +117,7 @@ public class MushroomCowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -161,15 +157,7 @@ public class MushroomCowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/OcelotController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/OcelotController.java index 4e8320b82..875579c2b 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/OcelotController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/OcelotController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftOcelot; import org.bukkit.entity.Ocelot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityOcelot; @@ -44,6 +45,11 @@ public class OcelotController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -64,12 +70,8 @@ public class OcelotController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -112,13 +114,7 @@ public class OcelotController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -158,15 +154,7 @@ public class OcelotController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/PigController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/PigController.java index d98e96b24..ba9883098 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/PigController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/PigController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPig; import org.bukkit.entity.Pig; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityLightning; @@ -45,6 +46,11 @@ public class PigController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -65,12 +71,8 @@ public class PigController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -113,13 +115,7 @@ public class PigController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -159,15 +155,7 @@ public class PigController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/PigZombieController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/PigZombieController.java index 848f9e79e..5907e01bc 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/PigZombieController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/PigZombieController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPigZombie; import org.bukkit.entity.PigZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityPigZombie; @@ -45,6 +46,11 @@ public class PigZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class PigZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -95,13 +97,7 @@ public class PigZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -141,15 +137,7 @@ public class PigZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/PolarBearController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/PolarBearController.java index c8c60c4e2..bca09a3e0 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/PolarBearController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/PolarBearController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPolarBear; import org.bukkit.entity.PolarBear; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityPolarBear; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -42,6 +43,11 @@ public class PolarBearController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -55,12 +61,8 @@ public class PolarBearController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -90,13 +92,7 @@ public class PolarBearController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/RabbitController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/RabbitController.java index 3889810dd..58de2658e 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/RabbitController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/RabbitController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftRabbit; import org.bukkit.entity.Rabbit; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityLiving; @@ -45,6 +46,11 @@ public class RabbitController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -65,12 +71,8 @@ public class RabbitController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -107,13 +109,7 @@ public class RabbitController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -158,15 +154,7 @@ public class RabbitController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SheepController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SheepController.java index dd4dd77ba..01f13ccf7 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SheepController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SheepController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftSheep; import org.bukkit.entity.Sheep; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySheep; @@ -44,6 +45,11 @@ public class SheepController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -64,12 +70,8 @@ public class SheepController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -105,13 +107,7 @@ public class SheepController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -151,15 +147,7 @@ public class SheepController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ShulkerController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ShulkerController.java index 9e3529090..35a2af843 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ShulkerController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ShulkerController.java @@ -8,13 +8,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftShulker; import org.bukkit.entity.Shulker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityAIBodyControl; @@ -46,6 +47,11 @@ public class ShulkerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -55,12 +61,8 @@ public class ShulkerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -105,13 +107,7 @@ public class ShulkerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -150,15 +146,7 @@ public class ShulkerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SilverfishController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SilverfishController.java index 6cb741401..c8b9adf01 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SilverfishController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SilverfishController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftSilverfish; import org.bukkit.entity.Silverfish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySilverfish; @@ -44,6 +45,11 @@ public class SilverfishController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class SilverfishController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class SilverfishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -139,15 +135,7 @@ public class SilverfishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SkeletonController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SkeletonController.java index 1204c9f25..7501be81a 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SkeletonController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SkeletonController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftSkeleton; import org.bukkit.entity.Skeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySkeleton; @@ -44,6 +45,11 @@ public class SkeletonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class SkeletonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class SkeletonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -139,15 +135,7 @@ public class SkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SkeletonStrayController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SkeletonStrayController.java index 2585d1766..5060d0b93 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SkeletonStrayController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SkeletonStrayController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftStray; import org.bukkit.entity.Stray; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySkeletonStray; @@ -44,6 +45,11 @@ public class SkeletonStrayController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class SkeletonStrayController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -139,15 +135,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SkeletonWitherController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SkeletonWitherController.java index ab457a6dd..a92f4b706 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SkeletonWitherController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SkeletonWitherController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftWitherSkeleton; import org.bukkit.entity.WitherSkeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySkeletonWither; @@ -44,6 +45,11 @@ public class SkeletonWitherController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class SkeletonWitherController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -139,15 +135,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SlimeController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SlimeController.java index 16365f082..20bacd7fa 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SlimeController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SlimeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftSlime; import org.bukkit.entity.Slime; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_11_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHuman; @@ -50,6 +51,11 @@ public class SlimeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -59,12 +65,8 @@ public class SlimeController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -116,13 +118,7 @@ public class SlimeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -161,15 +157,7 @@ public class SlimeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SnowmanController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SnowmanController.java index d570c4b3f..a0359d018 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SnowmanController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SnowmanController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftSnowman; import org.bukkit.entity.Snowman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySnowman; @@ -44,6 +45,11 @@ public class SnowmanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class SnowmanController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class SnowmanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -139,15 +135,7 @@ public class SnowmanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SpiderController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SpiderController.java index fc1a53dae..c128bbd9b 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SpiderController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SpiderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftSpider; import org.bukkit.entity.Spider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySpider; @@ -44,6 +45,11 @@ public class SpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class SpiderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class SpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -139,15 +135,7 @@ public class SpiderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SquidController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SquidController.java index 6dcca4fc5..4db1a38f4 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SquidController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/SquidController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftSquid; import org.bukkit.entity.Squid; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntitySquid; @@ -44,6 +45,11 @@ public class SquidController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class SquidController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class SquidController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -139,15 +135,7 @@ public class SquidController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/VexController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/VexController.java index ffa0241c9..e87f0f6df 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/VexController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/VexController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftVex; import org.bukkit.entity.Vex; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityVex; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -45,14 +46,15 @@ public class VexController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -82,13 +84,7 @@ public class VexController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/VillagerController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/VillagerController.java index 3ba64f667..47e5b0885 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/VillagerController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/VillagerController.java @@ -9,13 +9,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftVillager; import org.bukkit.entity.Villager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityHuman; @@ -52,6 +53,11 @@ public class VillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -72,12 +78,8 @@ public class VillagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -135,13 +137,7 @@ public class VillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -180,15 +176,7 @@ public class VillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/VindicatorController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/VindicatorController.java index 7f09cc6c1..2689caded 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/VindicatorController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/VindicatorController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftVindicator; import org.bukkit.entity.Vindicator; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityVindicator; @@ -44,6 +45,11 @@ public class VindicatorController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -64,12 +70,8 @@ public class VindicatorController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -106,13 +108,7 @@ public class VindicatorController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -151,15 +147,7 @@ public class VindicatorController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/WitchController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/WitchController.java index 732e5cc0a..21b8694eb 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/WitchController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/WitchController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftWitch; import org.bukkit.entity.Witch; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityWitch; @@ -44,6 +45,11 @@ public class WitchController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class WitchController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class WitchController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -139,15 +135,7 @@ public class WitchController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/WitherController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/WitherController.java index c94e699c1..3b7e546da 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/WitherController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/WitherController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftWither; import org.bukkit.entity.Wither; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityWither; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -42,14 +43,15 @@ public class WitherController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -84,13 +86,7 @@ public class WitherController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -120,15 +116,7 @@ public class WitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/WolfController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/WolfController.java index 2964b02e0..899d6e10c 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/WolfController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/WolfController.java @@ -8,13 +8,14 @@ import org.bukkit.entity.Wolf; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityLiving; @@ -46,6 +47,11 @@ public class WolfController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -66,12 +72,8 @@ public class WolfController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -108,13 +110,7 @@ public class WolfController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -153,15 +149,7 @@ public class WolfController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ZombieController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ZombieController.java index a4d38048e..73244fbc6 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ZombieController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ZombieController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftZombie; import org.bukkit.entity.Zombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityZombie; @@ -44,6 +45,11 @@ public class ZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class ZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class ZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -139,15 +135,7 @@ public class ZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ZombieHuskController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ZombieHuskController.java index 63461b947..05fca1cf1 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ZombieHuskController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ZombieHuskController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftHusk; import org.bukkit.entity.Husk; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityZombieHusk; @@ -44,6 +45,11 @@ public class ZombieHuskController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class ZombieHuskController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class ZombieHuskController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -139,15 +135,7 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ZombieVillagerController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ZombieVillagerController.java index 17402ee4a..76039cc73 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ZombieVillagerController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ZombieVillagerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftVillagerZombie; import org.bukkit.entity.ZombieVillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Entity; import net.minecraft.server.v1_11_R1.EntityZombieVillager; @@ -44,6 +45,11 @@ public class ZombieVillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class ZombieVillagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,13 +96,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -139,15 +135,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/AreaEffectCloudController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/AreaEffectCloudController.java index 966c0ab97..7b1838d9a 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/AreaEffectCloudController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/AreaEffectCloudController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityAreaEffectCloud; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -52,6 +54,11 @@ public class AreaEffectCloudController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ArmorStandController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ArmorStandController.java index 7dc27a5af..f8c076b86 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ArmorStandController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ArmorStandController.java @@ -11,9 +11,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityArmorStand; import net.minecraft.server.v1_11_R1.EntityHuman; import net.minecraft.server.v1_11_R1.EnumHand; @@ -58,6 +60,11 @@ public class ArmorStandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand enumhand) { if (npc == null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/BoatController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/BoatController.java index 5a0127fa1..da0d445f7 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/BoatController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/BoatController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityBoat; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -53,6 +55,11 @@ public class BoatController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/DragonFireballController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/DragonFireballController.java index d148829e4..79eda0012 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/DragonFireballController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/DragonFireballController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityDragonFireball; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -53,6 +55,11 @@ public class DragonFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EggController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EggController.java index a84773236..697645ed5 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EggController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EggController.java @@ -11,10 +11,12 @@ import org.bukkit.entity.Entity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityEgg; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -68,6 +70,11 @@ public class EggController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderCrystalController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderCrystalController.java index aeb7101e0..37d5e4bb9 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderCrystalController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderCrystalController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityEnderCrystal; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -52,6 +54,11 @@ public class EnderCrystalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderPearlController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderPearlController.java index 240d640c9..fd28b49e3 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderPearlController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderPearlController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityEnderPearl; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -52,6 +54,11 @@ public class EnderPearlController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderSignalController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderSignalController.java index 5c39377fc..cd9bff49b 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderSignalController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EnderSignalController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityEnderSignal; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -52,6 +54,11 @@ public class EnderSignalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EvokerFangsController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EvokerFangsController.java index b7ea75602..1e25b64b3 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EvokerFangsController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/EvokerFangsController.java @@ -11,9 +11,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityEvokerFangs; import net.minecraft.server.v1_11_R1.EntityHuman; import net.minecraft.server.v1_11_R1.EnumHand; @@ -44,6 +46,11 @@ public class EvokerFangsController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand enumhand) { if (npc == null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ExperienceOrbController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ExperienceOrbController.java index 6e641cca8..aa8840f7b 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ExperienceOrbController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ExperienceOrbController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityExperienceOrb; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -38,6 +40,11 @@ public class ExperienceOrbController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FallingBlockController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FallingBlockController.java index 6cdf512bb..d8692b865 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FallingBlockController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FallingBlockController.java @@ -12,11 +12,13 @@ import org.bukkit.entity.FallingBlock; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.Block; import net.minecraft.server.v1_11_R1.EntityFallingBlock; import net.minecraft.server.v1_11_R1.EnumMoveType; @@ -61,6 +63,11 @@ public class FallingBlockController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FireworkController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FireworkController.java index 8bb92ad49..178fecffe 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FireworkController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FireworkController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityFireworks; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -38,6 +40,11 @@ public class FireworkController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FishingHookController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FishingHookController.java index 061bf9e07..2dc4b0f00 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FishingHookController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/FishingHookController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityFishingHook; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -38,6 +40,11 @@ public class FishingHookController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ItemController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ItemController.java index 4c93486dd..2af553193 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ItemController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ItemController.java @@ -11,10 +11,12 @@ import org.bukkit.entity.Item; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityHuman; import net.minecraft.server.v1_11_R1.EntityItem; import net.minecraft.server.v1_11_R1.ItemStack; @@ -51,6 +53,11 @@ public class ItemController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ItemFrameController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ItemFrameController.java index 8792416ce..35a77364f 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ItemFrameController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ItemFrameController.java @@ -11,9 +11,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.EntityItemFrame; import net.minecraft.server.v1_11_R1.EnumDirection; @@ -51,6 +53,11 @@ public class ItemFrameController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LargeFireballController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LargeFireballController.java index 9b702618a..5aea7e6e7 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LargeFireballController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LargeFireballController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityLargeFireball; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -39,6 +41,11 @@ public class LargeFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LeashController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LeashController.java index 092f58ae6..57e197427 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LeashController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LeashController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityLeash; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -38,6 +40,11 @@ public class LeashController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LlamaSpitController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LlamaSpitController.java index 81b1555bd..e4bd3ff28 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LlamaSpitController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/LlamaSpitController.java @@ -11,10 +11,12 @@ import org.bukkit.entity.LlamaSpit; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityLlama; import net.minecraft.server.v1_11_R1.EntityLlamaSpit; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -56,6 +58,11 @@ public class LlamaSpitController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartChestController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartChestController.java index f79fd6fc7..e974a5d08 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartChestController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartChestController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityMinecartChest; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -39,6 +41,11 @@ public class MinecartChestController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { super.A_(); diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartCommandController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartCommandController.java index 3b0a544ea..cd647c259 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartCommandController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartCommandController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityMinecartCommandBlock; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -39,6 +41,11 @@ public class MinecartCommandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { super.A_(); diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartFurnaceController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartFurnaceController.java index cd02a6ef4..b3a9a510c 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartFurnaceController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartFurnaceController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityMinecartFurnace; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -39,6 +41,11 @@ public class MinecartFurnaceController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { super.A_(); diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartHopperController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartHopperController.java index 7579f46b7..fa20e3910 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartHopperController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartHopperController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityMinecartHopper; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -35,6 +37,11 @@ public class MinecartHopperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { super.A_(); diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartRideableController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartRideableController.java index a7349b144..e20d902ab 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartRideableController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartRideableController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityMinecartRideable; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -39,6 +41,11 @@ public class MinecartRideableController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { super.A_(); diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartSpawnerController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartSpawnerController.java index 91aa6c95e..9c30ee637 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartSpawnerController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartSpawnerController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityMinecartMobSpawner; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -35,6 +37,11 @@ public class MinecartSpawnerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { super.A_(); diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartTNTController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartTNTController.java index d28b9c577..7a893253e 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartTNTController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/MinecartTNTController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityMinecartTNT; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -35,6 +37,11 @@ public class MinecartTNTController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { super.A_(); diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/PaintingController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/PaintingController.java index 880dd90eb..b1415aaca 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/PaintingController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/PaintingController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityPainting; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -38,6 +40,11 @@ public class PaintingController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ShulkerBulletController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ShulkerBulletController.java index 238c7da17..4e4a150e9 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ShulkerBulletController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ShulkerBulletController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityShulkerBullet; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -38,6 +40,11 @@ public class ShulkerBulletController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SmallFireballController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SmallFireballController.java index a2ad476ea..d5fb82a31 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SmallFireballController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SmallFireballController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntitySmallFireball; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -38,6 +40,11 @@ public class SmallFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SnowballController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SnowballController.java index 0275da7b3..e161521d4 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SnowballController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SnowballController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntitySnowball; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -38,6 +40,11 @@ public class SnowballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SpectralArrowController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SpectralArrowController.java index 7729ad9e2..7ab82ddd1 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SpectralArrowController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/SpectralArrowController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntitySpectralArrow; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -38,6 +40,11 @@ public class SpectralArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/TNTPrimedController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/TNTPrimedController.java index 0e5efc4e7..ca36f6622 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/TNTPrimedController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/TNTPrimedController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityTNTPrimed; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -38,6 +40,11 @@ public class TNTPrimedController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownExpBottleController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownExpBottleController.java index 66a995735..038a8259b 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownExpBottleController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownExpBottleController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityThrownExpBottle; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -38,6 +40,11 @@ public class ThrownExpBottleController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownPotionController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownPotionController.java index 7bb12f1db..7652101a7 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownPotionController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ThrownPotionController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityPotion; import net.minecraft.server.v1_11_R1.Items; import net.minecraft.server.v1_11_R1.NBTTagCompound; @@ -39,6 +41,11 @@ public class ThrownPotionController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/TippedArrowController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/TippedArrowController.java index 891983468..baa2d4472 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/TippedArrowController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/TippedArrowController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityTippedArrow; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -38,6 +40,11 @@ public class TippedArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/WitherSkullController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/WitherSkullController.java index 42efd33a0..50943776c 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/WitherSkullController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/WitherSkullController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_11_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.EntityWitherSkull; import net.minecraft.server.v1_11_R1.NBTTagCompound; import net.minecraft.server.v1_11_R1.World; @@ -38,6 +40,11 @@ public class WitherSkullController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void A_() { if (npc != null) { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSBoundingBox.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSBoundingBox.java new file mode 100644 index 000000000..c2d1f66c1 --- /dev/null +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSBoundingBox.java @@ -0,0 +1,21 @@ +package net.citizensnpcs.nms.v1_11_R1.util; + +import java.util.function.Supplier; + +import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.util.BoundingBox; +import net.minecraft.server.v1_11_R1.AxisAlignedBB; + +public class NMSBoundingBox { + private NMSBoundingBox() { + } + + public static AxisAlignedBB convert(BoundingBox box) { + return new AxisAlignedBB(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ); + } + + public static AxisAlignedBB makeBB(NPC npc, AxisAlignedBB def) { + return npc == null || !npc.data().has(NPC.Metadata.BOUNDING_BOX_FUNCTION) ? def + : convert(npc.data().> get(NPC.Metadata.BOUNDING_BOX_FUNCTION).get()); + } +} diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/BatController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/BatController.java index 42dc0102e..871a2f089 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/BatController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/BatController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity; import org.bukkit.entity.Bat; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityBat; @@ -60,14 +61,15 @@ public class BatController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -97,15 +99,7 @@ public class BatController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/BlazeController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/BlazeController.java index a7149aad2..c4d5de707 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/BlazeController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/BlazeController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity; import org.bukkit.entity.Blaze; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityBlaze; @@ -57,14 +58,15 @@ public class BlazeController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,15 +96,7 @@ public class BlazeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -133,15 +127,7 @@ public class BlazeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/CaveSpiderController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/CaveSpiderController.java index d6525752e..eb07404e5 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/CaveSpiderController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/CaveSpiderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity; import org.bukkit.entity.CaveSpider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -59,6 +60,11 @@ public class CaveSpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -68,12 +74,8 @@ public class CaveSpiderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,15 +121,7 @@ public class CaveSpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ChickenController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ChickenController.java index 2bd9c3d88..37f46b32f 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ChickenController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ChickenController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity; import org.bukkit.entity.Chicken; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -59,6 +60,11 @@ public class ChickenController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -79,12 +85,8 @@ public class ChickenController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -130,15 +132,7 @@ public class ChickenController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -169,15 +163,7 @@ public class ChickenController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/CowController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/CowController.java index c90976dbc..ddabb4a29 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/CowController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/CowController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity; import org.bukkit.entity.Cow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -63,6 +64,11 @@ public class CowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -83,12 +89,8 @@ public class CowController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -145,15 +147,7 @@ public class CowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -184,15 +178,7 @@ public class CowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/CreeperController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/CreeperController.java index 931e34762..e2fcbb7a2 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/CreeperController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/CreeperController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity; import org.bukkit.entity.Creeper; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -62,6 +63,11 @@ public class CreeperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -71,12 +77,8 @@ public class CreeperController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -121,15 +123,7 @@ public class CreeperController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -160,15 +154,7 @@ public class CreeperController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EnderDragonController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EnderDragonController.java index 273db12b0..734d11fbf 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EnderDragonController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EnderDragonController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity; import org.bukkit.entity.EnderDragon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityEnderDragon; @@ -57,14 +58,15 @@ public class EnderDragonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -93,15 +95,7 @@ public class EnderDragonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -132,15 +126,7 @@ public class EnderDragonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EndermanController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EndermanController.java index b069a006a..b57fb96ad 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EndermanController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EndermanController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity; import org.bukkit.entity.Enderman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -59,6 +60,11 @@ public class EndermanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -68,12 +74,8 @@ public class EndermanController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -118,15 +120,7 @@ public class EndermanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -157,15 +151,7 @@ public class EndermanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EndermiteController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EndermiteController.java index 5ae9a6532..55c7e24fc 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EndermiteController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EndermiteController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity; import org.bukkit.entity.Endermite; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -59,6 +60,11 @@ public class EndermiteController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -68,12 +74,8 @@ public class EndermiteController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -118,15 +120,7 @@ public class EndermiteController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -157,15 +151,7 @@ public class EndermiteController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EvokerController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EvokerController.java index 40b221906..3dcfd1c8a 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EvokerController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EvokerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEvoker; import org.bukkit.entity.Evoker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class EvokerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class EvokerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -105,15 +107,7 @@ public class EvokerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -144,15 +138,7 @@ public class EvokerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GhastController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GhastController.java index 0b74ae3f4..8f0bf03e0 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GhastController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GhastController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftGhast; import org.bukkit.entity.Ghast; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityGhast; @@ -43,14 +44,15 @@ public class GhastController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -85,15 +87,7 @@ public class GhastController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -124,15 +118,7 @@ public class GhastController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GiantController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GiantController.java index 81aa33de6..df3ac569f 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GiantController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GiantController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftGiant; import org.bukkit.entity.Giant; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class GiantController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class GiantController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -104,15 +106,7 @@ public class GiantController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -143,15 +137,7 @@ public class GiantController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GuardianController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GuardianController.java index b052aa799..89bce348f 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GuardianController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GuardianController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftGuardian; import org.bukkit.entity.Guardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class GuardianController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class GuardianController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -105,15 +107,7 @@ public class GuardianController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -144,15 +138,7 @@ public class GuardianController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GuardianElderController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GuardianElderController.java index b8efa0ea0..b3e3183b6 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GuardianElderController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/GuardianElderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity; import org.bukkit.entity.ElderGuardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class GuardianElderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class GuardianElderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -105,15 +107,7 @@ public class GuardianElderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -144,15 +138,7 @@ public class GuardianElderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseController.java index 6855d23d3..ca2b2c0b1 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftHorse; import org.bukkit.entity.Horse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -33,21 +33,22 @@ public class HorseController extends MobEntityController { super(EntityHorseNPC.class); } - @Override - public Horse getBukkitEntity() { - return (Horse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Horse getBukkitEntity() { + return (Horse) super.getBukkitEntity(); + } + public static class EntityHorseNPC extends EntityHorse implements NPCHolder { private double baseMovementSpeed; private final CitizensNPC npc; + private boolean riding; public EntityHorseNPC(World world) { @@ -63,6 +64,11 @@ public class HorseController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -83,12 +89,8 @@ public class HorseController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -142,15 +144,7 @@ public class HorseController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -181,15 +175,7 @@ public class HorseController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseDonkeyController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseDonkeyController.java index 539499072..d9de491e1 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseDonkeyController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseDonkeyController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity; import org.bukkit.entity.Donkey; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -33,21 +33,22 @@ public class HorseDonkeyController extends MobEntityController { super(EntityHorseDonkeyNPC.class); } - @Override - public Donkey getBukkitEntity() { - return (Donkey) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.addTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Donkey getBukkitEntity() { + return (Donkey) super.getBukkitEntity(); + } + public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { private double baseMovementSpeed; private final CitizensNPC npc; + private boolean riding; public EntityHorseDonkeyNPC(World world) { @@ -63,6 +64,11 @@ public class HorseDonkeyController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -83,12 +89,8 @@ public class HorseDonkeyController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -142,15 +144,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -181,15 +175,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseMuleController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseMuleController.java index 38302a339..3a11e5e35 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseMuleController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseMuleController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftMule; import org.bukkit.entity.Mule; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -33,21 +33,22 @@ public class HorseMuleController extends MobEntityController { super(EntityHorseMuleNPC.class); } - @Override - public Mule getBukkitEntity() { - return (Mule) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Mule getBukkitEntity() { + return (Mule) super.getBukkitEntity(); + } + public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { private double baseMovementSpeed; private final CitizensNPC npc; + private boolean riding; public EntityHorseMuleNPC(World world) { @@ -63,6 +64,11 @@ public class HorseMuleController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -83,12 +89,8 @@ public class HorseMuleController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -142,15 +144,7 @@ public class HorseMuleController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -181,15 +175,7 @@ public class HorseMuleController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseSkeletonController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseSkeletonController.java index ce86ccfea..dbfe503dd 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseSkeletonController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseSkeletonController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftSkeletonHorse; import org.bukkit.entity.SkeletonHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -33,17 +33,17 @@ public class HorseSkeletonController extends MobEntityController { super(EntityHorseSkeletonNPC.class); } - @Override - public SkeletonHorse getBukkitEntity() { - return (SkeletonHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public SkeletonHorse getBukkitEntity() { + return (SkeletonHorse) super.getBukkitEntity(); + } + public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { private double baseMovementSpeed; @@ -65,6 +65,11 @@ public class HorseSkeletonController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -85,12 +90,8 @@ public class HorseSkeletonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -144,15 +145,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -183,15 +176,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseZombieController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseZombieController.java index 18102dd63..51e764484 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseZombieController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HorseZombieController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftZombieHorse; import org.bukkit.entity.ZombieHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -33,17 +33,17 @@ public class HorseZombieController extends MobEntityController { super(EntityHorseZombieNPC.class); } - @Override - public ZombieHorse getBukkitEntity() { - return (ZombieHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public ZombieHorse getBukkitEntity() { + return (ZombieHorse) super.getBukkitEntity(); + } + public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { private double baseMovementSpeed; @@ -65,6 +65,11 @@ public class HorseZombieController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -85,12 +90,8 @@ public class HorseZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -144,15 +145,7 @@ public class HorseZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -183,15 +176,7 @@ public class HorseZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/IllusionerController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/IllusionerController.java index 2d95b5e9c..f6cf087a0 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/IllusionerController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/IllusionerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftIllusioner; import org.bukkit.entity.Illusioner; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class IllusionerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class IllusionerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -105,15 +107,7 @@ public class IllusionerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -143,15 +137,7 @@ public class IllusionerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/IronGolemController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/IronGolemController.java index 5237408d6..a5a8ec21d 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/IronGolemController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/IronGolemController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftIronGolem; import org.bukkit.entity.IronGolem; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class IronGolemController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class IronGolemController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -104,15 +106,7 @@ public class IronGolemController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -143,15 +137,7 @@ public class IronGolemController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/LlamaController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/LlamaController.java index 78111d2f6..5c51cdb99 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/LlamaController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/LlamaController.java @@ -8,15 +8,15 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftLlama; import org.bukkit.entity.Llama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -31,17 +31,17 @@ public class LlamaController extends MobEntityController { super(EntityLlamaNPC.class); } - @Override - public Llama getBukkitEntity() { - return (Llama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Llama getBukkitEntity() { + return (Llama) super.getBukkitEntity(); + } + public static class EntityLlamaNPC extends EntityLlama implements NPCHolder { private final CitizensNPC npc; @@ -57,6 +57,11 @@ public class LlamaController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -77,12 +82,8 @@ public class LlamaController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -128,15 +129,7 @@ public class LlamaController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -167,15 +160,7 @@ public class LlamaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MagmaCubeController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MagmaCubeController.java index 3b2a94e0e..9e4528089 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MagmaCubeController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MagmaCubeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftMagmaCube; import org.bukkit.entity.MagmaCube; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_12_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -51,6 +52,11 @@ public class MagmaCubeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class MagmaCubeController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -125,15 +127,7 @@ public class MagmaCubeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -164,15 +158,7 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MushroomCowController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MushroomCowController.java index c314560a2..16c91df12 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MushroomCowController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MushroomCowController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftMushroomCow; import org.bukkit.entity.MushroomCow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -48,6 +49,11 @@ public class MushroomCowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -68,12 +74,8 @@ public class MushroomCowController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -125,15 +127,7 @@ public class MushroomCowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -164,15 +158,7 @@ public class MushroomCowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/OcelotController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/OcelotController.java index fd02d5103..6edd5a589 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/OcelotController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/OcelotController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftOcelot; import org.bukkit.entity.Ocelot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class OcelotController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -65,12 +71,8 @@ public class OcelotController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -123,15 +125,7 @@ public class OcelotController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -162,15 +156,7 @@ public class OcelotController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ParrotController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ParrotController.java index 04c76b1b1..33a383688 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ParrotController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ParrotController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftParrot; import org.bukkit.entity.Parrot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityHuman; @@ -45,14 +46,15 @@ public class ParrotController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -91,15 +93,7 @@ public class ParrotController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/PigController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/PigController.java index 64743f13e..447bd8eec 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/PigController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/PigController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPig; import org.bukkit.entity.Pig; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -46,6 +47,11 @@ public class PigController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -66,12 +72,8 @@ public class PigController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -123,15 +125,7 @@ public class PigController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -162,15 +156,7 @@ public class PigController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/PigZombieController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/PigZombieController.java index 31aa0712f..5fefafa9f 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/PigZombieController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/PigZombieController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPigZombie; import org.bukkit.entity.PigZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -46,6 +47,11 @@ public class PigZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -55,12 +61,8 @@ public class PigZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -105,15 +107,7 @@ public class PigZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -144,15 +138,7 @@ public class PigZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/PolarBearController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/PolarBearController.java index e66de3571..3cef599dd 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/PolarBearController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/PolarBearController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPolarBear; import org.bukkit.entity.PolarBear; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityPolarBear; @@ -43,6 +44,11 @@ public class PolarBearController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -56,12 +62,8 @@ public class PolarBearController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -91,15 +93,7 @@ public class PolarBearController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/RabbitController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/RabbitController.java index 5dc6c4c00..ecb532c64 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/RabbitController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/RabbitController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftRabbit; import org.bukkit.entity.Rabbit; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -46,6 +47,11 @@ public class RabbitController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -66,12 +72,8 @@ public class RabbitController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class RabbitController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -161,15 +155,7 @@ public class RabbitController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SheepController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SheepController.java index 40e20a8d9..669028fbb 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SheepController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SheepController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftSheep; import org.bukkit.entity.Sheep; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class SheepController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -65,12 +71,8 @@ public class SheepController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -115,15 +117,7 @@ public class SheepController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -154,15 +148,7 @@ public class SheepController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ShulkerController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ShulkerController.java index 802362d82..19819dcc7 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ShulkerController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ShulkerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftShulker; import org.bukkit.entity.Shulker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -46,6 +47,11 @@ public class ShulkerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -55,12 +61,8 @@ public class ShulkerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -114,15 +116,7 @@ public class ShulkerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -152,15 +146,7 @@ public class ShulkerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SilverfishController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SilverfishController.java index 7424aefbf..e6e385748 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SilverfishController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SilverfishController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftSilverfish; import org.bukkit.entity.Silverfish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class SilverfishController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class SilverfishController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -104,13 +106,7 @@ public class SilverfishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -140,15 +136,7 @@ public class SilverfishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SkeletonController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SkeletonController.java index 7a0c4ae16..2ebe52a13 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SkeletonController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SkeletonController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftSkeleton; import org.bukkit.entity.Skeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class SkeletonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class SkeletonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -104,15 +106,7 @@ public class SkeletonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -142,15 +136,7 @@ public class SkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SkeletonStrayController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SkeletonStrayController.java index 51470b596..b930f8ce9 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SkeletonStrayController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SkeletonStrayController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftStray; import org.bukkit.entity.Stray; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class SkeletonStrayController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class SkeletonStrayController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -104,15 +106,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -142,15 +136,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SkeletonWitherController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SkeletonWitherController.java index 5af71aba3..77d332e3d 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SkeletonWitherController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SkeletonWitherController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftWitherSkeleton; import org.bukkit.entity.WitherSkeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class SkeletonWitherController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class SkeletonWitherController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -104,15 +106,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -142,15 +136,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SlimeController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SlimeController.java index 52aded3a3..30fbe4ccc 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SlimeController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SlimeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftSlime; import org.bukkit.entity.Slime; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_12_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -51,6 +52,11 @@ public class SlimeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class SlimeController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -126,15 +128,7 @@ public class SlimeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -164,15 +158,7 @@ public class SlimeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SnowmanController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SnowmanController.java index c956d05c5..77696e85a 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SnowmanController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SnowmanController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftSnowman; import org.bukkit.entity.Snowman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class SnowmanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class SnowmanController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -104,15 +106,7 @@ public class SnowmanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -142,15 +136,7 @@ public class SnowmanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SpiderController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SpiderController.java index 794e752c2..ae3be2497 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SpiderController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SpiderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftSpider; import org.bukkit.entity.Spider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class SpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class SpiderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -104,15 +106,7 @@ public class SpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -142,15 +136,7 @@ public class SpiderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SquidController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SquidController.java index b2037103d..05d669fe9 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SquidController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/SquidController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftSquid; import org.bukkit.entity.Squid; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class SquidController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class SquidController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -104,15 +106,7 @@ public class SquidController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -142,15 +136,7 @@ public class SquidController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/VexController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/VexController.java index 7480242e9..3f009ee58 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/VexController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/VexController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftVex; import org.bukkit.entity.Vex; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityVex; @@ -46,14 +47,15 @@ public class VexController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -83,15 +85,7 @@ public class VexController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/VillagerController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/VillagerController.java index e1165ce3f..c74cb3bd6 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/VillagerController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/VillagerController.java @@ -9,13 +9,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftVillager; import org.bukkit.entity.Villager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -53,6 +54,11 @@ public class VillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -73,12 +79,8 @@ public class VillagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -145,15 +147,7 @@ public class VillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -183,15 +177,7 @@ public class VillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/VindicatorController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/VindicatorController.java index 04fb4a786..d9ed7d612 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/VindicatorController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/VindicatorController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftVindicator; import org.bukkit.entity.Vindicator; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class VindicatorController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -65,12 +71,8 @@ public class VindicatorController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -116,15 +118,7 @@ public class VindicatorController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -154,15 +148,7 @@ public class VindicatorController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/WitchController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/WitchController.java index 480d467cf..7b232452a 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/WitchController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/WitchController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftWitch; import org.bukkit.entity.Witch; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class WitchController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class WitchController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -104,15 +106,7 @@ public class WitchController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -142,15 +136,7 @@ public class WitchController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/WitherController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/WitherController.java index e2b85c16a..d82e798be 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/WitherController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/WitherController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftWither; import org.bukkit.entity.Wither; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; import net.minecraft.server.v1_12_R1.EntityWither; @@ -43,14 +44,15 @@ public class WitherController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -85,15 +87,7 @@ public class WitherController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -123,15 +117,7 @@ public class WitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/WolfController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/WolfController.java index c0b10718b..c3c334952 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/WolfController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/WolfController.java @@ -8,13 +8,14 @@ import org.bukkit.entity.Wolf; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -47,6 +48,11 @@ public class WolfController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -67,12 +73,8 @@ public class WolfController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -118,15 +120,7 @@ public class WolfController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -156,15 +150,7 @@ public class WolfController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ZombieController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ZombieController.java index 8470818b8..858e2eb14 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ZombieController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ZombieController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftZombie; import org.bukkit.entity.Zombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class ZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class ZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -104,15 +106,7 @@ public class ZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -142,15 +136,7 @@ public class ZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ZombieHuskController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ZombieHuskController.java index e87d88c78..ab50acb48 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ZombieHuskController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ZombieHuskController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftHusk; import org.bukkit.entity.Husk; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class ZombieHuskController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class ZombieHuskController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -104,15 +106,7 @@ public class ZombieHuskController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -142,15 +136,7 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ZombieVillagerController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ZombieVillagerController.java index 8d5c7943d..8529a17e1 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ZombieVillagerController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ZombieVillagerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftVillagerZombie; import org.bukkit.entity.ZombieVillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.Entity; @@ -45,6 +46,11 @@ public class ZombieVillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -54,12 +60,8 @@ public class ZombieVillagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -104,15 +106,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -142,15 +136,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/AreaEffectCloudController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/AreaEffectCloudController.java index 5dc3204df..303028d9f 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/AreaEffectCloudController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/AreaEffectCloudController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityAreaEffectCloud; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -52,6 +54,11 @@ public class AreaEffectCloudController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ArmorStandController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ArmorStandController.java index 97e0bb69f..c093af944 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ArmorStandController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ArmorStandController.java @@ -11,9 +11,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityArmorStand; import net.minecraft.server.v1_12_R1.EntityHuman; import net.minecraft.server.v1_12_R1.EnumHand; @@ -58,6 +60,11 @@ public class ArmorStandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand enumhand) { if (npc == null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/BoatController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/BoatController.java index 5be859dcc..e3e733fdf 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/BoatController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/BoatController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityBoat; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -53,6 +55,11 @@ public class BoatController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/DragonFireballController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/DragonFireballController.java index a14f2380f..e0e3b80ae 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/DragonFireballController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/DragonFireballController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityDragonFireball; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -53,6 +55,11 @@ public class DragonFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EggController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EggController.java index 5bf821b67..6a59ab0f1 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EggController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EggController.java @@ -11,10 +11,12 @@ import org.bukkit.entity.Entity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityEgg; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -68,6 +70,11 @@ public class EggController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderCrystalController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderCrystalController.java index c343e245f..778599950 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderCrystalController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderCrystalController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityEnderCrystal; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -52,6 +54,11 @@ public class EnderCrystalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderPearlController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderPearlController.java index 8eb362d54..2688d5dc3 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderPearlController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderPearlController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityEnderPearl; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -52,6 +54,11 @@ public class EnderPearlController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderSignalController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderSignalController.java index 795786cf3..99d253671 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderSignalController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EnderSignalController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityEnderSignal; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -52,6 +54,11 @@ public class EnderSignalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EvokerFangsController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EvokerFangsController.java index 1abeec083..1f7503eb2 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EvokerFangsController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/EvokerFangsController.java @@ -11,9 +11,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityEvokerFangs; import net.minecraft.server.v1_12_R1.EntityHuman; import net.minecraft.server.v1_12_R1.EnumHand; @@ -44,6 +46,11 @@ public class EvokerFangsController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand enumhand) { if (npc == null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ExperienceOrbController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ExperienceOrbController.java index e61b97b3c..2f631e25f 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ExperienceOrbController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ExperienceOrbController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityExperienceOrb; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -38,6 +40,11 @@ public class ExperienceOrbController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FallingBlockController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FallingBlockController.java index ae09d5904..30af51ed0 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FallingBlockController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FallingBlockController.java @@ -12,11 +12,13 @@ import org.bukkit.entity.FallingBlock; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.Block; import net.minecraft.server.v1_12_R1.EntityFallingBlock; import net.minecraft.server.v1_12_R1.EnumMoveType; @@ -61,6 +63,11 @@ public class FallingBlockController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FireworkController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FireworkController.java index eecd6b4f9..d0bb81b06 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FireworkController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FireworkController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityFireworks; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -38,6 +40,11 @@ public class FireworkController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FishingHookController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FishingHookController.java index 0a1a3402c..dea43f95d 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FishingHookController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/FishingHookController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityFishingHook; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -38,6 +40,11 @@ public class FishingHookController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ItemController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ItemController.java index 987690578..944e3f14d 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ItemController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ItemController.java @@ -11,10 +11,12 @@ import org.bukkit.entity.Item; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityHuman; import net.minecraft.server.v1_12_R1.EntityItem; import net.minecraft.server.v1_12_R1.ItemStack; @@ -51,6 +53,11 @@ public class ItemController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ItemFrameController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ItemFrameController.java index c135c0106..ed548317b 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ItemFrameController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ItemFrameController.java @@ -11,9 +11,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.EntityItemFrame; import net.minecraft.server.v1_12_R1.EnumDirection; @@ -51,6 +53,11 @@ public class ItemFrameController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LargeFireballController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LargeFireballController.java index bc5c9d899..29a30fd95 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LargeFireballController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LargeFireballController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityLargeFireball; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -39,6 +41,11 @@ public class LargeFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LeashController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LeashController.java index ba466185d..d1eb59f3f 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LeashController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LeashController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityLeash; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -38,6 +40,11 @@ public class LeashController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LlamaSpitController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LlamaSpitController.java index 433518aa3..3fee43314 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LlamaSpitController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/LlamaSpitController.java @@ -11,10 +11,12 @@ import org.bukkit.entity.LlamaSpit; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityLlama; import net.minecraft.server.v1_12_R1.EntityLlamaSpit; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -56,6 +58,11 @@ public class LlamaSpitController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartChestController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartChestController.java index e9c0b4022..840939a5a 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartChestController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartChestController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityMinecartChest; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -39,6 +41,11 @@ public class MinecartChestController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { super.B_(); diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartCommandController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartCommandController.java index ef5ac0a14..49476e482 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartCommandController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartCommandController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityMinecartCommandBlock; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -39,6 +41,11 @@ public class MinecartCommandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { super.B_(); diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartFurnaceController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartFurnaceController.java index 7889388e9..f4e7c892a 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartFurnaceController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartFurnaceController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityMinecartFurnace; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -39,6 +41,11 @@ public class MinecartFurnaceController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { super.B_(); diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartHopperController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartHopperController.java index 71acf79b4..413539dc7 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartHopperController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartHopperController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityMinecartHopper; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -35,6 +37,11 @@ public class MinecartHopperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { super.B_(); diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartRideableController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartRideableController.java index e5c0716ab..f77e6569a 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartRideableController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartRideableController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityMinecartRideable; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -39,6 +41,11 @@ public class MinecartRideableController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { super.B_(); diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartSpawnerController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartSpawnerController.java index fbc782d08..fcae70d9c 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartSpawnerController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartSpawnerController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityMinecartMobSpawner; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -35,6 +37,11 @@ public class MinecartSpawnerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { super.B_(); diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartTNTController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartTNTController.java index f146a5e92..da569d9e6 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartTNTController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/MinecartTNTController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityMinecartTNT; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -35,6 +37,11 @@ public class MinecartTNTController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { super.B_(); diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/PaintingController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/PaintingController.java index efcf54a79..8b415a315 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/PaintingController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/PaintingController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityPainting; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -38,6 +40,11 @@ public class PaintingController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ShulkerBulletController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ShulkerBulletController.java index 9b6b43487..6e09f0bdd 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ShulkerBulletController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ShulkerBulletController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityShulkerBullet; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -38,6 +40,11 @@ public class ShulkerBulletController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SmallFireballController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SmallFireballController.java index db973e9a9..b2abdb837 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SmallFireballController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SmallFireballController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntitySmallFireball; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -38,6 +40,11 @@ public class SmallFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SnowballController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SnowballController.java index c40bbaa25..dda8f8cc4 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SnowballController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SnowballController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntitySnowball; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -38,6 +40,11 @@ public class SnowballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SpectralArrowController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SpectralArrowController.java index 020b291e5..178fb2b70 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SpectralArrowController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/SpectralArrowController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntitySpectralArrow; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -38,6 +40,11 @@ public class SpectralArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/TNTPrimedController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/TNTPrimedController.java index 0d01a8556..756c08a18 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/TNTPrimedController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/TNTPrimedController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityTNTPrimed; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -38,6 +40,11 @@ public class TNTPrimedController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownExpBottleController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownExpBottleController.java index 6c7efe92c..0ebbe68d4 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownExpBottleController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownExpBottleController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityThrownExpBottle; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -38,6 +40,11 @@ public class ThrownExpBottleController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownPotionController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownPotionController.java index b5a6df6a7..fb03898b8 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownPotionController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ThrownPotionController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityPotion; import net.minecraft.server.v1_12_R1.Items; import net.minecraft.server.v1_12_R1.NBTTagCompound; @@ -39,6 +41,11 @@ public class ThrownPotionController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/TippedArrowController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/TippedArrowController.java index 9b9380e0a..a4d0ac50d 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/TippedArrowController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/TippedArrowController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityTippedArrow; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -38,6 +40,11 @@ public class TippedArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/WitherSkullController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/WitherSkullController.java index 52393edef..b5523d352 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/WitherSkullController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/WitherSkullController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_12_R1.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.EntityWitherSkull; import net.minecraft.server.v1_12_R1.NBTTagCompound; import net.minecraft.server.v1_12_R1.World; @@ -38,6 +40,11 @@ public class WitherSkullController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void B_() { if (npc != null) { diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSBoundingBox.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSBoundingBox.java new file mode 100644 index 000000000..80f722e97 --- /dev/null +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSBoundingBox.java @@ -0,0 +1,21 @@ +package net.citizensnpcs.nms.v1_12_R1.util; + +import java.util.function.Supplier; + +import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.util.BoundingBox; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; + +public class NMSBoundingBox { + private NMSBoundingBox() { + } + + public static AxisAlignedBB convert(BoundingBox box) { + return new AxisAlignedBB(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ); + } + + public static AxisAlignedBB makeBB(NPC npc, AxisAlignedBB def) { + return npc == null || !npc.data().has(NPC.Metadata.BOUNDING_BOX_FUNCTION) ? def + : convert(npc.data().> get(NPC.Metadata.BOUNDING_BOX_FUNCTION).get()); + } +} diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerPathfinder.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerPathfinder.java index d0981183b..736774855 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerPathfinder.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerPathfinder.java @@ -30,6 +30,12 @@ public class PlayerPathfinder extends Pathfinder { paramBlockPosition.getY() + 0.5F, paramBlockPosition.getZ() + 0.5F, paramFloat); } + public PathEntity a(IBlockAccess paramIBlockAccess, EntityHumanNPC paramEntityInsentient, Entity paramEntity, + float paramFloat) { + return pa(paramIBlockAccess, paramEntityInsentient, paramEntity.locX, paramEntity.getBoundingBox().b, + paramEntity.locZ, paramFloat); + } + private PathEntity pa(IBlockAccess paramIBlockAccess, EntityHumanNPC paramEntityInsentient, double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat) { this.a.a(); @@ -43,12 +49,6 @@ public class PlayerPathfinder extends Pathfinder { return localPathEntity; } - public PathEntity a(IBlockAccess paramIBlockAccess, EntityHumanNPC paramEntityInsentient, Entity paramEntity, - float paramFloat) { - return pa(paramIBlockAccess, paramEntityInsentient, paramEntity.locX, paramEntity.getBoundingBox().b, - paramEntity.locZ, paramFloat); - } - private PathEntity pa(PathPoint paramPathPoint1, PathPoint paramPathPoint2) { int i = 1; PathPoint localPathPoint = paramPathPoint2; diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerPathfinderNormal.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerPathfinderNormal.java index 4432a983f..385f94c0b 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerPathfinderNormal.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerPathfinderNormal.java @@ -41,15 +41,6 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { return a(MathHelper.floor(paramDouble1), MathHelper.floor(paramDouble2), MathHelper.floor(paramDouble3)); } - private PathType pa(EntityHumanNPC paramEntityInsentient, BlockPosition paramBlockPosition) { - return pa(paramEntityInsentient, paramBlockPosition.getX(), paramBlockPosition.getY(), - paramBlockPosition.getZ()); - } - - private PathType pa(EntityHumanNPC paramEntityInsentient, int paramInt1, int paramInt2, int paramInt3) { - return a(this.a, paramInt1, paramInt2, paramInt3, paramEntityInsentient, this.d, this.e, this.f, d(), c()); - } - @Override public void a(IBlockAccess paramIBlockAccess, EntityHumanNPC paramEntityInsentient) { super.a(paramIBlockAccess, paramEntityInsentient); @@ -192,82 +183,6 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { return paramPathType; } - private PathPoint pa(int paramInt1, int paramInt2, int paramInt3, int paramInt4, double paramDouble, - EnumDirection paramEnumDirection) { - PathPoint localPathPoint = null; - - BlockPosition localBlockPosition1 = new BlockPosition(paramInt1, paramInt2, paramInt3); - BlockPosition localBlockPosition2 = localBlockPosition1.down(); - double d1 = paramInt2 - (1.0D - this.a.getType(localBlockPosition2).e(this.a, localBlockPosition2).e); - if (d1 - paramDouble > 1.125D) { - return null; - } - PathType localPathType1 = pa(this.b, paramInt1, paramInt2, paramInt3); - - float f = this.b.a(localPathType1); - double d2 = this.b.width / 2.0D; - if (f >= 0.0F) { - localPathPoint = a(paramInt1, paramInt2, paramInt3); - localPathPoint.m = localPathType1; - localPathPoint.l = Math.max(localPathPoint.l, f); - } - if (localPathType1 == PathType.WALKABLE) { - return localPathPoint; - } - if ((localPathPoint == null) && (paramInt4 > 0) && (localPathType1 != PathType.FENCE) - && (localPathType1 != PathType.TRAPDOOR)) { - localPathPoint = pa(paramInt1, paramInt2 + 1, paramInt3, paramInt4 - 1, paramDouble, paramEnumDirection); - if ((localPathPoint != null) - && ((localPathPoint.m == PathType.OPEN) || (localPathPoint.m == PathType.WALKABLE)) - && (this.b.width < 1.0F)) { - double d3 = paramInt1 - paramEnumDirection.getAdjacentX() + 0.5D; - double d4 = paramInt3 - paramEnumDirection.getAdjacentZ() + 0.5D; - - AxisAlignedBB localAxisAlignedBB1 = new AxisAlignedBB(d3 - d2, paramInt2 + 0.001D, d4 - d2, d3 + d2, - paramInt2 + this.b.length, d4 + d2); - AxisAlignedBB localAxisAlignedBB2 = this.a.getType(localBlockPosition1).e(this.a, localBlockPosition1); - - AxisAlignedBB localAxisAlignedBB3 = localAxisAlignedBB1.b(0.0D, localAxisAlignedBB2.e - 0.002D, 0.0D); - if (this.b.world.a(localAxisAlignedBB3)) { - localPathPoint = null; - } - } - } - if (localPathType1 == PathType.OPEN) { - AxisAlignedBB localAxisAlignedBB4 = new AxisAlignedBB(paramInt1 - d2 + 0.5D, paramInt2 + 0.001D, - paramInt3 - d2 + 0.5D, paramInt1 + d2 + 0.5D, paramInt2 + this.b.length, paramInt3 + d2 + 0.5D); - if (this.b.world.a(localAxisAlignedBB4)) { - return null; - } - if (this.b.width >= 1.0F) { - PathType localPathType2 = pa(this.b, paramInt1, paramInt2 - 1, paramInt3); - if (localPathType2 == PathType.BLOCKED) { - localPathPoint = a(paramInt1, paramInt2, paramInt3); - localPathPoint.m = PathType.WALKABLE; - localPathPoint.l = Math.max(localPathPoint.l, f); - return localPathPoint; - } - } - int i = 0; - while ((paramInt2 > 0) && (localPathType1 == PathType.OPEN)) { - paramInt2--; - if (i++ >= Setting.MC_NAVIGATION_MAX_FALL_DISTANCE.asInt()) { - return null; - } - localPathType1 = pa(this.b, paramInt1, paramInt2, paramInt3); - f = this.b.a(localPathType1); - if ((localPathType1 != PathType.OPEN) && (f >= 0.0F)) { - localPathPoint = a(paramInt1, paramInt2, paramInt3); - localPathPoint.m = localPathType1; - localPathPoint.l = Math.max(localPathPoint.l, f); - } else if (f < 0.0F) { - return null; - } - } - } - return localPathPoint; - } - @Override public int a(PathPoint[] paramArrayOfPathPoint, PathPoint paramPathPoint1, PathPoint paramPathPoint2, float paramFloat) { @@ -390,6 +305,91 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { return a(localObject1.getX(), i, localObject1.getZ()); } + private PathType pa(EntityHumanNPC paramEntityInsentient, BlockPosition paramBlockPosition) { + return pa(paramEntityInsentient, paramBlockPosition.getX(), paramBlockPosition.getY(), + paramBlockPosition.getZ()); + } + + private PathType pa(EntityHumanNPC paramEntityInsentient, int paramInt1, int paramInt2, int paramInt3) { + return a(this.a, paramInt1, paramInt2, paramInt3, paramEntityInsentient, this.d, this.e, this.f, d(), c()); + } + + private PathPoint pa(int paramInt1, int paramInt2, int paramInt3, int paramInt4, double paramDouble, + EnumDirection paramEnumDirection) { + PathPoint localPathPoint = null; + + BlockPosition localBlockPosition1 = new BlockPosition(paramInt1, paramInt2, paramInt3); + BlockPosition localBlockPosition2 = localBlockPosition1.down(); + double d1 = paramInt2 - (1.0D - this.a.getType(localBlockPosition2).e(this.a, localBlockPosition2).e); + if (d1 - paramDouble > 1.125D) { + return null; + } + PathType localPathType1 = pa(this.b, paramInt1, paramInt2, paramInt3); + + float f = this.b.a(localPathType1); + double d2 = this.b.width / 2.0D; + if (f >= 0.0F) { + localPathPoint = a(paramInt1, paramInt2, paramInt3); + localPathPoint.m = localPathType1; + localPathPoint.l = Math.max(localPathPoint.l, f); + } + if (localPathType1 == PathType.WALKABLE) { + return localPathPoint; + } + if ((localPathPoint == null) && (paramInt4 > 0) && (localPathType1 != PathType.FENCE) + && (localPathType1 != PathType.TRAPDOOR)) { + localPathPoint = pa(paramInt1, paramInt2 + 1, paramInt3, paramInt4 - 1, paramDouble, paramEnumDirection); + if ((localPathPoint != null) + && ((localPathPoint.m == PathType.OPEN) || (localPathPoint.m == PathType.WALKABLE)) + && (this.b.width < 1.0F)) { + double d3 = paramInt1 - paramEnumDirection.getAdjacentX() + 0.5D; + double d4 = paramInt3 - paramEnumDirection.getAdjacentZ() + 0.5D; + + AxisAlignedBB localAxisAlignedBB1 = new AxisAlignedBB(d3 - d2, paramInt2 + 0.001D, d4 - d2, d3 + d2, + paramInt2 + this.b.length, d4 + d2); + AxisAlignedBB localAxisAlignedBB2 = this.a.getType(localBlockPosition1).e(this.a, localBlockPosition1); + + AxisAlignedBB localAxisAlignedBB3 = localAxisAlignedBB1.b(0.0D, localAxisAlignedBB2.e - 0.002D, 0.0D); + if (this.b.world.a(localAxisAlignedBB3)) { + localPathPoint = null; + } + } + } + if (localPathType1 == PathType.OPEN) { + AxisAlignedBB localAxisAlignedBB4 = new AxisAlignedBB(paramInt1 - d2 + 0.5D, paramInt2 + 0.001D, + paramInt3 - d2 + 0.5D, paramInt1 + d2 + 0.5D, paramInt2 + this.b.length, paramInt3 + d2 + 0.5D); + if (this.b.world.a(localAxisAlignedBB4)) { + return null; + } + if (this.b.width >= 1.0F) { + PathType localPathType2 = pa(this.b, paramInt1, paramInt2 - 1, paramInt3); + if (localPathType2 == PathType.BLOCKED) { + localPathPoint = a(paramInt1, paramInt2, paramInt3); + localPathPoint.m = PathType.WALKABLE; + localPathPoint.l = Math.max(localPathPoint.l, f); + return localPathPoint; + } + } + int i = 0; + while ((paramInt2 > 0) && (localPathType1 == PathType.OPEN)) { + paramInt2--; + if (i++ >= Setting.MC_NAVIGATION_MAX_FALL_DISTANCE.asInt()) { + return null; + } + localPathType1 = pa(this.b, paramInt1, paramInt2, paramInt3); + f = this.b.a(localPathType1); + if ((localPathType1 != PathType.OPEN) && (f >= 0.0F)) { + localPathPoint = a(paramInt1, paramInt2, paramInt3); + localPathPoint.m = localPathType1; + localPathPoint.l = Math.max(localPathPoint.l, f); + } else if (f < 0.0F) { + return null; + } + } + } + return localPathPoint; + } + protected PathType pb(IBlockAccess paramIBlockAccess, int paramInt1, int paramInt2, int paramInt3) { BlockPosition localBlockPosition = new BlockPosition(paramInt1, paramInt2, paramInt3); IBlockData localIBlockData = paramIBlockAccess.getType(localBlockPosition); diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/BatController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/BatController.java index 016f4a656..7fec00daa 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/BatController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/BatController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; import org.bukkit.entity.Bat; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; import net.minecraft.server.v1_13_R2.EntityBat; @@ -64,14 +65,15 @@ public class BatController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -120,15 +122,7 @@ public class BatController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/BlazeController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/BlazeController.java index 2184229e6..d80a4d0bf 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/BlazeController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/BlazeController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; import org.bukkit.entity.Blaze; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; import net.minecraft.server.v1_13_R2.EntityBlaze; @@ -61,14 +62,15 @@ public class BlazeController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class BlazeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -158,15 +152,7 @@ public class BlazeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CaveSpiderController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CaveSpiderController.java index 2e2d76ada..e187b147e 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CaveSpiderController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CaveSpiderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; import org.bukkit.entity.CaveSpider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -63,6 +64,11 @@ public class CaveSpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -72,12 +78,8 @@ public class CaveSpiderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -142,15 +144,7 @@ public class CaveSpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ChickenController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ChickenController.java index c50712837..940140ba0 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ChickenController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ChickenController.java @@ -9,14 +9,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; import org.bukkit.entity.Chicken; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -66,6 +66,11 @@ public class ChickenController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -86,12 +91,8 @@ public class ChickenController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -156,15 +157,7 @@ public class ChickenController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -197,15 +190,7 @@ public class ChickenController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CodController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CodController.java index a3ccaa84d..49326b271 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CodController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CodController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; import org.bukkit.entity.Cod; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.ControllerMove; import net.minecraft.server.v1_13_R2.DamageSource; @@ -71,6 +72,11 @@ public class CodController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -80,12 +86,8 @@ public class CodController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -162,15 +164,7 @@ public class CodController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -202,15 +196,7 @@ public class CodController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CowController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CowController.java index 3056abdc5..a7a84b3b4 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CowController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CowController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; import org.bukkit.entity.Cow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -67,6 +68,11 @@ public class CowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -87,12 +93,8 @@ public class CowController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -168,15 +170,7 @@ public class CowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -209,15 +203,7 @@ public class CowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CreeperController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CreeperController.java index 4ac66afc7..3f5d43fb1 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CreeperController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/CreeperController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; import org.bukkit.entity.Creeper; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -66,6 +67,11 @@ public class CreeperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -75,12 +81,8 @@ public class CreeperController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -144,15 +146,7 @@ public class CreeperController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -185,15 +179,7 @@ public class CreeperController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/DolphinController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/DolphinController.java index 4ce09d1d8..d7831e97e 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/DolphinController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/DolphinController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; import org.bukkit.entity.Dolphin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -71,6 +72,11 @@ public class DolphinController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -80,12 +86,8 @@ public class DolphinController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -156,15 +158,7 @@ public class DolphinController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -196,15 +190,7 @@ public class DolphinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/DrownedController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/DrownedController.java index 068e578c0..d302239d0 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/DrownedController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/DrownedController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; import org.bukkit.entity.Drowned; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -63,6 +64,11 @@ public class DrownedController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -72,12 +78,8 @@ public class DrownedController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -141,15 +143,7 @@ public class DrownedController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -181,15 +175,7 @@ public class DrownedController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EnderDragonController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EnderDragonController.java index c8b466ab7..f393cec34 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EnderDragonController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EnderDragonController.java @@ -9,14 +9,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; import org.bukkit.entity.EnderDragon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; import net.minecraft.server.v1_13_R2.EntityBoat; @@ -64,14 +64,15 @@ public class EnderDragonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,15 +120,7 @@ public class EnderDragonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -160,15 +153,7 @@ public class EnderDragonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EndermanController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EndermanController.java index cc5aae11e..b2505b594 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EndermanController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EndermanController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; import org.bukkit.entity.Enderman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -63,6 +64,11 @@ public class EndermanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -72,12 +78,8 @@ public class EndermanController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -141,15 +143,7 @@ public class EndermanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -182,15 +176,7 @@ public class EndermanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EndermiteController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EndermiteController.java index 80a226f03..fa9590993 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EndermiteController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EndermiteController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; import org.bukkit.entity.Endermite; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -63,6 +64,11 @@ public class EndermiteController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -72,12 +78,8 @@ public class EndermiteController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -141,15 +143,7 @@ public class EndermiteController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -182,15 +176,7 @@ public class EndermiteController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EvokerController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EvokerController.java index 275946698..58b76037c 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EvokerController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EvokerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEvoker; import org.bukkit.entity.Evoker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class EvokerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class EvokerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -128,15 +130,7 @@ public class EvokerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -169,15 +163,7 @@ public class EvokerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GhastController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GhastController.java index a2fa531b1..cf27e849c 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GhastController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GhastController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftGhast; import org.bukkit.entity.Ghast; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; import net.minecraft.server.v1_13_R2.EntityBoat; @@ -47,14 +48,15 @@ public class GhastController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -103,15 +105,7 @@ public class GhastController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -144,15 +138,7 @@ public class GhastController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GiantController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GiantController.java index 868a7d5fd..b15e72a4f 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GiantController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GiantController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftGiant; import org.bukkit.entity.Giant; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class GiantController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class GiantController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +129,7 @@ public class GiantController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -168,15 +162,7 @@ public class GiantController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GuardianController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GuardianController.java index 4af7a1736..4943e01f6 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GuardianController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GuardianController.java @@ -9,14 +9,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftGuardian; import org.bukkit.entity.Guardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -52,6 +52,11 @@ public class GuardianController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +66,8 @@ public class GuardianController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -131,15 +132,7 @@ public class GuardianController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -172,15 +165,7 @@ public class GuardianController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GuardianElderController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GuardianElderController.java index 6681941c0..b641a3bae 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GuardianElderController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/GuardianElderController.java @@ -9,14 +9,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; import org.bukkit.entity.ElderGuardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -52,6 +52,11 @@ public class GuardianElderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +66,8 @@ public class GuardianElderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -131,15 +132,7 @@ public class GuardianElderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -172,15 +165,7 @@ public class GuardianElderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseController.java index c998ae181..928e102cf 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftHorse; import org.bukkit.entity.Horse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -37,17 +37,17 @@ public class HorseController extends MobEntityController { super(EntityHorseNPC.class); } - @Override - public Horse getBukkitEntity() { - return (Horse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Horse getBukkitEntity() { + return (Horse) super.getBukkitEntity(); + } + public static class EntityHorseNPC extends EntityHorse implements NPCHolder { private double baseMovementSpeed; @@ -68,6 +68,11 @@ public class HorseController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -88,12 +93,8 @@ public class HorseController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -166,15 +167,7 @@ public class HorseController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -207,15 +200,7 @@ public class HorseController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseDonkeyController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseDonkeyController.java index 5068a9fb4..d13327ecc 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseDonkeyController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseDonkeyController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; import org.bukkit.entity.Donkey; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -37,17 +37,17 @@ public class HorseDonkeyController extends MobEntityController { super(EntityHorseDonkeyNPC.class); } - @Override - public Donkey getBukkitEntity() { - return (Donkey) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.addTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Donkey getBukkitEntity() { + return (Donkey) super.getBukkitEntity(); + } + public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { private double baseMovementSpeed; @@ -68,6 +68,11 @@ public class HorseDonkeyController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -88,12 +93,8 @@ public class HorseDonkeyController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -166,15 +167,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -207,15 +200,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseMuleController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseMuleController.java index 9d18b2121..4372bbc24 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseMuleController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseMuleController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftMule; import org.bukkit.entity.Mule; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -37,17 +37,17 @@ public class HorseMuleController extends MobEntityController { super(EntityHorseMuleNPC.class); } - @Override - public Mule getBukkitEntity() { - return (Mule) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Mule getBukkitEntity() { + return (Mule) super.getBukkitEntity(); + } + public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { private double baseMovementSpeed; @@ -68,6 +68,11 @@ public class HorseMuleController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -88,12 +93,8 @@ public class HorseMuleController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -166,15 +167,7 @@ public class HorseMuleController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -207,15 +200,7 @@ public class HorseMuleController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseSkeletonController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseSkeletonController.java index 0e37189df..d42a366a1 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseSkeletonController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseSkeletonController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftSkeletonHorse; import org.bukkit.entity.SkeletonHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -37,17 +37,17 @@ public class HorseSkeletonController extends MobEntityController { super(EntityHorseSkeletonNPC.class); } - @Override - public SkeletonHorse getBukkitEntity() { - return (SkeletonHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public SkeletonHorse getBukkitEntity() { + return (SkeletonHorse) super.getBukkitEntity(); + } + public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { private double baseMovementSpeed; @@ -69,6 +69,11 @@ public class HorseSkeletonController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -89,12 +94,8 @@ public class HorseSkeletonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -167,15 +168,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -208,15 +201,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseZombieController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseZombieController.java index a5a74b8fb..14cb66c1e 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseZombieController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HorseZombieController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftZombieHorse; import org.bukkit.entity.ZombieHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -37,17 +37,17 @@ public class HorseZombieController extends MobEntityController { super(EntityHorseZombieNPC.class); } - @Override - public ZombieHorse getBukkitEntity() { - return (ZombieHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public ZombieHorse getBukkitEntity() { + return (ZombieHorse) super.getBukkitEntity(); + } + public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { private double baseMovementSpeed; @@ -69,6 +69,11 @@ public class HorseZombieController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -89,12 +94,8 @@ public class HorseZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -167,15 +168,7 @@ public class HorseZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -208,15 +201,7 @@ public class HorseZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/IllusionerController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/IllusionerController.java index 92e0ee190..f0d223261 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/IllusionerController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/IllusionerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftIllusioner; import org.bukkit.entity.Illusioner; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class IllusionerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class IllusionerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -128,15 +130,7 @@ public class IllusionerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -168,15 +162,7 @@ public class IllusionerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/IronGolemController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/IronGolemController.java index 7b635c78c..dece7dec9 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/IronGolemController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/IronGolemController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftIronGolem; import org.bukkit.entity.IronGolem; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class IronGolemController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class IronGolemController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +129,7 @@ public class IronGolemController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -168,15 +162,7 @@ public class IronGolemController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/LlamaController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/LlamaController.java index c67ed0b91..a3d068824 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/LlamaController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/LlamaController.java @@ -8,15 +8,15 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftLlama; import org.bukkit.entity.Llama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -35,17 +35,17 @@ public class LlamaController extends MobEntityController { super(EntityLlamaNPC.class); } - @Override - public Llama getBukkitEntity() { - return (Llama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Llama getBukkitEntity() { + return (Llama) super.getBukkitEntity(); + } + public static class EntityLlamaNPC extends EntityLlama implements NPCHolder { private final CitizensNPC npc; @@ -61,6 +61,11 @@ public class LlamaController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -81,12 +86,8 @@ public class LlamaController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -151,15 +152,7 @@ public class LlamaController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -192,15 +185,7 @@ public class LlamaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MagmaCubeController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MagmaCubeController.java index 2290a8ad1..3ebc5587a 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MagmaCubeController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MagmaCubeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftMagmaCube; import org.bukkit.entity.MagmaCube; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_13_R2.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -55,6 +56,11 @@ public class MagmaCubeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -64,12 +70,8 @@ public class MagmaCubeController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -140,15 +142,7 @@ public class MagmaCubeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -181,15 +175,7 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MushroomCowController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MushroomCowController.java index 1dbfadfe2..82ecfdf08 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MushroomCowController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MushroomCowController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftMushroomCow; import org.bukkit.entity.MushroomCow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -52,6 +53,11 @@ public class MushroomCowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -72,12 +78,8 @@ public class MushroomCowController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -148,15 +150,7 @@ public class MushroomCowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -189,15 +183,7 @@ public class MushroomCowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/OcelotController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/OcelotController.java index 78573df2f..02e715a54 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/OcelotController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/OcelotController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftOcelot; import org.bukkit.entity.Ocelot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class OcelotController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -69,12 +75,8 @@ public class OcelotController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -146,15 +148,7 @@ public class OcelotController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -187,15 +181,7 @@ public class OcelotController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ParrotController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ParrotController.java index 8bc541e13..79082aebb 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ParrotController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ParrotController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftParrot; import org.bukkit.entity.Parrot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; import net.minecraft.server.v1_13_R2.EntityBoat; @@ -49,14 +50,15 @@ public class ParrotController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -114,15 +116,7 @@ public class ParrotController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PhantomController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PhantomController.java index 68eff8c9f..585e4083a 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PhantomController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PhantomController.java @@ -9,14 +9,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftPhantom; import org.bukkit.entity.Phantom; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.ControllerLook; import net.minecraft.server.v1_13_R2.ControllerMove; @@ -61,6 +61,11 @@ public class PhantomController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -70,12 +75,8 @@ public class PhantomController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -146,15 +147,7 @@ public class PhantomController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -186,15 +179,7 @@ public class PhantomController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PigController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PigController.java index 7a9118fca..5fc9806f1 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PigController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PigController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftPig; import org.bukkit.entity.Pig; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -50,6 +51,11 @@ public class PigController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -70,12 +76,8 @@ public class PigController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -146,15 +148,7 @@ public class PigController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -187,15 +181,7 @@ public class PigController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PigZombieController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PigZombieController.java index 8186e4d46..81819db4e 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PigZombieController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PigZombieController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftPigZombie; import org.bukkit.entity.PigZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -50,6 +51,11 @@ public class PigZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -59,12 +65,8 @@ public class PigZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -128,15 +130,7 @@ public class PigZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -169,15 +163,7 @@ public class PigZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PolarBearController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PolarBearController.java index cd3e30425..26d78c7d4 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PolarBearController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PolarBearController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftPolarBear; import org.bukkit.entity.PolarBear; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; import net.minecraft.server.v1_13_R2.EntityBoat; @@ -47,6 +48,11 @@ public class PolarBearController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -60,12 +66,8 @@ public class PolarBearController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -114,15 +116,7 @@ public class PolarBearController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PufferFishController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PufferFishController.java index 637f00b09..973615f54 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PufferFishController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/PufferFishController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftPufferFish; import org.bukkit.entity.PufferFish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.versioned.PufferFishTrait; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.ControllerMove; import net.minecraft.server.v1_13_R2.DamageSource; @@ -58,6 +59,11 @@ public class PufferFishController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -67,12 +73,8 @@ public class PufferFishController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -150,15 +152,7 @@ public class PufferFishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -190,15 +184,7 @@ public class PufferFishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/RabbitController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/RabbitController.java index 85f26b7dd..eed9d5afd 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/RabbitController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/RabbitController.java @@ -7,14 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftRabbit; import org.bukkit.entity.Rabbit; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -51,6 +51,11 @@ public class RabbitController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -71,12 +76,8 @@ public class RabbitController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -141,15 +142,7 @@ public class RabbitController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -187,15 +180,7 @@ public class RabbitController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SalmonController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SalmonController.java index 00f06c395..fbf6a3a09 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SalmonController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SalmonController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftSalmon; import org.bukkit.entity.Salmon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.ControllerMove; import net.minecraft.server.v1_13_R2.DamageSource; @@ -57,6 +58,11 @@ public class SalmonController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -66,12 +72,8 @@ public class SalmonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -148,15 +150,7 @@ public class SalmonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -188,15 +182,7 @@ public class SalmonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SheepController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SheepController.java index 5e4d2b200..81c0a62e0 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SheepController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SheepController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftSheep; import org.bukkit.entity.Sheep; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class SheepController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -69,12 +75,8 @@ public class SheepController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -138,15 +140,7 @@ public class SheepController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -179,15 +173,7 @@ public class SheepController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ShulkerController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ShulkerController.java index 38afb77e3..407985557 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ShulkerController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ShulkerController.java @@ -9,14 +9,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftShulker; import org.bukkit.entity.Shulker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -53,6 +53,11 @@ public class ShulkerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -62,12 +67,8 @@ public class ShulkerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -131,15 +132,7 @@ public class ShulkerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -171,15 +164,7 @@ public class ShulkerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SilverfishController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SilverfishController.java index c074931f5..b1a4c6ee7 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SilverfishController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SilverfishController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftSilverfish; import org.bukkit.entity.Silverfish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class SilverfishController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class SilverfishController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,13 +129,7 @@ public class SilverfishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -165,15 +161,7 @@ public class SilverfishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonController.java index add71dc0a..5c8e2447f 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftSkeleton; import org.bukkit.entity.Skeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class SkeletonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class SkeletonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +129,7 @@ public class SkeletonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -167,15 +161,7 @@ public class SkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonStrayController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonStrayController.java index 20d28f1dc..43b877cda 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonStrayController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonStrayController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftStray; import org.bukkit.entity.Stray; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class SkeletonStrayController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class SkeletonStrayController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +129,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -167,15 +161,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonWitherController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonWitherController.java index edeebfb19..8bc0878ff 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonWitherController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SkeletonWitherController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftWitherSkeleton; import org.bukkit.entity.WitherSkeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class SkeletonWitherController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class SkeletonWitherController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +129,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -167,15 +161,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SlimeController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SlimeController.java index 8f76541fd..a65967335 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SlimeController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SlimeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftSlime; import org.bukkit.entity.Slime; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_13_R2.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -55,6 +56,11 @@ public class SlimeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -64,12 +70,8 @@ public class SlimeController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -141,15 +143,7 @@ public class SlimeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -181,15 +175,7 @@ public class SlimeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SnowmanController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SnowmanController.java index 6f5ab5811..5ae423072 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SnowmanController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SnowmanController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftSnowman; import org.bukkit.entity.Snowman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class SnowmanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class SnowmanController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +129,7 @@ public class SnowmanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -167,15 +161,7 @@ public class SnowmanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SpiderController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SpiderController.java index cc91dc01b..787a7441f 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SpiderController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SpiderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftSpider; import org.bukkit.entity.Spider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class SpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class SpiderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +129,7 @@ public class SpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -167,15 +161,7 @@ public class SpiderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SquidController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SquidController.java index c20218350..1dc86b26a 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SquidController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/SquidController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftSquid; import org.bukkit.entity.Squid; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class SquidController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class SquidController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +129,7 @@ public class SquidController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -167,15 +161,7 @@ public class SquidController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/TropicalFishController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/TropicalFishController.java index c0e419434..eadbad6ff 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/TropicalFishController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/TropicalFishController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftTropicalFish; import org.bukkit.entity.TropicalFish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.ControllerMove; import net.minecraft.server.v1_13_R2.DamageSource; @@ -57,6 +58,11 @@ public class TropicalFishController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -66,12 +72,8 @@ public class TropicalFishController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -148,15 +150,7 @@ public class TropicalFishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -188,15 +182,7 @@ public class TropicalFishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/TurtleController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/TurtleController.java index be23e372d..04e00dd91 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/TurtleController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/TurtleController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftTurtle; import org.bukkit.entity.Turtle; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.ControllerJump; import net.minecraft.server.v1_13_R2.ControllerMove; @@ -56,6 +57,11 @@ public class TurtleController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -65,12 +71,8 @@ public class TurtleController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -136,15 +138,7 @@ public class TurtleController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -176,15 +170,7 @@ public class TurtleController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VexController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VexController.java index 95443591e..6fc49b262 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VexController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VexController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftVex; import org.bukkit.entity.Vex; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; import net.minecraft.server.v1_13_R2.EntityBoat; @@ -50,14 +51,15 @@ public class VexController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -106,15 +108,7 @@ public class VexController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VillagerController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VillagerController.java index ed6333524..10db212bb 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VillagerController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VillagerController.java @@ -9,13 +9,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftVillager; import org.bukkit.entity.Villager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -57,6 +58,11 @@ public class VillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -77,12 +83,8 @@ public class VillagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -168,15 +170,7 @@ public class VillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -208,15 +202,7 @@ public class VillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VindicatorController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VindicatorController.java index fab6cb0ef..c0943e528 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VindicatorController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/VindicatorController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftVindicator; import org.bukkit.entity.Vindicator; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class VindicatorController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -69,12 +75,8 @@ public class VindicatorController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -139,15 +141,7 @@ public class VindicatorController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -179,15 +173,7 @@ public class VindicatorController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WitchController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WitchController.java index 79f755873..ce59245dc 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WitchController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WitchController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftWitch; import org.bukkit.entity.Witch; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class WitchController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class WitchController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +129,7 @@ public class WitchController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -167,15 +161,7 @@ public class WitchController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WitherController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WitherController.java index 206ab860e..3a7c97790 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WitherController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WitherController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftWither; import org.bukkit.entity.Wither; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; import net.minecraft.server.v1_13_R2.EntityBoat; @@ -47,14 +48,15 @@ public class WitherController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -108,15 +110,7 @@ public class WitherController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -148,15 +142,7 @@ public class WitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WolfController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WolfController.java index 96f1ef44a..5dbd19eaf 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WolfController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/WolfController.java @@ -8,13 +8,14 @@ import org.bukkit.entity.Wolf; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -51,6 +52,11 @@ public class WolfController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -71,12 +77,8 @@ public class WolfController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -141,15 +143,7 @@ public class WolfController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -181,15 +175,7 @@ public class WolfController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieController.java index 1ba581506..02ce101e8 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftZombie; import org.bukkit.entity.Zombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class ZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class ZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +129,7 @@ public class ZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -167,15 +161,7 @@ public class ZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieHuskController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieHuskController.java index 8dc043a83..95957c6bc 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieHuskController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieHuskController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftHusk; import org.bukkit.entity.Husk; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class ZombieHuskController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class ZombieHuskController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +129,7 @@ public class ZombieHuskController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -167,15 +161,7 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieVillagerController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieVillagerController.java index b78d869d6..a89ef61c2 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieVillagerController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ZombieVillagerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftVillagerZombie; import org.bukkit.entity.ZombieVillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.DamageSource; import net.minecraft.server.v1_13_R2.Entity; @@ -49,6 +50,11 @@ public class ZombieVillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class ZombieVillagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +129,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -167,15 +161,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/AreaEffectCloudController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/AreaEffectCloudController.java index 9d80b399c..961771ffb 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/AreaEffectCloudController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/AreaEffectCloudController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityAreaEffectCloud; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -54,6 +56,11 @@ public class AreaEffectCloudController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ArmorStandController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ArmorStandController.java index 77e848946..04948abde 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ArmorStandController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ArmorStandController.java @@ -11,9 +11,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityArmorStand; import net.minecraft.server.v1_13_R2.EntityHuman; import net.minecraft.server.v1_13_R2.EnumHand; @@ -60,6 +62,11 @@ public class ArmorStandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand enumhand) { if (npc == null) { diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/BoatController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/BoatController.java index d42709610..0011ee848 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/BoatController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/BoatController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityBoat; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -55,6 +57,11 @@ public class BoatController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/DragonFireballController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/DragonFireballController.java index aa83fba71..273a33847 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/DragonFireballController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/DragonFireballController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityDragonFireball; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -55,6 +57,11 @@ public class DragonFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EggController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EggController.java index 04533458f..13cd1a288 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EggController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EggController.java @@ -11,10 +11,12 @@ import org.bukkit.entity.Entity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityEgg; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -70,6 +72,11 @@ public class EggController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderCrystalController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderCrystalController.java index 60a6b17d1..56362d6a0 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderCrystalController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderCrystalController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityEnderCrystal; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -54,6 +56,11 @@ public class EnderCrystalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderPearlController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderPearlController.java index 4477058d6..e2fb9bc43 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderPearlController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderPearlController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityEnderPearl; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -54,6 +56,11 @@ public class EnderPearlController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderSignalController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderSignalController.java index e4941de11..a1d0f16e6 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderSignalController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EnderSignalController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityEnderSignal; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -54,6 +56,11 @@ public class EnderSignalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EvokerFangsController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EvokerFangsController.java index c89ea774e..196a0be7d 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EvokerFangsController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/EvokerFangsController.java @@ -11,9 +11,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityEvokerFangs; import net.minecraft.server.v1_13_R2.EntityHuman; import net.minecraft.server.v1_13_R2.EnumHand; @@ -46,6 +48,11 @@ public class EvokerFangsController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand enumhand) { if (npc == null) { diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ExperienceOrbController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ExperienceOrbController.java index 9286e9c28..edd6099d8 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ExperienceOrbController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ExperienceOrbController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityExperienceOrb; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -40,6 +42,11 @@ public class ExperienceOrbController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FallingBlockController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FallingBlockController.java index e4520273c..d07b18041 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FallingBlockController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FallingBlockController.java @@ -12,11 +12,13 @@ import org.bukkit.entity.FallingBlock; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.Block; import net.minecraft.server.v1_13_R2.EntityFallingBlock; import net.minecraft.server.v1_13_R2.EnumMoveType; @@ -63,6 +65,11 @@ public class FallingBlockController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FireworkController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FireworkController.java index 555708616..069c7d08b 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FireworkController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FireworkController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityFireworks; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -40,6 +42,11 @@ public class FireworkController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FishingHookController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FishingHookController.java index 72c1d869a..47806ff57 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FishingHookController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FishingHookController.java @@ -13,9 +13,11 @@ import com.mojang.authlib.GameProfile; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityFishingHook; import net.minecraft.server.v1_13_R2.EntityPlayer; import net.minecraft.server.v1_13_R2.FluidType; @@ -49,6 +51,11 @@ public class FishingHookController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemController.java index 14c003a04..e002b6dd0 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemController.java @@ -11,10 +11,12 @@ import org.bukkit.entity.Item; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityHuman; import net.minecraft.server.v1_13_R2.EntityItem; import net.minecraft.server.v1_13_R2.FluidType; @@ -53,6 +55,11 @@ public class ItemController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemFrameController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemFrameController.java index a37985ee2..26d40a912 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemFrameController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemFrameController.java @@ -11,9 +11,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.EntityItemFrame; import net.minecraft.server.v1_13_R2.EnumDirection; @@ -53,6 +55,11 @@ public class ItemFrameController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LargeFireballController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LargeFireballController.java index 5bf45bd06..4d047cc05 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LargeFireballController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LargeFireballController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityLargeFireball; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -41,6 +43,11 @@ public class LargeFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LeashController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LeashController.java index 492c14f83..fd4d4c4ca 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LeashController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LeashController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityLeash; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -40,6 +42,11 @@ public class LeashController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LlamaSpitController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LlamaSpitController.java index 40dfc1ceb..1ca8c082c 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LlamaSpitController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/LlamaSpitController.java @@ -11,10 +11,12 @@ import org.bukkit.entity.LlamaSpit; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityLlama; import net.minecraft.server.v1_13_R2.EntityLlamaSpit; import net.minecraft.server.v1_13_R2.FluidType; @@ -58,6 +60,11 @@ public class LlamaSpitController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartChestController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartChestController.java index 442920795..120fdc32f 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartChestController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartChestController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityMinecartChest; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -41,6 +43,11 @@ public class MinecartChestController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartCommandController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartCommandController.java index be0fb0ab2..32875e82d 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartCommandController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartCommandController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityMinecartCommandBlock; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -41,6 +43,11 @@ public class MinecartCommandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartFurnaceController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartFurnaceController.java index 5e6dc0668..6d76fb996 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartFurnaceController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartFurnaceController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityMinecartFurnace; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -41,6 +43,11 @@ public class MinecartFurnaceController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartHopperController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartHopperController.java index 9c017ee63..24dff06f1 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartHopperController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartHopperController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityMinecartHopper; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -37,6 +39,11 @@ public class MinecartHopperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartRideableController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartRideableController.java index 2763eafd8..18db17dd5 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartRideableController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartRideableController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityMinecartRideable; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -41,6 +43,11 @@ public class MinecartRideableController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartSpawnerController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartSpawnerController.java index ac84cb68e..4422e04c8 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartSpawnerController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartSpawnerController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityMinecartMobSpawner; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -37,6 +39,11 @@ public class MinecartSpawnerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartTNTController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartTNTController.java index 9ecd140a2..dec4c4c9a 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartTNTController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/MinecartTNTController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityMinecartTNT; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -37,6 +39,11 @@ public class MinecartTNTController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/PaintingController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/PaintingController.java index e2c36bec1..300b1ed3a 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/PaintingController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/PaintingController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityPainting; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -40,6 +42,11 @@ public class PaintingController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ShulkerBulletController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ShulkerBulletController.java index 4258c3524..3a37ba025 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ShulkerBulletController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ShulkerBulletController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityShulkerBullet; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -40,6 +42,11 @@ public class ShulkerBulletController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SmallFireballController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SmallFireballController.java index 458ff4a2f..c927a55af 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SmallFireballController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SmallFireballController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntitySmallFireball; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -40,6 +42,11 @@ public class SmallFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SnowballController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SnowballController.java index 4dbd03146..c0987889c 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SnowballController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SnowballController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntitySnowball; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -40,6 +42,11 @@ public class SnowballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SpectralArrowController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SpectralArrowController.java index b8a1d8cc8..26ef1a1b0 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SpectralArrowController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/SpectralArrowController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntitySpectralArrow; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -40,6 +42,11 @@ public class SpectralArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/TNTPrimedController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/TNTPrimedController.java index bc05a48fc..83c1e90dd 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/TNTPrimedController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/TNTPrimedController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityTNTPrimed; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -40,6 +42,11 @@ public class TNTPrimedController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownExpBottleController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownExpBottleController.java index 05d9eee33..8508f9422 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownExpBottleController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownExpBottleController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityThrownExpBottle; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -40,6 +42,11 @@ public class ThrownExpBottleController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownPotionController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownPotionController.java index 3aa7ef00c..94d8c82e8 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownPotionController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownPotionController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityPotion; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.Items; @@ -41,6 +43,11 @@ public class ThrownPotionController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownTridentController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownTridentController.java index 31253441e..2d1dfa66d 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownTridentController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ThrownTridentController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityThrownTrident; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -40,6 +42,11 @@ public class ThrownTridentController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/TippedArrowController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/TippedArrowController.java index 56a181193..b7ae79442 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/TippedArrowController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/TippedArrowController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityTippedArrow; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -40,6 +42,11 @@ public class TippedArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/WitherSkullController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/WitherSkullController.java index db9c2fd18..1f1ad589e 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/WitherSkullController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/WitherSkullController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_13_R2.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_13_R2.AxisAlignedBB; import net.minecraft.server.v1_13_R2.EntityWitherSkull; import net.minecraft.server.v1_13_R2.FluidType; import net.minecraft.server.v1_13_R2.NBTTagCompound; @@ -40,6 +42,11 @@ public class WitherSkullController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { double mx = motX; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSBoundingBox.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSBoundingBox.java index 4e9cc0259..5bb074cae 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSBoundingBox.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSBoundingBox.java @@ -1,7 +1,9 @@ package net.citizensnpcs.nms.v1_13_R2.util; import java.lang.reflect.Field; +import java.util.function.Supplier; +import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.util.BoundingBox; import net.citizensnpcs.util.NMS; import net.minecraft.server.v1_13_R2.AxisAlignedBB; @@ -10,6 +12,15 @@ public class NMSBoundingBox { private NMSBoundingBox() { } + public static AxisAlignedBB convert(BoundingBox box) { + return new AxisAlignedBB(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ); + } + + public static AxisAlignedBB makeBB(NPC npc, AxisAlignedBB def) { + return npc == null || !npc.data().has(NPC.Metadata.BOUNDING_BOX_FUNCTION) ? def + : convert(npc.data().> get(NPC.Metadata.BOUNDING_BOX_FUNCTION).get()); + } + public static BoundingBox wrap(AxisAlignedBB bb) { double minX = 0, minY = 0, minZ = 0, maxX = 0, maxY = 0, maxZ = 0; try { diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/BatController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/BatController.java index ef02e011f..14118570f 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/BatController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/BatController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.Bat; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; import net.minecraft.server.v1_14_R1.EntityBat; @@ -66,14 +67,15 @@ public class BatController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class BatController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/BlazeController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/BlazeController.java index b1046e7f7..2c0a0bd77 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/BlazeController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/BlazeController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.Blaze; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; import net.minecraft.server.v1_14_R1.EntityBlaze; @@ -63,14 +64,15 @@ public class BlazeController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -107,15 +109,7 @@ public class BlazeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -156,15 +150,7 @@ public class BlazeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CatController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CatController.java index 1d623fbaa..9d201b539 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CatController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CatController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.Cat; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -68,6 +69,11 @@ public class CatController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -87,12 +93,8 @@ public class CatController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -145,15 +147,7 @@ public class CatController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -203,15 +197,7 @@ public class CatController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CaveSpiderController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CaveSpiderController.java index 43dfac116..62946dde4 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CaveSpiderController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CaveSpiderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.CaveSpider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -65,6 +66,11 @@ public class CaveSpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -74,12 +80,8 @@ public class CaveSpiderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -132,15 +134,7 @@ public class CaveSpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ChickenController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ChickenController.java index 1972ed0f5..ce6703166 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ChickenController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ChickenController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.Chicken; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -68,6 +69,11 @@ public class ChickenController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -88,12 +94,8 @@ public class ChickenController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -146,15 +148,7 @@ public class ChickenController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -204,15 +198,7 @@ public class ChickenController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CodController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CodController.java index 549eb8d0f..2b2755d9c 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CodController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CodController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.Cod; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.ControllerMove; import net.minecraft.server.v1_14_R1.DamageSource; @@ -73,6 +74,11 @@ public class CodController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -82,12 +88,8 @@ public class CodController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -152,15 +154,7 @@ public class CodController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -210,15 +204,7 @@ public class CodController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CowController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CowController.java index efc162904..11dc602c2 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CowController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CowController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.Cow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -72,6 +73,11 @@ public class CowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -91,12 +97,8 @@ public class CowController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -160,15 +162,7 @@ public class CowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -218,15 +212,7 @@ public class CowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CreeperController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CreeperController.java index ff67a419f..40a6946d6 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CreeperController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/CreeperController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.Creeper; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -68,6 +69,11 @@ public class CreeperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -77,12 +83,8 @@ public class CreeperController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -134,15 +136,7 @@ public class CreeperController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -192,15 +186,7 @@ public class CreeperController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/DolphinController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/DolphinController.java index 86acb713b..60cea8361 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/DolphinController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/DolphinController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.Dolphin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.ControllerMove; import net.minecraft.server.v1_14_R1.DamageSource; @@ -74,6 +75,11 @@ public class DolphinController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -83,12 +89,8 @@ public class DolphinController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -147,15 +149,7 @@ public class DolphinController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -205,15 +199,7 @@ public class DolphinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/DrownedController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/DrownedController.java index dad415824..239ebf983 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/DrownedController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/DrownedController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.Drowned; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -65,6 +66,11 @@ public class DrownedController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -74,12 +80,8 @@ public class DrownedController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -131,15 +133,7 @@ public class DrownedController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -189,15 +183,7 @@ public class DrownedController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EnderDragonController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EnderDragonController.java index 16fa3a533..fbd7abd75 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EnderDragonController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EnderDragonController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.EnderDragon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; import net.minecraft.server.v1_14_R1.EntityBoat; @@ -63,14 +64,15 @@ public class EnderDragonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -106,15 +108,7 @@ public class EnderDragonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -155,15 +149,7 @@ public class EnderDragonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EndermanController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EndermanController.java index 749140143..54aa04321 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EndermanController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EndermanController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.Enderman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -65,6 +66,11 @@ public class EndermanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -82,12 +88,8 @@ public class EndermanController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -139,15 +141,7 @@ public class EndermanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -197,15 +191,7 @@ public class EndermanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EndermiteController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EndermiteController.java index 90bc57432..134e18e2e 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EndermiteController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EndermiteController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.Endermite; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -65,6 +66,11 @@ public class EndermiteController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -74,12 +80,8 @@ public class EndermiteController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -131,15 +133,7 @@ public class EndermiteController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -189,15 +183,7 @@ public class EndermiteController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EvokerController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EvokerController.java index ecefb146d..c8d8210df 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EvokerController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EvokerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEvoker; import org.bukkit.entity.Evoker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class EvokerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class EvokerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -118,15 +120,7 @@ public class EvokerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -176,15 +170,7 @@ public class EvokerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/FoxController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/FoxController.java index 5a0e7ee84..09d4bfc32 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/FoxController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/FoxController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftFox; import org.bukkit.entity.Fox; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -54,6 +55,11 @@ public class FoxController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -73,12 +79,8 @@ public class FoxController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -131,15 +133,7 @@ public class FoxController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -189,15 +183,7 @@ public class FoxController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GhastController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GhastController.java index 62e2eb2fa..d8dc179c2 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GhastController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GhastController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftGhast; import org.bukkit.entity.Ghast; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; import net.minecraft.server.v1_14_R1.EntityBoat; @@ -49,14 +50,15 @@ public class GhastController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -93,15 +95,7 @@ public class GhastController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -142,15 +136,7 @@ public class GhastController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GiantController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GiantController.java index 069cde6cc..3f7d3e6b5 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GiantController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GiantController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftGiant; import org.bukkit.entity.Giant; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class GiantController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class GiantController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class GiantController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -175,15 +169,7 @@ public class GiantController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GuardianController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GuardianController.java index 94fdbf634..0d6eec6a0 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GuardianController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GuardianController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftGuardian; import org.bukkit.entity.Guardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class GuardianController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class GuardianController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -118,15 +120,7 @@ public class GuardianController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -176,15 +170,7 @@ public class GuardianController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GuardianElderController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GuardianElderController.java index 52694bd24..eda983254 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GuardianElderController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/GuardianElderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.ElderGuardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class GuardianElderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class GuardianElderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -118,15 +120,7 @@ public class GuardianElderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -176,15 +170,7 @@ public class GuardianElderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseController.java index 711c949cb..d59b63680 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftHorse; import org.bukkit.entity.Horse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -40,23 +40,24 @@ public class HorseController extends MobEntityController { super(EntityHorseNPC.class); } - @Override - public Horse getBukkitEntity() { - return (Horse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Horse getBukkitEntity() { + return (Horse) super.getBukkitEntity(); + } + public static class EntityHorseNPC extends EntityHorse implements NPCHolder { private double baseMovementSpeed; private boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseNPC(EntityTypes types, World world) { @@ -73,6 +74,11 @@ public class HorseController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -93,12 +99,8 @@ public class HorseController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -164,15 +166,7 @@ public class HorseController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -222,15 +216,7 @@ public class HorseController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseDonkeyController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseDonkeyController.java index 3493bd4a1..1957e267e 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseDonkeyController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseDonkeyController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.entity.Donkey; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -40,23 +40,24 @@ public class HorseDonkeyController extends MobEntityController { super(EntityHorseDonkeyNPC.class); } - @Override - public Donkey getBukkitEntity() { - return (Donkey) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.addTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Donkey getBukkitEntity() { + return (Donkey) super.getBukkitEntity(); + } + public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseDonkeyNPC(EntityTypes types, World world) { @@ -72,6 +73,11 @@ public class HorseDonkeyController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -92,12 +98,8 @@ public class HorseDonkeyController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -163,15 +165,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -221,15 +215,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseMuleController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseMuleController.java index 36798d134..bcf6068bf 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseMuleController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseMuleController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftMule; import org.bukkit.entity.Mule; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -40,23 +40,24 @@ public class HorseMuleController extends MobEntityController { super(EntityHorseMuleNPC.class); } - @Override - public Mule getBukkitEntity() { - return (Mule) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Mule getBukkitEntity() { + return (Mule) super.getBukkitEntity(); + } + public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseMuleNPC(EntityTypes types, World world) { @@ -72,6 +73,11 @@ public class HorseMuleController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -92,12 +98,8 @@ public class HorseMuleController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -163,15 +165,7 @@ public class HorseMuleController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -221,15 +215,7 @@ public class HorseMuleController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseSkeletonController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseSkeletonController.java index 1b8a7b01c..769a28208 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseSkeletonController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseSkeletonController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSkeletonHorse; import org.bukkit.entity.SkeletonHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -40,23 +40,24 @@ public class HorseSkeletonController extends MobEntityController { super(EntityHorseSkeletonNPC.class); } - @Override - public SkeletonHorse getBukkitEntity() { - return (SkeletonHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public SkeletonHorse getBukkitEntity() { + return (SkeletonHorse) super.getBukkitEntity(); + } + public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseSkeletonNPC(EntityTypes types, World world) { @@ -73,6 +74,11 @@ public class HorseSkeletonController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -93,12 +99,8 @@ public class HorseSkeletonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -164,15 +166,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -222,15 +216,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseZombieController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseZombieController.java index c8f1e3c0b..c10e9763d 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseZombieController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HorseZombieController.java @@ -8,9 +8,8 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftZombieHorse; import org.bukkit.entity.ZombieHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +17,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -40,23 +40,24 @@ public class HorseZombieController extends MobEntityController { super(EntityHorseZombieNPC.class); } - @Override - public ZombieHorse getBukkitEntity() { - return (ZombieHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public ZombieHorse getBukkitEntity() { + return (ZombieHorse) super.getBukkitEntity(); + } + public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseZombieNPC(EntityTypes types, World world) { @@ -73,6 +74,11 @@ public class HorseZombieController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -93,12 +99,8 @@ public class HorseZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -164,15 +166,7 @@ public class HorseZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -222,15 +216,7 @@ public class HorseZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/IllusionerController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/IllusionerController.java index 353369940..0cca763eb 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/IllusionerController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/IllusionerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftIllusioner; import org.bukkit.entity.Illusioner; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class IllusionerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class IllusionerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -118,15 +120,7 @@ public class IllusionerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -176,15 +170,7 @@ public class IllusionerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/IronGolemController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/IronGolemController.java index f3f331bb0..d5d1b8924 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/IronGolemController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/IronGolemController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftIronGolem; import org.bukkit.entity.IronGolem; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class IronGolemController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class IronGolemController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class IronGolemController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -175,15 +169,7 @@ public class IronGolemController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/LlamaController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/LlamaController.java index f3af2911c..826c8baa2 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/LlamaController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/LlamaController.java @@ -8,15 +8,15 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftLlama; import org.bukkit.entity.Llama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -38,17 +38,17 @@ public class LlamaController extends MobEntityController { super(EntityLlamaNPC.class); } - @Override - public Llama getBukkitEntity() { - return (Llama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Llama getBukkitEntity() { + return (Llama) super.getBukkitEntity(); + } + public static class EntityLlamaNPC extends EntityLlama implements NPCHolder { boolean calledNMSHeight = false; @@ -66,6 +66,11 @@ public class LlamaController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -86,12 +91,8 @@ public class LlamaController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -144,15 +145,7 @@ public class LlamaController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -202,15 +195,7 @@ public class LlamaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MagmaCubeController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MagmaCubeController.java index 238ef83fa..e8b15360f 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MagmaCubeController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MagmaCubeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftMagmaCube; import org.bukkit.entity.MagmaCube; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_14_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -57,6 +58,11 @@ public class MagmaCubeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -66,12 +72,8 @@ public class MagmaCubeController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -123,15 +125,7 @@ public class MagmaCubeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -181,15 +175,7 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MushroomCowController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MushroomCowController.java index 97e6bf1dc..a2f554c92 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MushroomCowController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MushroomCowController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftMushroomCow; import org.bukkit.entity.MushroomCow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -57,6 +58,11 @@ public class MushroomCowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -77,12 +83,8 @@ public class MushroomCowController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -141,15 +143,7 @@ public class MushroomCowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -199,15 +193,7 @@ public class MushroomCowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/OcelotController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/OcelotController.java index 04467e88a..f57963161 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/OcelotController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/OcelotController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftOcelot; import org.bukkit.entity.Ocelot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -54,6 +55,11 @@ public class OcelotController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -74,12 +80,8 @@ public class OcelotController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -139,15 +141,7 @@ public class OcelotController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -197,15 +191,7 @@ public class OcelotController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PandaController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PandaController.java index 32184b33b..c7114a39f 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PandaController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PandaController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPanda; import org.bukkit.entity.Panda; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -54,6 +55,11 @@ public class PandaController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -73,12 +79,8 @@ public class PandaController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -131,15 +133,7 @@ public class PandaController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -189,15 +183,7 @@ public class PandaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ParrotController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ParrotController.java index ed99eff9b..c3f54ddac 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ParrotController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ParrotController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftParrot; import org.bukkit.entity.Parrot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; import net.minecraft.server.v1_14_R1.EntityBoat; @@ -51,14 +52,15 @@ public class ParrotController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -104,15 +106,7 @@ public class ParrotController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PhantomController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PhantomController.java index db70dfc69..307833d33 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PhantomController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PhantomController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPhantom; import org.bukkit.entity.Phantom; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.ControllerLook; import net.minecraft.server.v1_14_R1.ControllerMove; @@ -59,6 +60,11 @@ public class PhantomController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -68,12 +74,8 @@ public class PhantomController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -132,15 +134,7 @@ public class PhantomController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -190,15 +184,7 @@ public class PhantomController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PigController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PigController.java index 3db5a1432..d05aab387 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PigController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PigController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPig; import org.bukkit.entity.Pig; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -55,6 +56,11 @@ public class PigController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -75,12 +81,8 @@ public class PigController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -139,15 +141,7 @@ public class PigController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -197,15 +191,7 @@ public class PigController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PigZombieController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PigZombieController.java index 0742504fe..6b32979f0 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PigZombieController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PigZombieController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPigZombie; import org.bukkit.entity.PigZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -52,6 +53,11 @@ public class PigZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class PigZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -118,15 +120,7 @@ public class PigZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -176,15 +170,7 @@ public class PigZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PillagerController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PillagerController.java index 535310fef..f5d88f634 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PillagerController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PillagerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPillager; import org.bukkit.entity.Pillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -54,6 +55,11 @@ public class PillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -73,12 +79,8 @@ public class PillagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -131,15 +133,7 @@ public class PillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -189,15 +183,7 @@ public class PillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PolarBearController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PolarBearController.java index 52c2c3fb1..6f0c240ef 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PolarBearController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PolarBearController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPolarBear; import org.bukkit.entity.PolarBear; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; import net.minecraft.server.v1_14_R1.Entity; @@ -52,6 +53,11 @@ public class PolarBearController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -65,12 +71,8 @@ public class PolarBearController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -107,15 +109,7 @@ public class PolarBearController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PufferFishController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PufferFishController.java index a2291cde1..fa66b4057 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PufferFishController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/PufferFishController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPufferFish; import org.bukkit.entity.PufferFish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.versioned.PufferFishTrait; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.ControllerMove; import net.minecraft.server.v1_14_R1.DamageSource; @@ -62,6 +63,11 @@ public class PufferFishController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -71,12 +77,8 @@ public class PufferFishController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -150,15 +152,7 @@ public class PufferFishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -208,15 +202,7 @@ public class PufferFishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/RabbitController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/RabbitController.java index 7d512bc80..a969c0171 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/RabbitController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/RabbitController.java @@ -7,14 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftRabbit; import org.bukkit.entity.Rabbit; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -56,6 +56,11 @@ public class RabbitController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -76,12 +81,8 @@ public class RabbitController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -134,15 +135,7 @@ public class RabbitController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -197,15 +190,7 @@ public class RabbitController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/RavagerController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/RavagerController.java index dba81ae63..07c32f652 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/RavagerController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/RavagerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftRavager; import org.bukkit.entity.Ravager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -54,6 +55,11 @@ public class RavagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -73,12 +79,8 @@ public class RavagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -131,15 +133,7 @@ public class RavagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -189,15 +183,7 @@ public class RavagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SalmonController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SalmonController.java index a20726a2d..b19a65c23 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SalmonController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SalmonController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSalmon; import org.bukkit.entity.Salmon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.ControllerMove; import net.minecraft.server.v1_14_R1.DamageSource; @@ -59,6 +60,11 @@ public class SalmonController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -68,12 +74,8 @@ public class SalmonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -138,15 +140,7 @@ public class SalmonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -196,15 +190,7 @@ public class SalmonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SheepController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SheepController.java index bc62101ac..d8ebbffcf 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SheepController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SheepController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSheep; import org.bukkit.entity.Sheep; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -54,6 +55,11 @@ public class SheepController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -74,12 +80,8 @@ public class SheepController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -131,15 +133,7 @@ public class SheepController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -189,15 +183,7 @@ public class SheepController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ShulkerController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ShulkerController.java index 6581d6794..b8060309c 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ShulkerController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ShulkerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftShulker; import org.bukkit.entity.Shulker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -52,6 +53,11 @@ public class ShulkerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class ShulkerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -118,15 +120,7 @@ public class ShulkerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -176,15 +170,7 @@ public class ShulkerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SilverfishController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SilverfishController.java index e78ded6ae..46340411b 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SilverfishController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SilverfishController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSilverfish; import org.bukkit.entity.Silverfish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class SilverfishController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class SilverfishController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,13 +119,7 @@ public class SilverfishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -173,15 +169,7 @@ public class SilverfishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SkeletonController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SkeletonController.java index 7d267f75f..06773fe97 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SkeletonController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SkeletonController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSkeleton; import org.bukkit.entity.Skeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class SkeletonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class SkeletonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class SkeletonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -175,15 +169,7 @@ public class SkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SkeletonStrayController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SkeletonStrayController.java index 2ff1f9c78..5ad5de17d 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SkeletonStrayController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SkeletonStrayController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftStray; import org.bukkit.entity.Stray; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class SkeletonStrayController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class SkeletonStrayController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -175,15 +169,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SkeletonWitherController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SkeletonWitherController.java index 630ceb9d0..9532bb6d1 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SkeletonWitherController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SkeletonWitherController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftWitherSkeleton; import org.bukkit.entity.WitherSkeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class SkeletonWitherController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class SkeletonWitherController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -175,15 +169,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SlimeController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SlimeController.java index 53f1b82e1..28872b3f7 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SlimeController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SlimeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSlime; import org.bukkit.entity.Slime; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_14_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -57,6 +58,11 @@ public class SlimeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -66,12 +72,8 @@ public class SlimeController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -124,15 +126,7 @@ public class SlimeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -182,15 +176,7 @@ public class SlimeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SnowmanController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SnowmanController.java index 005fa5740..fe1b06cff 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SnowmanController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SnowmanController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowman; import org.bukkit.entity.Snowman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class SnowmanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class SnowmanController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class SnowmanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -175,15 +169,7 @@ public class SnowmanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SpiderController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SpiderController.java index 314a76176..3743a175f 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SpiderController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SpiderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSpider; import org.bukkit.entity.Spider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class SpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class SpiderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class SpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -175,15 +169,7 @@ public class SpiderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SquidController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SquidController.java index bb0e0b87a..f5498d352 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SquidController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/SquidController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSquid; import org.bukkit.entity.Squid; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class SquidController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class SquidController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class SquidController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -175,15 +169,7 @@ public class SquidController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/TraderLlamaController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/TraderLlamaController.java index ed0a357be..77316adb6 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/TraderLlamaController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/TraderLlamaController.java @@ -10,15 +10,15 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftTraderLlama; import org.bukkit.entity.TraderLlama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -40,19 +40,20 @@ public class TraderLlamaController extends MobEntityController { super(EntityTraderLlamaNPC.class); } - @Override - public TraderLlama getBukkitEntity() { - return (TraderLlama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public TraderLlama getBukkitEntity() { + return (TraderLlama) super.getBukkitEntity(); + } + public static class EntityTraderLlamaNPC extends EntityLlamaTrader implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityTraderLlamaNPC(EntityTypes types, World world) { @@ -68,6 +69,11 @@ public class TraderLlamaController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -88,12 +94,8 @@ public class TraderLlamaController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -146,15 +148,7 @@ public class TraderLlamaController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -204,15 +198,7 @@ public class TraderLlamaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/TropicalFishController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/TropicalFishController.java index 9ce5ee95e..e253dfab2 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/TropicalFishController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/TropicalFishController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftTropicalFish; import org.bukkit.entity.TropicalFish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.ControllerMove; import net.minecraft.server.v1_14_R1.DamageSource; @@ -59,6 +60,11 @@ public class TropicalFishController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -68,12 +74,8 @@ public class TropicalFishController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -138,15 +140,7 @@ public class TropicalFishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -196,15 +190,7 @@ public class TropicalFishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/TurtleController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/TurtleController.java index 24e19c914..2e074d757 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/TurtleController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/TurtleController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftTurtle; import org.bukkit.entity.Turtle; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.ControllerJump; import net.minecraft.server.v1_14_R1.ControllerMove; @@ -58,6 +59,11 @@ public class TurtleController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -67,12 +73,8 @@ public class TurtleController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -126,15 +128,7 @@ public class TurtleController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -184,15 +178,7 @@ public class TurtleController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VexController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VexController.java index c2e84ff6d..3b1ac8a0c 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VexController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VexController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftVex; import org.bukkit.entity.Vex; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; import net.minecraft.server.v1_14_R1.EntityBoat; @@ -52,14 +53,15 @@ public class VexController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -96,15 +98,7 @@ public class VexController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VillagerController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VillagerController.java index e93d5f314..65fa60c2e 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VillagerController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VillagerController.java @@ -10,13 +10,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftVillager; import org.bukkit.entity.Villager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BehaviorController; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; @@ -54,6 +55,7 @@ public class VillagerController extends MobEntityController { private boolean blockingATrade; boolean calledNMSHeight = false; + private final CitizensNPC npc; private BehaviorController previousBehaviorController; @@ -66,6 +68,11 @@ public class VillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -86,12 +93,8 @@ public class VillagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -165,15 +168,7 @@ public class VillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -223,15 +218,7 @@ public class VillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VindicatorController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VindicatorController.java index e1879d2ed..af63a4eba 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VindicatorController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VindicatorController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftVindicator; import org.bukkit.entity.Vindicator; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -54,6 +55,11 @@ public class VindicatorController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -74,12 +80,8 @@ public class VindicatorController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -132,15 +134,7 @@ public class VindicatorController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -190,15 +184,7 @@ public class VindicatorController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WanderingTraderController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WanderingTraderController.java index 40eec0545..d112580ea 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WanderingTraderController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WanderingTraderController.java @@ -11,14 +11,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftWanderingTrader; import org.bukkit.entity.WanderingTrader; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -51,6 +51,7 @@ public class WanderingTraderController extends MobEntityController { public static class EntityWanderingTraderNPC extends EntityVillagerTrader implements NPCHolder { private TreeMap behaviorMap; + private boolean blockingATrade; private boolean blockTrades = true; boolean calledNMSHeight = false; @@ -65,6 +66,11 @@ public class WanderingTraderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -85,12 +91,8 @@ public class WanderingTraderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -164,15 +166,7 @@ public class WanderingTraderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -226,15 +220,7 @@ public class WanderingTraderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WitchController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WitchController.java index 9a91604d4..7349e7552 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WitchController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WitchController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftWitch; import org.bukkit.entity.Witch; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class WitchController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class WitchController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class WitchController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -175,15 +169,7 @@ public class WitchController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WitherController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WitherController.java index 957a33694..918a48c2c 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WitherController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WitherController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftWither; import org.bukkit.entity.Wither; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; import net.minecraft.server.v1_14_R1.EntityBoat; @@ -49,14 +50,15 @@ public class WitherController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -98,15 +100,7 @@ public class WitherController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -147,15 +141,7 @@ public class WitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WolfController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WolfController.java index 2292c2c00..948c8ae9a 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WolfController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/WolfController.java @@ -8,13 +8,14 @@ import org.bukkit.entity.Wolf; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -56,6 +57,11 @@ public class WolfController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -76,12 +82,8 @@ public class WolfController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -134,15 +136,7 @@ public class WolfController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -192,15 +186,7 @@ public class WolfController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ZombieController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ZombieController.java index 7af0e1a67..cdbb9035d 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ZombieController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ZombieController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftZombie; import org.bukkit.entity.Zombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class ZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class ZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class ZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -175,15 +169,7 @@ public class ZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ZombieHuskController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ZombieHuskController.java index de066937c..9e2be2b58 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ZombieHuskController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ZombieHuskController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftHusk; import org.bukkit.entity.Husk; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class ZombieHuskController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class ZombieHuskController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class ZombieHuskController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -175,15 +169,7 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ZombieVillagerController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ZombieVillagerController.java index fbf6d5c38..ee00c1d61 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ZombieVillagerController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ZombieVillagerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftVillagerZombie; import org.bukkit.entity.ZombieVillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.Entity; @@ -51,6 +52,11 @@ public class ZombieVillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class ZombieVillagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -175,15 +169,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/AreaEffectCloudController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/AreaEffectCloudController.java index a2d7211f5..c115e6347 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/AreaEffectCloudController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/AreaEffectCloudController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityAreaEffectCloud; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -57,6 +59,11 @@ public class AreaEffectCloudController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ArmorStandController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ArmorStandController.java index 741413c35..b5eae1144 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ArmorStandController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ArmorStandController.java @@ -11,10 +11,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityArmorStand; import net.minecraft.server.v1_14_R1.EntityHuman; import net.minecraft.server.v1_14_R1.EntityTypes; @@ -62,6 +64,11 @@ public class ArmorStandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand enumhand) { if (npc == null) { diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/BoatController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/BoatController.java index f4ed48d72..9dd9c09e5 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/BoatController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/BoatController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityBoat; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -57,6 +59,11 @@ public class BoatController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/DragonFireballController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/DragonFireballController.java index a4dc9d43c..e665f3bc8 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/DragonFireballController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/DragonFireballController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityDragonFireball; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -57,6 +59,11 @@ public class DragonFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EggController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EggController.java index c52715d60..0269e14bb 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EggController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EggController.java @@ -11,11 +11,13 @@ import org.bukkit.entity.Entity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityEgg; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -73,6 +75,11 @@ public class EggController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderCrystalController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderCrystalController.java index 0d785e0bf..c5ef12234 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderCrystalController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderCrystalController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityEnderCrystal; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -57,6 +59,11 @@ public class EnderCrystalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderPearlController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderPearlController.java index 8a085c677..58e7224e6 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderPearlController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderPearlController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityEnderPearl; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -57,6 +59,11 @@ public class EnderPearlController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderSignalController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderSignalController.java index 674e9d04c..74198a209 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderSignalController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EnderSignalController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityEnderSignal; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -57,6 +59,11 @@ public class EnderSignalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EvokerFangsController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EvokerFangsController.java index 6722cab63..c724310a0 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EvokerFangsController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/EvokerFangsController.java @@ -11,10 +11,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityEvokerFangs; import net.minecraft.server.v1_14_R1.EntityHuman; import net.minecraft.server.v1_14_R1.EntityTypes; @@ -48,6 +50,11 @@ public class EvokerFangsController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand enumhand) { if (npc == null) { diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ExperienceOrbController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ExperienceOrbController.java index e6a92d1cf..f31af12e5 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ExperienceOrbController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ExperienceOrbController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityExperienceOrb; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class ExperienceOrbController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FallingBlockController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FallingBlockController.java index f5cc57f1a..296f7382c 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FallingBlockController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FallingBlockController.java @@ -12,11 +12,13 @@ import org.bukkit.entity.FallingBlock; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.Block; import net.minecraft.server.v1_14_R1.EntityFallingBlock; import net.minecraft.server.v1_14_R1.EntityTypes; @@ -65,6 +67,11 @@ public class FallingBlockController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FireworkController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FireworkController.java index e30d56300..56ab64106 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FireworkController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FireworkController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityFireworks; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class FireworkController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FishingHookController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FishingHookController.java index 6b371bd2f..95a2b55ac 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FishingHookController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/FishingHookController.java @@ -13,11 +13,13 @@ import com.mojang.authlib.GameProfile; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.Entity; import net.minecraft.server.v1_14_R1.EntityFishingHook; import net.minecraft.server.v1_14_R1.EntityPlayer; @@ -57,6 +59,11 @@ public class FishingHookController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemController.java index 6f0990c90..4691340a9 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemController.java @@ -11,11 +11,13 @@ import org.bukkit.entity.Item; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityHuman; import net.minecraft.server.v1_14_R1.EntityItem; import net.minecraft.server.v1_14_R1.EntityTypes; @@ -56,6 +58,11 @@ public class ItemController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemFrameController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemFrameController.java index f36e7c34b..8ab8f2cdc 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemFrameController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemFrameController.java @@ -11,10 +11,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.EntityItemFrame; import net.minecraft.server.v1_14_R1.EntityTypes; @@ -56,6 +58,11 @@ public class ItemFrameController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LargeFireballController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LargeFireballController.java index 2b3da6c85..c95e3a53b 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LargeFireballController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LargeFireballController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityLargeFireball; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class LargeFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LeashController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LeashController.java index c7bcc8d30..47a03d99a 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LeashController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LeashController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityLeash; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class LeashController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LlamaSpitController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LlamaSpitController.java index 26372c8b2..75ff8f738 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LlamaSpitController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/LlamaSpitController.java @@ -11,11 +11,13 @@ import org.bukkit.entity.LlamaSpit; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityLlama; import net.minecraft.server.v1_14_R1.EntityLlamaSpit; import net.minecraft.server.v1_14_R1.EntityTypes; @@ -62,6 +64,11 @@ public class LlamaSpitController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartChestController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartChestController.java index 1d6a15426..9cce83b5b 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartChestController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartChestController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityMinecartChest; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class MinecartChestController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartCommandController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartCommandController.java index 26b665591..d4718b18e 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartCommandController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartCommandController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityMinecartCommandBlock; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class MinecartCommandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartFurnaceController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartFurnaceController.java index 9931abd59..ec8f6f44b 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartFurnaceController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartFurnaceController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityMinecartFurnace; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class MinecartFurnaceController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartHopperController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartHopperController.java index 5c8ac37a9..a1d7cef5f 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartHopperController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartHopperController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityMinecartHopper; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -39,6 +41,11 @@ public class MinecartHopperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartRideableController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartRideableController.java index 2ad5d5809..70d4a2019 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartRideableController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartRideableController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityMinecartRideable; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class MinecartRideableController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartSpawnerController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartSpawnerController.java index 2b3b357b1..a47baa583 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartSpawnerController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartSpawnerController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityMinecartMobSpawner; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -39,6 +41,11 @@ public class MinecartSpawnerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartTNTController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartTNTController.java index 780b8753a..3ec520c9c 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartTNTController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/MinecartTNTController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityMinecartTNT; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -39,6 +41,11 @@ public class MinecartTNTController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/PaintingController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/PaintingController.java index b169fca04..d996c82de 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/PaintingController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/PaintingController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityPainting; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class PaintingController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ShulkerBulletController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ShulkerBulletController.java index 415435e83..69b3c3d89 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ShulkerBulletController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ShulkerBulletController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityShulkerBullet; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class ShulkerBulletController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SmallFireballController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SmallFireballController.java index 81ae0058e..7e13ebbbe 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SmallFireballController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SmallFireballController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntitySmallFireball; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class SmallFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SnowballController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SnowballController.java index 377980efb..68176694d 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SnowballController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SnowballController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntitySnowball; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class SnowballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SpectralArrowController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SpectralArrowController.java index d8a8fb3b2..2aacb8419 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SpectralArrowController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/SpectralArrowController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntitySpectralArrow; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class SpectralArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TNTPrimedController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TNTPrimedController.java index 42dd9646c..1f88b5c28 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TNTPrimedController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TNTPrimedController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityTNTPrimed; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class TNTPrimedController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownExpBottleController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownExpBottleController.java index 657aa94c0..4ed262700 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownExpBottleController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownExpBottleController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityThrownExpBottle; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class ThrownExpBottleController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownPotionController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownPotionController.java index b4638f993..0c61cfae3 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownPotionController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownPotionController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityPotion; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -44,6 +46,11 @@ public class ThrownPotionController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownTridentController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownTridentController.java index adf024020..fbb980682 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownTridentController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ThrownTridentController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityThrownTrident; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class ThrownTridentController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TippedArrowController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TippedArrowController.java index bdf485b92..8d8a309bd 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TippedArrowController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/TippedArrowController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityTippedArrow; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class TippedArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/WitherSkullController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/WitherSkullController.java index 10a0c60de..5c3f73ea0 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/WitherSkullController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/WitherSkullController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_14_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.EntityWitherSkull; import net.minecraft.server.v1_14_R1.FluidType; @@ -43,6 +45,11 @@ public class WitherSkullController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSBoundingBox.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSBoundingBox.java index 171102338..80fa5c4c8 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSBoundingBox.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSBoundingBox.java @@ -1,5 +1,8 @@ package net.citizensnpcs.nms.v1_14_R1.util; +import java.util.function.Supplier; + +import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.util.BoundingBox; import net.minecraft.server.v1_14_R1.AxisAlignedBB; @@ -7,6 +10,15 @@ public class NMSBoundingBox { private NMSBoundingBox() { } + public static AxisAlignedBB convert(BoundingBox box) { + return new AxisAlignedBB(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ); + } + + public static AxisAlignedBB makeBB(NPC npc, AxisAlignedBB def) { + return npc == null || !npc.data().has(NPC.Metadata.BOUNDING_BOX_FUNCTION) ? def + : convert(npc.data().> get(NPC.Metadata.BOUNDING_BOX_FUNCTION).get()); + } + public static BoundingBox wrap(AxisAlignedBB bb) { double minX = 0, minY = 0, minZ = 0, maxX = 0, maxY = 0, maxZ = 0; minX = bb.minX; diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/BatController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/BatController.java index fb6a835e6..0578b578e 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/BatController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/BatController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.Bat; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; import net.minecraft.server.v1_15_R1.EntityBat; @@ -59,14 +60,15 @@ public class BatController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -103,15 +105,7 @@ public class BatController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/BeeController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/BeeController.java index 0e224ec4b..dd0a99f6a 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/BeeController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/BeeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.Bee; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; import net.minecraft.server.v1_15_R1.EntityBee; @@ -56,14 +57,15 @@ public class BeeController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -100,15 +102,7 @@ public class BeeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/BlazeController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/BlazeController.java index 063be7108..17544cff3 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/BlazeController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/BlazeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.Blaze; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; import net.minecraft.server.v1_15_R1.EntityBlaze; @@ -56,14 +57,15 @@ public class BlazeController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -100,15 +102,7 @@ public class BlazeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -149,15 +143,7 @@ public class BlazeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CatController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CatController.java index 8ab8964ba..8701f04eb 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CatController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CatController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.Cat; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -61,6 +62,11 @@ public class CatController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -80,12 +86,8 @@ public class CatController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -139,15 +141,7 @@ public class CatController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -197,15 +191,7 @@ public class CatController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CaveSpiderController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CaveSpiderController.java index be78b7e4e..9d6a8aabe 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CaveSpiderController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CaveSpiderController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.CaveSpider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -58,6 +59,11 @@ public class CaveSpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -67,12 +73,8 @@ public class CaveSpiderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -126,15 +128,7 @@ public class CaveSpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ChickenController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ChickenController.java index 632dbd10f..3d96a619f 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ChickenController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ChickenController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.Chicken; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -61,6 +62,11 @@ public class ChickenController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -81,12 +87,8 @@ public class ChickenController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -140,15 +142,7 @@ public class ChickenController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -198,15 +192,7 @@ public class ChickenController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CodController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CodController.java index 56b34609e..6eb319f1e 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CodController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CodController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.Cod; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_15_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.ControllerMove; import net.minecraft.server.v1_15_R1.DamageSource; @@ -70,6 +71,11 @@ public class CodController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -79,12 +85,8 @@ public class CodController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -150,15 +152,7 @@ public class CodController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -208,15 +202,7 @@ public class CodController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CowController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CowController.java index dc79e2094..dbb2331e4 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CowController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CowController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.Cow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -65,6 +66,11 @@ public class CowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -84,12 +90,8 @@ public class CowController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -154,15 +156,7 @@ public class CowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -212,15 +206,7 @@ public class CowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CreeperController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CreeperController.java index 350824f02..102eeb631 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CreeperController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/CreeperController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.Creeper; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -61,6 +62,11 @@ public class CreeperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -70,12 +76,8 @@ public class CreeperController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -128,15 +130,7 @@ public class CreeperController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -186,15 +180,7 @@ public class CreeperController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/DolphinController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/DolphinController.java index e11aa0f7c..3dfccde7b 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/DolphinController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/DolphinController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.Dolphin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_15_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.ControllerMove; import net.minecraft.server.v1_15_R1.DamageSource; @@ -71,6 +72,11 @@ public class DolphinController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -80,12 +86,8 @@ public class DolphinController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -145,15 +147,7 @@ public class DolphinController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -203,15 +197,7 @@ public class DolphinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/DrownedController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/DrownedController.java index f16ba9f2f..0a7d1a7ae 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/DrownedController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/DrownedController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.Drowned; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -58,6 +59,11 @@ public class DrownedController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -67,12 +73,8 @@ public class DrownedController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -125,15 +127,7 @@ public class DrownedController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -183,15 +177,7 @@ public class DrownedController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EnderDragonController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EnderDragonController.java index a7f969be0..d76365ad7 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EnderDragonController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EnderDragonController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.EnderDragon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; import net.minecraft.server.v1_15_R1.EntityBoat; @@ -56,14 +57,15 @@ public class EnderDragonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -99,15 +101,7 @@ public class EnderDragonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -148,15 +142,7 @@ public class EnderDragonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EndermanController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EndermanController.java index 189d4514b..4524fb208 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EndermanController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EndermanController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.Enderman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -58,6 +59,11 @@ public class EndermanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -75,12 +81,8 @@ public class EndermanController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -133,15 +135,7 @@ public class EndermanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -191,15 +185,7 @@ public class EndermanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EndermiteController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EndermiteController.java index 6d5889383..7cd883c37 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EndermiteController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EndermiteController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.Endermite; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -58,6 +59,11 @@ public class EndermiteController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -67,12 +73,8 @@ public class EndermiteController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -125,15 +127,7 @@ public class EndermiteController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -183,15 +177,7 @@ public class EndermiteController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EvokerController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EvokerController.java index 72014c34c..a3dc4ea55 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EvokerController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EvokerController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEvoker; import org.bukkit.entity.Evoker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class EvokerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class EvokerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -120,15 +122,7 @@ public class EvokerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -178,15 +172,7 @@ public class EvokerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/FoxController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/FoxController.java index 750b69bb5..1da77666a 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/FoxController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/FoxController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftFox; import org.bukkit.entity.Fox; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -55,6 +56,11 @@ public class FoxController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -74,12 +80,8 @@ public class FoxController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -133,15 +135,7 @@ public class FoxController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -191,15 +185,7 @@ public class FoxController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GhastController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GhastController.java index ebffa334a..7c70dc414 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GhastController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GhastController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftGhast; import org.bukkit.entity.Ghast; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; import net.minecraft.server.v1_15_R1.EntityBoat; @@ -50,14 +51,15 @@ public class GhastController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,15 +96,7 @@ public class GhastController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -143,15 +137,7 @@ public class GhastController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GiantController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GiantController.java index 75bb1a26c..62b57d1ae 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GiantController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GiantController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftGiant; import org.bukkit.entity.Giant; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class GiantController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class GiantController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,15 +121,7 @@ public class GiantController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class GiantController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GuardianController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GuardianController.java index c69194316..8233a3c56 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GuardianController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GuardianController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftGuardian; import org.bukkit.entity.Guardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class GuardianController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class GuardianController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -120,15 +122,7 @@ public class GuardianController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -178,15 +172,7 @@ public class GuardianController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GuardianElderController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GuardianElderController.java index ec1355360..fec2a2170 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GuardianElderController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/GuardianElderController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.ElderGuardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class GuardianElderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class GuardianElderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -120,15 +122,7 @@ public class GuardianElderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -178,15 +172,7 @@ public class GuardianElderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseController.java index 467a3336f..d085e31d1 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseController.java @@ -8,10 +8,9 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftHorse; import org.bukkit.entity.Horse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -19,6 +18,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -58,6 +58,7 @@ public class HorseController extends MobEntityController { private boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseNPC(EntityTypes types, World world) { @@ -74,6 +75,11 @@ public class HorseController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -94,12 +100,8 @@ public class HorseController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -166,15 +168,7 @@ public class HorseController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -224,15 +218,7 @@ public class HorseController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseDonkeyController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseDonkeyController.java index cd9ff7ef5..c98d0e13f 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseDonkeyController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseDonkeyController.java @@ -8,10 +8,9 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.Donkey; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -19,6 +18,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -41,23 +41,24 @@ public class HorseDonkeyController extends MobEntityController { super(EntityHorseDonkeyNPC.class); } - @Override - public Donkey getBukkitEntity() { - return (Donkey) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.addTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Donkey getBukkitEntity() { + return (Donkey) super.getBukkitEntity(); + } + public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseDonkeyNPC(EntityTypes types, World world) { @@ -73,6 +74,11 @@ public class HorseDonkeyController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -93,12 +99,8 @@ public class HorseDonkeyController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -165,15 +167,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -223,15 +217,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseMuleController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseMuleController.java index 7cfe0238b..6fb03c6df 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseMuleController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseMuleController.java @@ -8,10 +8,9 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftMule; import org.bukkit.entity.Mule; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -19,6 +18,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -41,23 +41,24 @@ public class HorseMuleController extends MobEntityController { super(EntityHorseMuleNPC.class); } - @Override - public Mule getBukkitEntity() { - return (Mule) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Mule getBukkitEntity() { + return (Mule) super.getBukkitEntity(); + } + public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseMuleNPC(EntityTypes types, World world) { @@ -73,6 +74,11 @@ public class HorseMuleController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -93,12 +99,8 @@ public class HorseMuleController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -165,15 +167,7 @@ public class HorseMuleController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -223,15 +217,7 @@ public class HorseMuleController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseSkeletonController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseSkeletonController.java index d6b961eb0..fea28ae8d 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseSkeletonController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseSkeletonController.java @@ -8,10 +8,9 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSkeletonHorse; import org.bukkit.entity.SkeletonHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -19,6 +18,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -41,23 +41,24 @@ public class HorseSkeletonController extends MobEntityController { super(EntityHorseSkeletonNPC.class); } - @Override - public SkeletonHorse getBukkitEntity() { - return (SkeletonHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public SkeletonHorse getBukkitEntity() { + return (SkeletonHorse) super.getBukkitEntity(); + } + public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseSkeletonNPC(EntityTypes types, World world) { @@ -74,6 +75,11 @@ public class HorseSkeletonController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -94,12 +100,8 @@ public class HorseSkeletonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -166,15 +168,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -224,15 +218,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseZombieController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseZombieController.java index 516bc5297..35c59f5fc 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseZombieController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HorseZombieController.java @@ -8,10 +8,9 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftZombieHorse; import org.bukkit.entity.ZombieHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -19,6 +18,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -41,23 +41,24 @@ public class HorseZombieController extends MobEntityController { super(EntityHorseZombieNPC.class); } - @Override - public ZombieHorse getBukkitEntity() { - return (ZombieHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public ZombieHorse getBukkitEntity() { + return (ZombieHorse) super.getBukkitEntity(); + } + public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseZombieNPC(EntityTypes types, World world) { @@ -74,6 +75,11 @@ public class HorseZombieController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -94,12 +100,8 @@ public class HorseZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -166,15 +168,7 @@ public class HorseZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -224,15 +218,7 @@ public class HorseZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/IllusionerController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/IllusionerController.java index c7799f272..5ba7f7f91 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/IllusionerController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/IllusionerController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftIllusioner; import org.bukkit.entity.Illusioner; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class IllusionerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class IllusionerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -120,15 +122,7 @@ public class IllusionerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -178,15 +172,7 @@ public class IllusionerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/IronGolemController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/IronGolemController.java index 69c818f78..f924b9c76 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/IronGolemController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/IronGolemController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftIronGolem; import org.bukkit.entity.IronGolem; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class IronGolemController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class IronGolemController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,15 +121,7 @@ public class IronGolemController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class IronGolemController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/LlamaController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/LlamaController.java index 703cde275..d1d75c01f 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/LlamaController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/LlamaController.java @@ -8,16 +8,16 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftLlama; import org.bukkit.entity.Llama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -39,17 +39,17 @@ public class LlamaController extends MobEntityController { super(EntityLlamaNPC.class); } - @Override - public Llama getBukkitEntity() { - return (Llama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Llama getBukkitEntity() { + return (Llama) super.getBukkitEntity(); + } + public static class EntityLlamaNPC extends EntityLlama implements NPCHolder { boolean calledNMSHeight = false; @@ -67,6 +67,11 @@ public class LlamaController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -87,12 +92,8 @@ public class LlamaController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -146,15 +147,7 @@ public class LlamaController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -204,15 +197,7 @@ public class LlamaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MagmaCubeController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MagmaCubeController.java index 2f920af08..196772dd4 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MagmaCubeController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MagmaCubeController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftMagmaCube; import org.bukkit.entity.MagmaCube; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_15_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.ControllerMove; import net.minecraft.server.v1_15_R1.DamageSource; @@ -62,6 +63,11 @@ public class MagmaCubeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -71,12 +77,8 @@ public class MagmaCubeController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -129,15 +131,7 @@ public class MagmaCubeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -187,15 +181,7 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MushroomCowController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MushroomCowController.java index 5481f8374..a017ee1fe 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MushroomCowController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MushroomCowController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftMushroomCow; import org.bukkit.entity.MushroomCow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -58,6 +59,11 @@ public class MushroomCowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -78,12 +84,8 @@ public class MushroomCowController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -143,15 +145,7 @@ public class MushroomCowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -201,15 +195,7 @@ public class MushroomCowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/OcelotController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/OcelotController.java index 5799e9dd8..b3018d225 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/OcelotController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/OcelotController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftOcelot; import org.bukkit.entity.Ocelot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -56,6 +57,11 @@ public class OcelotController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -76,12 +82,8 @@ public class OcelotController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -135,15 +137,7 @@ public class OcelotController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -193,15 +187,7 @@ public class OcelotController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PandaController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PandaController.java index fc360742d..63247ccb2 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PandaController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PandaController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPanda; import org.bukkit.entity.Panda; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -55,6 +56,11 @@ public class PandaController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -74,12 +80,8 @@ public class PandaController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -133,15 +135,7 @@ public class PandaController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -191,15 +185,7 @@ public class PandaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ParrotController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ParrotController.java index a89f80052..1d462db31 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ParrotController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ParrotController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftParrot; import org.bukkit.entity.Parrot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; import net.minecraft.server.v1_15_R1.EntityBoat; @@ -52,14 +53,15 @@ public class ParrotController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -105,15 +107,7 @@ public class ParrotController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PhantomController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PhantomController.java index be50a6a8e..9c4676398 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PhantomController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PhantomController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPhantom; import org.bukkit.entity.Phantom; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_15_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.ControllerLook; import net.minecraft.server.v1_15_R1.ControllerMove; @@ -66,6 +67,11 @@ public class PhantomController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -75,12 +81,8 @@ public class PhantomController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -140,15 +142,7 @@ public class PhantomController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -198,15 +192,7 @@ public class PhantomController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PigController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PigController.java index 0737c7ec8..f6537c7dd 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PigController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PigController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPig; import org.bukkit.entity.Pig; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -56,6 +57,11 @@ public class PigController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -76,12 +82,8 @@ public class PigController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -141,15 +143,7 @@ public class PigController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -199,15 +193,7 @@ public class PigController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PigZombieController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PigZombieController.java index a8812e497..c317378c7 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PigZombieController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PigZombieController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPigZombie; import org.bukkit.entity.PigZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -53,6 +54,11 @@ public class PigZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -62,12 +68,8 @@ public class PigZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -120,15 +122,7 @@ public class PigZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -178,15 +172,7 @@ public class PigZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PillagerController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PillagerController.java index c4fa757d1..13cf9fad2 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PillagerController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PillagerController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPillager; import org.bukkit.entity.Pillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -55,6 +56,11 @@ public class PillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -74,12 +80,8 @@ public class PillagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -133,15 +135,7 @@ public class PillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -191,15 +185,7 @@ public class PillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PolarBearController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PolarBearController.java index 1ce6f88f2..2e9f3edb4 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PolarBearController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PolarBearController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPolarBear; import org.bukkit.entity.PolarBear; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; import net.minecraft.server.v1_15_R1.Entity; @@ -53,6 +54,11 @@ public class PolarBearController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -66,12 +72,8 @@ public class PolarBearController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -108,15 +110,7 @@ public class PolarBearController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PufferFishController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PufferFishController.java index b39db4f0d..fe38ad01e 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PufferFishController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/PufferFishController.java @@ -7,16 +7,17 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPufferFish; import org.bukkit.entity.PufferFish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_15_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.versioned.PufferFishTrait; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.ControllerMove; import net.minecraft.server.v1_15_R1.DamageSource; @@ -67,6 +68,11 @@ public class PufferFishController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -76,12 +82,8 @@ public class PufferFishController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -156,15 +158,7 @@ public class PufferFishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -214,15 +208,7 @@ public class PufferFishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/RabbitController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/RabbitController.java index a241ab6fb..ee6c02f68 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/RabbitController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/RabbitController.java @@ -7,15 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftRabbit; import org.bukkit.entity.Rabbit; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -57,6 +57,11 @@ public class RabbitController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -77,12 +82,8 @@ public class RabbitController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -136,15 +137,7 @@ public class RabbitController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -199,15 +192,7 @@ public class RabbitController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/RavagerController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/RavagerController.java index be52e0bc1..eef2f9b35 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/RavagerController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/RavagerController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftRavager; import org.bukkit.entity.Ravager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -55,6 +56,11 @@ public class RavagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -74,12 +80,8 @@ public class RavagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -133,15 +135,7 @@ public class RavagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -191,15 +185,7 @@ public class RavagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SalmonController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SalmonController.java index 2687ccb3c..11db67848 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SalmonController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SalmonController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSalmon; import org.bukkit.entity.Salmon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_15_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.ControllerMove; import net.minecraft.server.v1_15_R1.DamageSource; @@ -64,6 +65,11 @@ public class SalmonController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -73,12 +79,8 @@ public class SalmonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -144,15 +146,7 @@ public class SalmonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -202,15 +196,7 @@ public class SalmonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SheepController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SheepController.java index 1d754b7bd..d19a9d558 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SheepController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SheepController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSheep; import org.bukkit.entity.Sheep; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -55,6 +56,11 @@ public class SheepController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -75,12 +81,8 @@ public class SheepController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -133,15 +135,7 @@ public class SheepController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -191,15 +185,7 @@ public class SheepController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ShulkerController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ShulkerController.java index a78430baa..847713ac3 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ShulkerController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ShulkerController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftShulker; import org.bukkit.entity.Shulker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -53,6 +54,11 @@ public class ShulkerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -62,12 +68,8 @@ public class ShulkerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -120,15 +122,7 @@ public class ShulkerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -178,15 +172,7 @@ public class ShulkerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SilverfishController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SilverfishController.java index f4296b90b..9268cd9c9 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SilverfishController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SilverfishController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSilverfish; import org.bukkit.entity.Silverfish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class SilverfishController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class SilverfishController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,13 +121,7 @@ public class SilverfishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -175,15 +171,7 @@ public class SilverfishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SkeletonController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SkeletonController.java index e8d956e0f..17586df1b 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SkeletonController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SkeletonController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSkeleton; import org.bukkit.entity.Skeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class SkeletonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class SkeletonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,15 +121,7 @@ public class SkeletonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class SkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SkeletonStrayController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SkeletonStrayController.java index 4510de0fd..ca280707d 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SkeletonStrayController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SkeletonStrayController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftStray; import org.bukkit.entity.Stray; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class SkeletonStrayController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class SkeletonStrayController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,15 +121,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SkeletonWitherController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SkeletonWitherController.java index 65118ae7f..aea2ba922 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SkeletonWitherController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SkeletonWitherController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftWitherSkeleton; import org.bukkit.entity.WitherSkeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class SkeletonWitherController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class SkeletonWitherController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,15 +121,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SlimeController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SlimeController.java index a7053c7cf..ab7623b5e 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SlimeController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SlimeController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSlime; import org.bukkit.entity.Slime; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_15_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.ControllerMove; import net.minecraft.server.v1_15_R1.DamageSource; @@ -62,6 +63,11 @@ public class SlimeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -71,12 +77,8 @@ public class SlimeController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -130,15 +132,7 @@ public class SlimeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -188,15 +182,7 @@ public class SlimeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SnowmanController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SnowmanController.java index 4da5314bb..6614126bd 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SnowmanController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SnowmanController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowman; import org.bukkit.entity.Snowman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class SnowmanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class SnowmanController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,15 +121,7 @@ public class SnowmanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class SnowmanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SpiderController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SpiderController.java index 2610cf5cc..d36b3d482 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SpiderController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SpiderController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSpider; import org.bukkit.entity.Spider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class SpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class SpiderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,15 +121,7 @@ public class SpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class SpiderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SquidController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SquidController.java index 2af0dbb36..c75e8dd7a 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SquidController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/SquidController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSquid; import org.bukkit.entity.Squid; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class SquidController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class SquidController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,15 +121,7 @@ public class SquidController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class SquidController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/TraderLlamaController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/TraderLlamaController.java index 7ddf3123c..88fa91ba3 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/TraderLlamaController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/TraderLlamaController.java @@ -10,16 +10,16 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftTraderLlama; import org.bukkit.entity.TraderLlama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -41,19 +41,20 @@ public class TraderLlamaController extends MobEntityController { super(EntityTraderLlamaNPC.class); } - @Override - public TraderLlama getBukkitEntity() { - return (TraderLlama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public TraderLlama getBukkitEntity() { + return (TraderLlama) super.getBukkitEntity(); + } + public static class EntityTraderLlamaNPC extends EntityLlamaTrader implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityTraderLlamaNPC(EntityTypes types, World world) { @@ -69,6 +70,11 @@ public class TraderLlamaController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -89,12 +95,8 @@ public class TraderLlamaController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -148,15 +150,7 @@ public class TraderLlamaController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -206,15 +200,7 @@ public class TraderLlamaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/TropicalFishController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/TropicalFishController.java index 2c9dc8246..4d31b6760 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/TropicalFishController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/TropicalFishController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftTropicalFish; import org.bukkit.entity.TropicalFish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_15_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.ControllerMove; import net.minecraft.server.v1_15_R1.DamageSource; @@ -64,6 +65,11 @@ public class TropicalFishController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -73,12 +79,8 @@ public class TropicalFishController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -144,15 +146,7 @@ public class TropicalFishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -202,15 +196,7 @@ public class TropicalFishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/TurtleController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/TurtleController.java index a60939026..4a8b472c5 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/TurtleController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/TurtleController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftTurtle; import org.bukkit.entity.Turtle; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_15_R1.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.ControllerJump; import net.minecraft.server.v1_15_R1.ControllerMove; @@ -66,6 +67,11 @@ public class TurtleController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -75,12 +81,8 @@ public class TurtleController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -135,15 +137,7 @@ public class TurtleController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -193,15 +187,7 @@ public class TurtleController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VexController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VexController.java index f78f2a62e..8d373ee59 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VexController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VexController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftVex; import org.bukkit.entity.Vex; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; import net.minecraft.server.v1_15_R1.EntityBoat; @@ -53,14 +54,15 @@ public class VexController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -97,15 +99,7 @@ public class VexController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VillagerController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VillagerController.java index d7848be92..4d08a31d6 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VillagerController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VillagerController.java @@ -9,14 +9,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftVillager; import org.bukkit.entity.Villager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -67,6 +68,11 @@ public class VillagerController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -87,12 +93,8 @@ public class VillagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -158,15 +160,7 @@ public class VillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -225,15 +219,7 @@ public class VillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VindicatorController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VindicatorController.java index 9c60a6b58..91bcdabd8 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VindicatorController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VindicatorController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftVindicator; import org.bukkit.entity.Vindicator; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -55,6 +56,11 @@ public class VindicatorController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -75,12 +81,8 @@ public class VindicatorController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -134,15 +136,7 @@ public class VindicatorController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -192,15 +186,7 @@ public class VindicatorController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WanderingTraderController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WanderingTraderController.java index db7671c40..e7e1e99f3 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WanderingTraderController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WanderingTraderController.java @@ -10,15 +10,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftWanderingTrader; import org.bukkit.entity.WanderingTrader; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -51,6 +51,7 @@ public class WanderingTraderController extends MobEntityController { public static class EntityWanderingTraderNPC extends EntityVillagerTrader implements NPCHolder { private boolean blockingATrade; + private boolean blockTrades = true; boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -64,6 +65,11 @@ public class WanderingTraderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -84,12 +90,8 @@ public class WanderingTraderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -155,15 +157,7 @@ public class WanderingTraderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -226,15 +220,7 @@ public class WanderingTraderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WitchController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WitchController.java index a53609068..08b190b82 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WitchController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WitchController.java @@ -6,14 +6,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_15_R1.entity.CraftWitch; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -51,6 +52,11 @@ public class WitchController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -60,12 +66,8 @@ public class WitchController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -118,15 +120,7 @@ public class WitchController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -176,15 +170,7 @@ public class WitchController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WitherController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WitherController.java index 6b9ea658a..aa74e46bf 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WitherController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WitherController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftWither; import org.bukkit.entity.Wither; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; import net.minecraft.server.v1_15_R1.EntityBoat; @@ -50,14 +51,15 @@ public class WitherController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -93,15 +95,7 @@ public class WitherController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -142,15 +136,7 @@ public class WitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WolfController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WolfController.java index 36dfc0889..a87677cfd 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WolfController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/WolfController.java @@ -8,14 +8,15 @@ import org.bukkit.entity.Wolf; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.DataWatcherObject; @@ -57,6 +58,11 @@ public class WolfController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -77,12 +83,8 @@ public class WolfController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -136,15 +138,7 @@ public class WolfController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -194,15 +188,7 @@ public class WolfController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ZombieController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ZombieController.java index 4870f4791..be4ed45b2 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ZombieController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ZombieController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftZombie; import org.bukkit.entity.Zombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class ZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class ZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,15 +121,7 @@ public class ZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class ZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ZombieHuskController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ZombieHuskController.java index 5503abc53..af810c96d 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ZombieHuskController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ZombieHuskController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftHusk; import org.bukkit.entity.Husk; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class ZombieHuskController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class ZombieHuskController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,15 +121,7 @@ public class ZombieHuskController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ZombieVillagerController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ZombieVillagerController.java index c24a99dcb..b95c3811b 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ZombieVillagerController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ZombieVillagerController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftVillagerZombie; import org.bukkit.entity.ZombieVillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.DamageSource; import net.minecraft.server.v1_15_R1.Entity; @@ -52,6 +53,11 @@ public class ZombieVillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class ZombieVillagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -119,15 +121,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/AreaEffectCloudController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/AreaEffectCloudController.java index 9c60b4f8f..b0cab7155 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/AreaEffectCloudController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/AreaEffectCloudController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityAreaEffectCloud; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -50,6 +52,11 @@ public class AreaEffectCloudController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ArmorStandController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ArmorStandController.java index 99c0fb585..254dd8f53 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ArmorStandController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ArmorStandController.java @@ -12,10 +12,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityArmorStand; import net.minecraft.server.v1_15_R1.EntityHuman; import net.minecraft.server.v1_15_R1.EntityTypes; @@ -55,6 +57,11 @@ public class ArmorStandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand enumhand) { if (npc == null) { diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/BoatController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/BoatController.java index 351efd07d..3446c54c9 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/BoatController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/BoatController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -47,6 +48,7 @@ public class BoatController extends MobEntityController { public static class EntityBoatNPC extends EntityBoat implements NPCHolder { private double aD; + private float aE; private EnumStatus aF; private EnumStatus aG; @@ -63,6 +65,11 @@ public class BoatController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/DragonFireballController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/DragonFireballController.java index 7941e0ecd..678148f03 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/DragonFireballController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/DragonFireballController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityDragonFireball; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -50,6 +52,11 @@ public class DragonFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EggController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EggController.java index 35311ca5d..bf25e9b38 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EggController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EggController.java @@ -12,11 +12,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityEgg; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -66,6 +68,11 @@ public class EggController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderCrystalController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderCrystalController.java index bc54b4aa2..43122e62a 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderCrystalController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderCrystalController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityEnderCrystal; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -50,6 +52,11 @@ public class EnderCrystalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderPearlController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderPearlController.java index f398176e4..aef598f46 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderPearlController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderPearlController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityEnderPearl; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -50,6 +52,11 @@ public class EnderPearlController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderSignalController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderSignalController.java index 4e19779ba..bf6dad5d0 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderSignalController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EnderSignalController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityEnderSignal; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -50,6 +52,11 @@ public class EnderSignalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EvokerFangsController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EvokerFangsController.java index 3a2606f4f..c18d75afd 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EvokerFangsController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/EvokerFangsController.java @@ -12,10 +12,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityEvokerFangs; import net.minecraft.server.v1_15_R1.EntityHuman; import net.minecraft.server.v1_15_R1.EntityTypes; @@ -49,6 +51,11 @@ public class EvokerFangsController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand enumhand) { if (npc == null) { diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ExperienceOrbController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ExperienceOrbController.java index b01c29790..cb441a512 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ExperienceOrbController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ExperienceOrbController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityExperienceOrb; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class ExperienceOrbController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FallingBlockController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FallingBlockController.java index 6be2cda23..25eedc811 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FallingBlockController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FallingBlockController.java @@ -12,11 +12,13 @@ import org.bukkit.entity.FallingBlock; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.Block; import net.minecraft.server.v1_15_R1.EntityFallingBlock; import net.minecraft.server.v1_15_R1.EntityTypes; @@ -65,6 +67,11 @@ public class FallingBlockController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FireworkController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FireworkController.java index 358f137f5..c642fafc4 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FireworkController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FireworkController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityFireworks; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class FireworkController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FishingHookController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FishingHookController.java index 396ed2e36..5e78e1349 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FishingHookController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/FishingHookController.java @@ -14,11 +14,13 @@ import com.mojang.authlib.GameProfile; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.Entity; import net.minecraft.server.v1_15_R1.EntityFishingHook; import net.minecraft.server.v1_15_R1.EntityPlayer; @@ -58,6 +60,11 @@ public class FishingHookController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemController.java index 257282c5b..d50904393 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemController.java @@ -11,11 +11,13 @@ import org.bukkit.entity.Item; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityHuman; import net.minecraft.server.v1_15_R1.EntityItem; import net.minecraft.server.v1_15_R1.EntityTypes; @@ -56,6 +58,11 @@ public class ItemController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemFrameController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemFrameController.java index ef0b22525..e10dbae2f 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemFrameController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemFrameController.java @@ -11,10 +11,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.EntityItemFrame; import net.minecraft.server.v1_15_R1.EntityTypes; @@ -56,6 +58,11 @@ public class ItemFrameController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LargeFireballController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LargeFireballController.java index 5b3cc5091..ca853a24e 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LargeFireballController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LargeFireballController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityLargeFireball; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class LargeFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LeashController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LeashController.java index d9bc170f4..695297bdb 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LeashController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LeashController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityLeash; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class LeashController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LlamaSpitController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LlamaSpitController.java index d8d5a8158..325a98333 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LlamaSpitController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/LlamaSpitController.java @@ -12,11 +12,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityLlama; import net.minecraft.server.v1_15_R1.EntityLlamaSpit; import net.minecraft.server.v1_15_R1.EntityTypes; @@ -63,6 +65,11 @@ public class LlamaSpitController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartChestController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartChestController.java index 72f7af501..57ba0239b 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartChestController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartChestController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityMinecartChest; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class MinecartChestController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartCommandController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartCommandController.java index a6c89b084..071754614 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartCommandController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartCommandController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityMinecartCommandBlock; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class MinecartCommandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartFurnaceController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartFurnaceController.java index 4749ee0c2..af8c1b6db 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartFurnaceController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartFurnaceController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityMinecartFurnace; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class MinecartFurnaceController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartHopperController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartHopperController.java index 99a6eeb7f..a1508bd15 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartHopperController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartHopperController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityMinecartHopper; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -39,6 +41,11 @@ public class MinecartHopperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartRideableController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartRideableController.java index 85438424e..b37f86dac 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartRideableController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartRideableController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityMinecartRideable; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class MinecartRideableController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartSpawnerController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartSpawnerController.java index 6de33bc2a..f6aed5f11 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartSpawnerController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartSpawnerController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityMinecartMobSpawner; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -39,6 +41,11 @@ public class MinecartSpawnerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartTNTController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartTNTController.java index a28f386bb..d2f0ade39 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartTNTController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/MinecartTNTController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityMinecartTNT; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -39,6 +41,11 @@ public class MinecartTNTController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/PaintingController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/PaintingController.java index bfd68c536..5251f481a 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/PaintingController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/PaintingController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityPainting; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class PaintingController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ShulkerBulletController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ShulkerBulletController.java index 61d8c04da..e0e74defb 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ShulkerBulletController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ShulkerBulletController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityShulkerBullet; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class ShulkerBulletController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SmallFireballController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SmallFireballController.java index da262d042..314d03eaa 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SmallFireballController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SmallFireballController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntitySmallFireball; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class SmallFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SnowballController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SnowballController.java index 970f2371f..6a565a6c4 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SnowballController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SnowballController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntitySnowball; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class SnowballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SpectralArrowController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SpectralArrowController.java index 0b711e314..809a39edf 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SpectralArrowController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/SpectralArrowController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntitySpectralArrow; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class SpectralArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TNTPrimedController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TNTPrimedController.java index ba45243ec..02a7012a0 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TNTPrimedController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TNTPrimedController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityTNTPrimed; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class TNTPrimedController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownExpBottleController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownExpBottleController.java index daffd4935..e0f687d53 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownExpBottleController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownExpBottleController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityThrownExpBottle; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class ThrownExpBottleController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownPotionController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownPotionController.java index b6323f1b8..5235971c3 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownPotionController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownPotionController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityPotion; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -45,6 +47,11 @@ public class ThrownPotionController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownTridentController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownTridentController.java index 226f6e2b4..b63ed3e3c 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownTridentController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ThrownTridentController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityThrownTrident; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class ThrownTridentController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TippedArrowController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TippedArrowController.java index d67623880..ea89d4caa 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TippedArrowController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/TippedArrowController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityTippedArrow; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class TippedArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/WitherSkullController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/WitherSkullController.java index f2d732aca..c54cd69ec 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/WitherSkullController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/WitherSkullController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_15_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_15_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EntityWitherSkull; import net.minecraft.server.v1_15_R1.FluidType; @@ -44,6 +46,11 @@ public class WitherSkullController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean b(Tag tag) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSBoundingBox.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSBoundingBox.java index 7423e9e28..c63368a73 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSBoundingBox.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSBoundingBox.java @@ -1,5 +1,8 @@ package net.citizensnpcs.nms.v1_15_R1.util; +import java.util.function.Supplier; + +import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.util.BoundingBox; import net.minecraft.server.v1_15_R1.AxisAlignedBB; @@ -7,6 +10,15 @@ public class NMSBoundingBox { private NMSBoundingBox() { } + public static AxisAlignedBB convert(BoundingBox box) { + return new AxisAlignedBB(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ); + } + + public static AxisAlignedBB makeBB(NPC npc, AxisAlignedBB def) { + return npc == null || !npc.data().has(NPC.Metadata.BOUNDING_BOX_FUNCTION) ? def + : convert(npc.data().> get(NPC.Metadata.BOUNDING_BOX_FUNCTION).get()); + } + public static BoundingBox wrap(AxisAlignedBB bb) { double minX = 0, minY = 0, minZ = 0, maxX = 0, maxY = 0, maxZ = 0; minX = bb.minX; diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BatController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BatController.java index 6cbd825cf..495935e6a 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BatController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BatController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.Bat; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; import net.minecraft.server.v1_16_R3.EntityBat; @@ -59,14 +60,15 @@ public class BatController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -103,15 +105,7 @@ public class BatController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BeeController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BeeController.java index 0346b89c4..7d9e458a5 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BeeController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BeeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.Bee; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; import net.minecraft.server.v1_16_R3.EntityBee; @@ -56,14 +57,15 @@ public class BeeController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -100,15 +102,7 @@ public class BeeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BlazeController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BlazeController.java index 4e176312d..8e9094990 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BlazeController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/BlazeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.Blaze; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; import net.minecraft.server.v1_16_R3.EntityBlaze; @@ -56,14 +57,15 @@ public class BlazeController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -100,15 +102,7 @@ public class BlazeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -149,15 +143,7 @@ public class BlazeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CatController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CatController.java index 10b6eaf8f..fc2bcaa1e 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CatController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CatController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.Cat; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -61,6 +62,11 @@ public class CatController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -80,12 +86,8 @@ public class CatController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -130,15 +132,7 @@ public class CatController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -197,15 +191,7 @@ public class CatController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CaveSpiderController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CaveSpiderController.java index a078fcb99..dc43cae57 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CaveSpiderController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CaveSpiderController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.CaveSpider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -58,6 +59,11 @@ public class CaveSpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -67,12 +73,8 @@ public class CaveSpiderController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -117,15 +119,7 @@ public class CaveSpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ChickenController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ChickenController.java index ab354bd82..2596b83cc 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ChickenController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ChickenController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.Chicken; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -61,6 +62,11 @@ public class ChickenController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -81,12 +87,8 @@ public class ChickenController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -131,15 +133,7 @@ public class ChickenController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -198,15 +192,7 @@ public class ChickenController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CodController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CodController.java index 0d36be29a..768aabdfe 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CodController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CodController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.Cod; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.nms.v1_16_R3.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.ControllerMove; import net.minecraft.server.v1_16_R3.DamageSource; @@ -71,6 +72,11 @@ public class CodController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -80,12 +86,8 @@ public class CodController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -140,15 +142,7 @@ public class CodController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -209,15 +203,7 @@ public class CodController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CowController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CowController.java index 0e3a5bcf4..4269626d1 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CowController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CowController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.Cow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -66,6 +67,11 @@ public class CowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -85,12 +91,8 @@ public class CowController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -146,15 +148,7 @@ public class CowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -213,15 +207,7 @@ public class CowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CreeperController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CreeperController.java index 2ad667c5c..b4f5d0bf8 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CreeperController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/CreeperController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.Creeper; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -62,6 +63,11 @@ public class CreeperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -71,12 +77,8 @@ public class CreeperController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -120,15 +122,7 @@ public class CreeperController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -187,15 +181,7 @@ public class CreeperController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/DolphinController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/DolphinController.java index ba183c31f..9276286c8 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/DolphinController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/DolphinController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.Dolphin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.nms.v1_16_R3.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.ControllerMove; import net.minecraft.server.v1_16_R3.DamageSource; @@ -71,6 +72,11 @@ public class DolphinController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -80,12 +86,8 @@ public class DolphinController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -134,15 +136,7 @@ public class DolphinController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -203,15 +197,7 @@ public class DolphinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/DrownedController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/DrownedController.java index 6b3af62ee..8eadf1a85 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/DrownedController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/DrownedController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.Drowned; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -58,6 +59,11 @@ public class DrownedController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -67,12 +73,8 @@ public class DrownedController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -116,15 +118,7 @@ public class DrownedController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -183,15 +177,7 @@ public class DrownedController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EnderDragonController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EnderDragonController.java index f60721d83..f6f440f9d 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EnderDragonController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EnderDragonController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.EnderDragon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; import net.minecraft.server.v1_16_R3.EntityBoat; @@ -56,14 +57,15 @@ public class EnderDragonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -99,15 +101,7 @@ public class EnderDragonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -148,15 +142,7 @@ public class EnderDragonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EndermanController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EndermanController.java index ac8fc7510..f9eae27e6 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EndermanController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EndermanController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.Enderman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -58,6 +59,11 @@ public class EndermanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -75,12 +81,8 @@ public class EndermanController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -124,15 +126,7 @@ public class EndermanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -191,15 +185,7 @@ public class EndermanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EndermiteController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EndermiteController.java index 143a56ac4..d806c4441 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EndermiteController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EndermiteController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.Endermite; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -58,6 +59,11 @@ public class EndermiteController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -67,12 +73,8 @@ public class EndermiteController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -116,15 +118,7 @@ public class EndermiteController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -183,15 +177,7 @@ public class EndermiteController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EvokerController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EvokerController.java index 5aa1b89ff..efe6a70b7 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EvokerController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EvokerController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEvoker; import org.bukkit.entity.Evoker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class EvokerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class EvokerController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -111,15 +113,7 @@ public class EvokerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -178,15 +172,7 @@ public class EvokerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/FoxController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/FoxController.java index ed9dacf0a..20019c246 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/FoxController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/FoxController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftFox; import org.bukkit.entity.Fox; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -55,6 +56,11 @@ public class FoxController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -74,12 +80,8 @@ public class FoxController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -124,15 +126,7 @@ public class FoxController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -191,15 +185,7 @@ public class FoxController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GhastController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GhastController.java index a9bc2ce3b..3add62f22 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GhastController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GhastController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftGhast; import org.bukkit.entity.Ghast; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; import net.minecraft.server.v1_16_R3.EntityBoat; @@ -50,14 +51,15 @@ public class GhastController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -94,15 +96,7 @@ public class GhastController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -143,15 +137,7 @@ public class GhastController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GiantController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GiantController.java index 7faceaf6d..48c479080 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GiantController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GiantController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftGiant; import org.bukkit.entity.Giant; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class GiantController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class GiantController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class GiantController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class GiantController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GuardianController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GuardianController.java index cbf5c01a3..e670678b6 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GuardianController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GuardianController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftGuardian; import org.bukkit.entity.Guardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class GuardianController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class GuardianController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -111,15 +113,7 @@ public class GuardianController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -178,15 +172,7 @@ public class GuardianController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GuardianElderController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GuardianElderController.java index 477667b29..b25062c0d 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GuardianElderController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/GuardianElderController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.ElderGuardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class GuardianElderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class GuardianElderController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -111,15 +113,7 @@ public class GuardianElderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -178,15 +172,7 @@ public class GuardianElderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HoglinController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HoglinController.java index 77dddf14d..85ae62c7f 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HoglinController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HoglinController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftHoglin; import org.bukkit.entity.Hoglin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class HoglinController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class HoglinController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class HoglinController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class HoglinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseController.java index e6bd55fd9..890ee591c 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseController.java @@ -8,10 +8,9 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftHorse; import org.bukkit.entity.Horse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -19,6 +18,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -41,23 +41,24 @@ public class HorseController extends MobEntityController { super(EntityHorseNPC.class); } - @Override - public Horse getBukkitEntity() { - return (Horse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Horse getBukkitEntity() { + return (Horse) super.getBukkitEntity(); + } + public static class EntityHorseNPC extends EntityHorse implements NPCHolder { private double baseMovementSpeed; private boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseNPC(EntityTypes types, World world) { @@ -74,6 +75,11 @@ public class HorseController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -94,12 +100,8 @@ public class HorseController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -152,15 +154,7 @@ public class HorseController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -224,15 +218,7 @@ public class HorseController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseDonkeyController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseDonkeyController.java index 623d588b5..930dc2275 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseDonkeyController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseDonkeyController.java @@ -8,10 +8,9 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.entity.Donkey; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -19,6 +18,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -41,20 +41,19 @@ public class HorseDonkeyController extends MobEntityController { super(EntityHorseDonkeyNPC.class); } - @Override - public Donkey getBukkitEntity() { - return (Donkey) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.addTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Donkey getBukkitEntity() { + return (Donkey) super.getBukkitEntity(); + } + public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { private double baseMovementSpeed; - boolean calledNMSHeight = false; private final CitizensNPC npc; private boolean riding; @@ -72,6 +71,11 @@ public class HorseDonkeyController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -92,12 +96,8 @@ public class HorseDonkeyController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -150,15 +150,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -222,15 +214,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseMuleController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseMuleController.java index d16d853c9..d98560569 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseMuleController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseMuleController.java @@ -8,10 +8,9 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftMule; import org.bukkit.entity.Mule; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -19,6 +18,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -41,22 +41,20 @@ public class HorseMuleController extends MobEntityController { super(EntityHorseMuleNPC.class); } - @Override - public Mule getBukkitEntity() { - return (Mule) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Mule getBukkitEntity() { + return (Mule) super.getBukkitEntity(); + } + public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { private double baseMovementSpeed; - boolean calledNMSHeight = false; - private final CitizensNPC npc; private boolean riding; @@ -73,6 +71,11 @@ public class HorseMuleController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -93,12 +96,8 @@ public class HorseMuleController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -151,15 +150,7 @@ public class HorseMuleController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -223,15 +214,7 @@ public class HorseMuleController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseSkeletonController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseSkeletonController.java index c864e4f61..b162b89cf 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseSkeletonController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseSkeletonController.java @@ -8,10 +8,9 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftSkeletonHorse; import org.bukkit.entity.SkeletonHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -19,6 +18,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -41,23 +41,24 @@ public class HorseSkeletonController extends MobEntityController { super(EntityHorseSkeletonNPC.class); } - @Override - public SkeletonHorse getBukkitEntity() { - return (SkeletonHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public SkeletonHorse getBukkitEntity() { + return (SkeletonHorse) super.getBukkitEntity(); + } + public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseSkeletonNPC(EntityTypes types, World world) { @@ -74,6 +75,11 @@ public class HorseSkeletonController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -94,12 +100,8 @@ public class HorseSkeletonController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -152,15 +154,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -224,15 +218,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseZombieController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseZombieController.java index 64032d1ce..d7efea5ee 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseZombieController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HorseZombieController.java @@ -8,10 +8,9 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftZombieHorse; import org.bukkit.entity.ZombieHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -19,6 +18,7 @@ import net.citizensnpcs.trait.Controllable; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -41,23 +41,24 @@ public class HorseZombieController extends MobEntityController { super(EntityHorseZombieNPC.class); } - @Override - public ZombieHorse getBukkitEntity() { - return (ZombieHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public ZombieHorse getBukkitEntity() { + return (ZombieHorse) super.getBukkitEntity(); + } + public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseZombieNPC(EntityTypes types, World world) { @@ -74,6 +75,11 @@ public class HorseZombieController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -94,12 +100,8 @@ public class HorseZombieController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -152,15 +154,7 @@ public class HorseZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -224,15 +218,7 @@ public class HorseZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/IllusionerController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/IllusionerController.java index 4e2ac8af3..7da9247b9 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/IllusionerController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/IllusionerController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftIllusioner; import org.bukkit.entity.Illusioner; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class IllusionerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class IllusionerController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -111,15 +113,7 @@ public class IllusionerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -178,15 +172,7 @@ public class IllusionerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/IronGolemController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/IronGolemController.java index 1ac759d4e..e86458449 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/IronGolemController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/IronGolemController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftIronGolem; import org.bukkit.entity.IronGolem; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class IronGolemController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class IronGolemController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class IronGolemController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class IronGolemController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/LlamaController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/LlamaController.java index 972f1837f..7198825cc 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/LlamaController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/LlamaController.java @@ -8,16 +8,16 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftLlama; import org.bukkit.entity.Llama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -39,17 +39,17 @@ public class LlamaController extends MobEntityController { super(EntityLlamaNPC.class); } - @Override - public Llama getBukkitEntity() { - return (Llama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Llama getBukkitEntity() { + return (Llama) super.getBukkitEntity(); + } + public static class EntityLlamaNPC extends EntityLlama implements NPCHolder { boolean calledNMSHeight = false; @@ -67,6 +67,11 @@ public class LlamaController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -87,12 +92,8 @@ public class LlamaController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -137,15 +138,7 @@ public class LlamaController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -204,15 +197,7 @@ public class LlamaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MagmaCubeController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MagmaCubeController.java index dafe16372..972c5eb3b 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MagmaCubeController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MagmaCubeController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftMagmaCube; import org.bukkit.entity.MagmaCube; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.nms.v1_16_R3.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.ControllerMove; import net.minecraft.server.v1_16_R3.DamageSource; @@ -62,6 +63,11 @@ public class MagmaCubeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -71,12 +77,8 @@ public class MagmaCubeController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -120,15 +122,7 @@ public class MagmaCubeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -187,15 +181,7 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MushroomCowController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MushroomCowController.java index 0a3258da7..6018e78c3 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MushroomCowController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MushroomCowController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftMushroomCow; import org.bukkit.entity.MushroomCow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -59,6 +60,11 @@ public class MushroomCowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -79,12 +85,8 @@ public class MushroomCowController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -135,15 +137,7 @@ public class MushroomCowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -202,15 +196,7 @@ public class MushroomCowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/OcelotController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/OcelotController.java index c8a668f4e..2dfa956d2 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/OcelotController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/OcelotController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftOcelot; import org.bukkit.entity.Ocelot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -56,6 +57,11 @@ public class OcelotController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -76,12 +82,8 @@ public class OcelotController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -126,15 +128,7 @@ public class OcelotController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -193,15 +187,7 @@ public class OcelotController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PandaController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PandaController.java index c7890c346..4c8df1761 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PandaController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PandaController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPanda; import org.bukkit.entity.Panda; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -55,6 +56,11 @@ public class PandaController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -74,12 +80,8 @@ public class PandaController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -124,15 +126,7 @@ public class PandaController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -191,15 +185,7 @@ public class PandaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ParrotController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ParrotController.java index 9c635c3e7..e928d80e5 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ParrotController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ParrotController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftParrot; import org.bukkit.entity.Parrot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; import net.minecraft.server.v1_16_R3.EntityBoat; @@ -53,14 +54,15 @@ public class ParrotController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -106,15 +108,7 @@ public class ParrotController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PhantomController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PhantomController.java index aaab0a15b..cf68f1755 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PhantomController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PhantomController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPhantom; import org.bukkit.entity.Phantom; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.nms.v1_16_R3.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.ControllerLook; import net.minecraft.server.v1_16_R3.ControllerMove; @@ -69,6 +70,11 @@ public class PhantomController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -89,12 +95,8 @@ public class PhantomController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -145,15 +147,7 @@ public class PhantomController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -212,15 +206,7 @@ public class PhantomController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PigController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PigController.java index 9e1986692..0e87e63fa 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PigController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PigController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPig; import org.bukkit.entity.Pig; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -57,6 +58,11 @@ public class PigController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -77,12 +83,8 @@ public class PigController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +129,7 @@ public class PigController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -200,15 +194,7 @@ public class PigController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PigZombieController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PigZombieController.java index 979992f6d..585f1553d 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PigZombieController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PigZombieController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPigZombie; import org.bukkit.entity.PigZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -53,6 +54,11 @@ public class PigZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -62,12 +68,8 @@ public class PigZombieController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -111,15 +113,7 @@ public class PigZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -178,15 +172,7 @@ public class PigZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PiglinBruteController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PiglinBruteController.java index d219e1550..1a2e39805 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PiglinBruteController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PiglinBruteController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPiglinBrute; import org.bukkit.entity.PiglinBrute; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class PiglinBruteController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class PiglinBruteController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class PiglinBruteController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class PiglinBruteController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PiglinController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PiglinController.java index 293b8b776..4ef689aaa 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PiglinController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PiglinController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPiglin; import org.bukkit.entity.Piglin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class PiglinController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class PiglinController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class PiglinController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class PiglinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PillagerController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PillagerController.java index 9ef986a9d..126332b15 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PillagerController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PillagerController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPillager; import org.bukkit.entity.Pillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -55,6 +56,11 @@ public class PillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -74,12 +80,8 @@ public class PillagerController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -124,15 +126,7 @@ public class PillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -191,15 +185,7 @@ public class PillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PolarBearController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PolarBearController.java index 996725ce8..ade506546 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PolarBearController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PolarBearController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPolarBear; import org.bukkit.entity.PolarBear; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; import net.minecraft.server.v1_16_R3.Entity; @@ -53,6 +54,11 @@ public class PolarBearController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -66,12 +72,8 @@ public class PolarBearController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -108,15 +110,7 @@ public class PolarBearController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PufferFishController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PufferFishController.java index a9c06dfee..07acecbdb 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PufferFishController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/PufferFishController.java @@ -7,16 +7,17 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPufferFish; import org.bukkit.entity.PufferFish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.nms.v1_16_R3.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.versioned.PufferFishTrait; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.ControllerMove; import net.minecraft.server.v1_16_R3.DamageSource; @@ -68,6 +69,11 @@ public class PufferFishController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -85,12 +91,8 @@ public class PufferFishController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -146,15 +148,7 @@ public class PufferFishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -215,15 +209,7 @@ public class PufferFishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/RabbitController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/RabbitController.java index f5f45a9f7..3ef0e780a 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/RabbitController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/RabbitController.java @@ -7,15 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftRabbit; import org.bukkit.entity.Rabbit; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -57,6 +57,11 @@ public class RabbitController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -77,12 +82,8 @@ public class RabbitController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +128,7 @@ public class RabbitController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -199,15 +192,7 @@ public class RabbitController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/RavagerController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/RavagerController.java index 830b1a4c3..7f8876c4a 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/RavagerController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/RavagerController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftRavager; import org.bukkit.entity.Ravager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -55,6 +56,11 @@ public class RavagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -74,12 +80,8 @@ public class RavagerController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -124,15 +126,7 @@ public class RavagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -191,15 +185,7 @@ public class RavagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SalmonController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SalmonController.java index 2f5408a75..8fe7c927e 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SalmonController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SalmonController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftSalmon; import org.bukkit.entity.Salmon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.nms.v1_16_R3.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.ControllerMove; import net.minecraft.server.v1_16_R3.DamageSource; @@ -65,6 +66,11 @@ public class SalmonController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -74,12 +80,8 @@ public class SalmonController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -134,15 +136,7 @@ public class SalmonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -203,15 +197,7 @@ public class SalmonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SheepController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SheepController.java index 0c8e73f6a..c530fcc95 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SheepController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SheepController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftSheep; import org.bukkit.entity.Sheep; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -55,6 +56,11 @@ public class SheepController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -75,12 +81,8 @@ public class SheepController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -124,15 +126,7 @@ public class SheepController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -191,15 +185,7 @@ public class SheepController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ShulkerController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ShulkerController.java index d38463df9..5d3b77fe2 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ShulkerController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ShulkerController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftShulker; import org.bukkit.entity.Shulker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -53,6 +54,11 @@ public class ShulkerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -62,12 +68,8 @@ public class ShulkerController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -111,15 +113,7 @@ public class ShulkerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -178,15 +172,7 @@ public class ShulkerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SilverfishController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SilverfishController.java index 9e7fa8020..0164d1200 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SilverfishController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SilverfishController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftSilverfish; import org.bukkit.entity.Silverfish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class SilverfishController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class SilverfishController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,13 +112,7 @@ public class SilverfishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -175,15 +171,7 @@ public class SilverfishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SkeletonController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SkeletonController.java index 4f0329628..523ba12e1 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SkeletonController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SkeletonController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftSkeleton; import org.bukkit.entity.Skeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class SkeletonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class SkeletonController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class SkeletonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class SkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SkeletonStrayController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SkeletonStrayController.java index 1c76f5467..330844db0 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SkeletonStrayController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SkeletonStrayController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftStray; import org.bukkit.entity.Stray; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class SkeletonStrayController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class SkeletonStrayController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SkeletonWitherController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SkeletonWitherController.java index 882e38e0e..85e8e1b0d 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SkeletonWitherController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SkeletonWitherController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftWitherSkeleton; import org.bukkit.entity.WitherSkeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class SkeletonWitherController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class SkeletonWitherController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SlimeController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SlimeController.java index 844fefa94..1ebda3713 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SlimeController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SlimeController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftSlime; import org.bukkit.entity.Slime; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.nms.v1_16_R3.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.ControllerMove; import net.minecraft.server.v1_16_R3.DamageSource; @@ -62,6 +63,11 @@ public class SlimeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -71,12 +77,8 @@ public class SlimeController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -121,15 +123,7 @@ public class SlimeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -188,15 +182,7 @@ public class SlimeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SnowmanController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SnowmanController.java index 8d55777c3..5790a488e 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SnowmanController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SnowmanController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftSnowman; import org.bukkit.entity.Snowman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class SnowmanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class SnowmanController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class SnowmanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class SnowmanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SpiderController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SpiderController.java index fa5b09a04..1d60ee6c1 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SpiderController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SpiderController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftSpider; import org.bukkit.entity.Spider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class SpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class SpiderController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class SpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class SpiderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SquidController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SquidController.java index e7798e733..73d984703 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SquidController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/SquidController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftSquid; import org.bukkit.entity.Squid; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class SquidController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class SquidController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class SquidController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class SquidController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/StriderController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/StriderController.java index fb3826b51..63d576925 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/StriderController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/StriderController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftStrider; import org.bukkit.entity.Strider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class StriderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class StriderController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class StriderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class StriderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/TraderLlamaController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/TraderLlamaController.java index 1d90e1f35..bc4d9c956 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/TraderLlamaController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/TraderLlamaController.java @@ -10,16 +10,16 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftTraderLlama; import org.bukkit.entity.TraderLlama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -41,19 +41,20 @@ public class TraderLlamaController extends MobEntityController { super(EntityTraderLlamaNPC.class); } - @Override - public TraderLlama getBukkitEntity() { - return (TraderLlama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public TraderLlama getBukkitEntity() { + return (TraderLlama) super.getBukkitEntity(); + } + public static class EntityTraderLlamaNPC extends EntityLlamaTrader implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityTraderLlamaNPC(EntityTypes types, World world) { @@ -69,6 +70,11 @@ public class TraderLlamaController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -89,12 +95,8 @@ public class TraderLlamaController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -139,15 +141,7 @@ public class TraderLlamaController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -206,15 +200,7 @@ public class TraderLlamaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/TropicalFishController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/TropicalFishController.java index aae7063fc..adee0f928 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/TropicalFishController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/TropicalFishController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftTropicalFish; import org.bukkit.entity.TropicalFish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.nms.v1_16_R3.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.ControllerMove; import net.minecraft.server.v1_16_R3.DamageSource; @@ -65,6 +66,11 @@ public class TropicalFishController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -74,12 +80,8 @@ public class TropicalFishController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -134,15 +136,7 @@ public class TropicalFishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -203,15 +197,7 @@ public class TropicalFishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/TurtleController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/TurtleController.java index 74aed4517..c0280b46d 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/TurtleController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/TurtleController.java @@ -7,15 +7,16 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftTurtle; import org.bukkit.entity.Turtle; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.nms.v1_16_R3.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.ControllerJump; import net.minecraft.server.v1_16_R3.ControllerMove; @@ -66,6 +67,11 @@ public class TurtleController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -75,12 +81,8 @@ public class TurtleController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -124,15 +126,7 @@ public class TurtleController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -193,15 +187,7 @@ public class TurtleController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/VexController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/VexController.java index 8da893538..84de1dee0 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/VexController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/VexController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftVex; import org.bukkit.entity.Vex; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; import net.minecraft.server.v1_16_R3.EntityBoat; @@ -53,14 +54,15 @@ public class VexController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -97,15 +99,7 @@ public class VexController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/VillagerController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/VillagerController.java index 8a66aa77e..0b6549061 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/VillagerController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/VillagerController.java @@ -9,14 +9,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftVillager; import org.bukkit.entity.Villager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -69,6 +70,11 @@ public class VillagerController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -89,12 +95,8 @@ public class VillagerController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -160,15 +162,7 @@ public class VillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -227,15 +221,7 @@ public class VillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/VindicatorController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/VindicatorController.java index dd004d314..f9025ab80 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/VindicatorController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/VindicatorController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftVindicator; import org.bukkit.entity.Vindicator; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -55,6 +56,11 @@ public class VindicatorController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -75,12 +81,8 @@ public class VindicatorController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -125,15 +127,7 @@ public class VindicatorController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -192,15 +186,7 @@ public class VindicatorController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WanderingTraderController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WanderingTraderController.java index 0b2f74419..d10e753b7 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WanderingTraderController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WanderingTraderController.java @@ -10,15 +10,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftWanderingTrader; import org.bukkit.entity.WanderingTrader; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -57,6 +57,7 @@ public class WanderingTraderController extends MobEntityController { private boolean blockTrades = true; boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityWanderingTraderNPC(EntityTypes types, World world) { @@ -68,6 +69,11 @@ public class WanderingTraderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -88,12 +94,8 @@ public class WanderingTraderController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -159,15 +161,7 @@ public class WanderingTraderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -230,15 +224,7 @@ public class WanderingTraderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WitchController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WitchController.java index bf9282812..3575b3c00 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WitchController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WitchController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftWitch; import org.bukkit.entity.Witch; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class WitchController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class WitchController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class WitchController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class WitchController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WitherController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WitherController.java index ba4aaee87..dc0333b05 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WitherController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WitherController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftWither; import org.bukkit.entity.Wither; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; import net.minecraft.server.v1_16_R3.EntityBoat; @@ -50,14 +51,15 @@ public class WitherController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -93,15 +95,7 @@ public class WitherController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -142,15 +136,7 @@ public class WitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WolfController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WolfController.java index ea54acd0b..ded33fa09 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WolfController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/WolfController.java @@ -8,14 +8,15 @@ import org.bukkit.entity.Wolf; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.DataWatcherObject; @@ -57,6 +58,11 @@ public class WolfController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(DataWatcherObject datawatcherobject) { if (npc != null && !calledNMSHeight) { @@ -77,12 +83,8 @@ public class WolfController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -127,15 +129,7 @@ public class WolfController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -194,15 +188,7 @@ public class WolfController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZoglinController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZoglinController.java index cf34fe369..bda2fb955 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZoglinController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZoglinController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftZoglin; import org.bukkit.entity.Zoglin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class ZoglinController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class ZoglinController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class ZoglinController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class ZoglinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZombieController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZombieController.java index d46fce6a9..4c2607bb5 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZombieController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZombieController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftZombie; import org.bukkit.entity.Zombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class ZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class ZombieController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class ZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class ZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZombieHuskController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZombieHuskController.java index 0b5d58b29..47f14291b 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZombieHuskController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZombieHuskController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftHusk; import org.bukkit.entity.Husk; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class ZombieHuskController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class ZombieHuskController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class ZombieHuskController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZombieVillagerController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZombieVillagerController.java index aa89f6d47..88c0729b5 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZombieVillagerController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ZombieVillagerController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftVillagerZombie; import org.bukkit.entity.ZombieVillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.DamageSource; import net.minecraft.server.v1_16_R3.Entity; @@ -52,6 +53,11 @@ public class ZombieVillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, IBlockData block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -61,12 +67,8 @@ public class ZombieVillagerController extends MobEntityController { @Override public void a(float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a((float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -110,15 +112,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) { - super.enderTeleportTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override @@ -177,15 +171,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> unleash(true, false)); } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/AreaEffectCloudController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/AreaEffectCloudController.java index 2e738a6ed..b42bd0de2 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/AreaEffectCloudController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/AreaEffectCloudController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityAreaEffectCloud; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -50,6 +52,11 @@ public class AreaEffectCloudController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ArmorStandController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ArmorStandController.java index 2f1f781bd..20e868db2 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ArmorStandController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ArmorStandController.java @@ -12,10 +12,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityArmorStand; import net.minecraft.server.v1_16_R3.EntityHuman; import net.minecraft.server.v1_16_R3.EntityTypes; @@ -55,6 +57,11 @@ public class ArmorStandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand enumhand) { if (npc == null) { diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/BoatController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/BoatController.java index 006cee499..051ffb6f1 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/BoatController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/BoatController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -49,6 +50,7 @@ public class BoatController extends MobEntityController { private double aC; private float aD; + private EnumStatus aE; private EnumStatus aF; private double ap; @@ -64,6 +66,11 @@ public class BoatController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/DragonFireballController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/DragonFireballController.java index 9707df6e4..df3fab584 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/DragonFireballController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/DragonFireballController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityDragonFireball; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -50,6 +52,11 @@ public class DragonFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EggController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EggController.java index dbff9a089..6e00b4369 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EggController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EggController.java @@ -12,11 +12,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityEgg; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -66,6 +68,11 @@ public class EggController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderCrystalController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderCrystalController.java index cc499c211..53e0342b2 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderCrystalController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderCrystalController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityEnderCrystal; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -50,6 +52,11 @@ public class EnderCrystalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderPearlController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderPearlController.java index d2dbafef9..cbe6410fc 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderPearlController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderPearlController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityEnderPearl; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -50,6 +52,11 @@ public class EnderPearlController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderSignalController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderSignalController.java index 3fb57984b..b7c66fe8f 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderSignalController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EnderSignalController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityEnderSignal; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -50,6 +52,11 @@ public class EnderSignalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EvokerFangsController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EvokerFangsController.java index 019fbfd4e..f99943b52 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EvokerFangsController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/EvokerFangsController.java @@ -12,10 +12,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityEvokerFangs; import net.minecraft.server.v1_16_R3.EntityHuman; import net.minecraft.server.v1_16_R3.EntityTypes; @@ -49,6 +51,11 @@ public class EvokerFangsController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public EnumInteractionResult a(EntityHuman entityhuman, Vec3D vec3d, EnumHand enumhand) { if (npc == null) { diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ExperienceOrbController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ExperienceOrbController.java index 8c92015ee..6702e0559 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ExperienceOrbController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ExperienceOrbController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityExperienceOrb; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class ExperienceOrbController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FallingBlockController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FallingBlockController.java index b268fe03d..b15256f9a 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FallingBlockController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FallingBlockController.java @@ -12,11 +12,13 @@ import org.bukkit.entity.FallingBlock; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.Block; import net.minecraft.server.v1_16_R3.EntityFallingBlock; import net.minecraft.server.v1_16_R3.EntityTypes; @@ -65,6 +67,11 @@ public class FallingBlockController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FireworkController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FireworkController.java index 9b9e74b9a..614ecc952 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FireworkController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FireworkController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityFireworks; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class FireworkController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FishingHookController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FishingHookController.java index 6646e3536..cc54b7408 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FishingHookController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/FishingHookController.java @@ -15,11 +15,13 @@ import com.mojang.authlib.GameProfile; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.Entity; import net.minecraft.server.v1_16_R3.EntityFishingHook; import net.minecraft.server.v1_16_R3.EntityHuman; @@ -60,6 +62,11 @@ public class FishingHookController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemController.java index 0d771a958..d7dd39c34 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemController.java @@ -11,11 +11,13 @@ import org.bukkit.entity.Item; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityHuman; import net.minecraft.server.v1_16_R3.EntityItem; import net.minecraft.server.v1_16_R3.EntityTypes; @@ -56,6 +58,11 @@ public class ItemController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemFrameController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemFrameController.java index 23454ce8f..54660f2a9 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemFrameController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemFrameController.java @@ -11,10 +11,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.EntityItemFrame; import net.minecraft.server.v1_16_R3.EntityTypes; @@ -56,6 +58,11 @@ public class ItemFrameController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LargeFireballController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LargeFireballController.java index 1bd7de158..4a335f5ea 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LargeFireballController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LargeFireballController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityLargeFireball; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class LargeFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LeashController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LeashController.java index 3a824b598..0b73c1788 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LeashController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LeashController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityLeash; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class LeashController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LlamaSpitController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LlamaSpitController.java index 122ac5173..ab8bd7e71 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LlamaSpitController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/LlamaSpitController.java @@ -12,11 +12,13 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityLlama; import net.minecraft.server.v1_16_R3.EntityLlamaSpit; import net.minecraft.server.v1_16_R3.EntityTypes; @@ -63,6 +65,11 @@ public class LlamaSpitController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartChestController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartChestController.java index 95752beb0..49f14d74b 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartChestController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartChestController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityMinecartChest; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class MinecartChestController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartCommandController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartCommandController.java index 6f2f8ce90..11dd71c29 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartCommandController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartCommandController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityMinecartCommandBlock; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class MinecartCommandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartFurnaceController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartFurnaceController.java index 6dd098b8d..446cad51c 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartFurnaceController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartFurnaceController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityMinecartFurnace; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class MinecartFurnaceController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartHopperController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartHopperController.java index cb435e62d..2dcc66e48 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartHopperController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartHopperController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityMinecartHopper; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -39,6 +41,11 @@ public class MinecartHopperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartRideableController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartRideableController.java index a147181af..0412ba142 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartRideableController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartRideableController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityMinecartRideable; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class MinecartRideableController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartSpawnerController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartSpawnerController.java index 19d454de9..820fd6195 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartSpawnerController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartSpawnerController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityMinecartMobSpawner; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -39,6 +41,11 @@ public class MinecartSpawnerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartTNTController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartTNTController.java index 00d2dd7c7..d852fc162 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartTNTController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/MinecartTNTController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityMinecartTNT; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -39,6 +41,11 @@ public class MinecartTNTController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/PaintingController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/PaintingController.java index 71fd2f46e..dd35b8910 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/PaintingController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/PaintingController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityPainting; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class PaintingController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ShulkerBulletController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ShulkerBulletController.java index dd295b9e1..005ab6996 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ShulkerBulletController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ShulkerBulletController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityShulkerBullet; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class ShulkerBulletController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SmallFireballController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SmallFireballController.java index e39ee2291..2a85a6463 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SmallFireballController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SmallFireballController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntitySmallFireball; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class SmallFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SnowballController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SnowballController.java index 6b3d83abd..e898cca70 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SnowballController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SnowballController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntitySnowball; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class SnowballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SpectralArrowController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SpectralArrowController.java index 761713683..6cab2d9ed 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SpectralArrowController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/SpectralArrowController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntitySpectralArrow; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class SpectralArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TNTPrimedController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TNTPrimedController.java index 014194a2c..96a44df90 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TNTPrimedController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TNTPrimedController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityTNTPrimed; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class TNTPrimedController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownExpBottleController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownExpBottleController.java index 08ea62fd8..3342da6bb 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownExpBottleController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownExpBottleController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityThrownExpBottle; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class ThrownExpBottleController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownPotionController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownPotionController.java index 07df91c38..b8507fd14 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownPotionController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownPotionController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityPotion; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -45,6 +47,11 @@ public class ThrownPotionController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownTridentController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownTridentController.java index c88164efd..04b153e3b 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownTridentController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ThrownTridentController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityThrownTrident; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class ThrownTridentController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TippedArrowController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TippedArrowController.java index 796c3274b..74dd4c6f9 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TippedArrowController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/TippedArrowController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityTippedArrow; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class TippedArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/WitherSkullController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/WitherSkullController.java index c3a0e3dca..bc398cd71 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/WitherSkullController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/WitherSkullController.java @@ -10,10 +10,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_16_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_16_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.EntityWitherSkull; import net.minecraft.server.v1_16_R3.FluidType; @@ -44,6 +46,11 @@ public class WitherSkullController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(Tag tag, double d0) { Vec3D old = getMot().add(0, 0, 0); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/NMSBoundingBox.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/NMSBoundingBox.java index 03be1fba0..89c33d2ef 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/NMSBoundingBox.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/NMSBoundingBox.java @@ -1,5 +1,8 @@ package net.citizensnpcs.nms.v1_16_R3.util; +import java.util.function.Supplier; + +import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.util.BoundingBox; import net.minecraft.server.v1_16_R3.AxisAlignedBB; @@ -7,6 +10,15 @@ public class NMSBoundingBox { private NMSBoundingBox() { } + public static AxisAlignedBB convert(BoundingBox box) { + return new AxisAlignedBB(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ); + } + + public static AxisAlignedBB makeBB(NPC npc, AxisAlignedBB def) { + return npc == null || !npc.data().has(NPC.Metadata.BOUNDING_BOX_FUNCTION) ? def + : convert(npc.data().> get(NPC.Metadata.BOUNDING_BOX_FUNCTION).get()); + } + public static BoundingBox wrap(AxisAlignedBB bb) { double minX = 0, minY = 0, minZ = 0, maxX = 0, maxY = 0, maxZ = 0; minX = bb.minX; diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/AxolotlController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/AxolotlController.java index 703d1b086..c0c5cf4fa 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/AxolotlController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/AxolotlController.java @@ -8,14 +8,14 @@ import org.bukkit.util.Vector; import com.mojang.serialization.Dynamic; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_17_R1.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -38,6 +38,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class AxolotlController extends MobEntityController { @@ -108,15 +109,7 @@ public class AxolotlController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -149,25 +142,18 @@ public class AxolotlController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BatController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BatController.java index 74f1a08ea..c5d1b0864 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BatController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BatController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftBat; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvent; @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class BatController extends MobEntityController { @@ -88,15 +89,7 @@ public class BatController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -143,12 +136,13 @@ public class BatController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BeeController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BeeController.java index 64a1c795d..8e95a28e8 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BeeController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BeeController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftBee; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvent; @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class BeeController extends MobEntityController { @@ -85,15 +86,7 @@ public class BeeController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -140,12 +133,13 @@ public class BeeController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BlazeController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BlazeController.java index fd5afa376..b661500ae 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BlazeController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/BlazeController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftBlaze; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvent; @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class BlazeController extends MobEntityController { @@ -80,15 +81,7 @@ public class BlazeController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -121,25 +114,18 @@ public class BlazeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CatController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CatController.java index 63c7eaff7..5f4af17e1 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CatController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CatController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftCat; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CatController extends MobEntityController { @@ -101,15 +102,7 @@ public class CatController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -142,25 +135,18 @@ public class CatController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CaveSpiderController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CaveSpiderController.java index 5835a6c3b..c215ebaa7 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CaveSpiderController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CaveSpiderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftCaveSpider; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CaveSpiderController extends MobEntityController { @@ -98,15 +99,7 @@ public class CaveSpiderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -154,12 +147,13 @@ public class CaveSpiderController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ChickenController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ChickenController.java index 04e144495..2ea086ea7 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ChickenController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ChickenController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftChicken; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ChickenController extends MobEntityController { @@ -109,15 +110,7 @@ public class ChickenController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -150,25 +143,18 @@ public class ChickenController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CodController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CodController.java index 271ade7f7..378b5ee0c 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CodController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CodController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftCod; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_17_R1.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -34,6 +34,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CodController extends MobEntityController { @@ -134,15 +135,7 @@ public class CodController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -175,25 +168,18 @@ public class CodController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CowController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CowController.java index 20e5f8430..35e5b021d 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CowController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CowController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftCow; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -33,6 +33,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CowController extends MobEntityController { @@ -106,15 +107,7 @@ public class CowController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -147,25 +140,18 @@ public class CowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CreeperController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CreeperController.java index e6cd690af..12eaaa8ed 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CreeperController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/CreeperController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftCreeper; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CreeperController extends MobEntityController { @@ -102,15 +103,7 @@ public class CreeperController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -143,25 +136,18 @@ public class CreeperController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/DolphinController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/DolphinController.java index a7568d601..b835dc51b 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/DolphinController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/DolphinController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftDolphin; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_17_R1.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class DolphinController extends MobEntityController { @@ -50,6 +51,7 @@ public class DolphinController extends MobEntityController { public static class EntityDolphinNPC extends Dolphin implements NPCHolder { private boolean inProtectedTick; + private final CitizensNPC npc; private MoveControl oldMoveController; @@ -100,15 +102,7 @@ public class DolphinController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -146,25 +140,18 @@ public class DolphinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/DrownedController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/DrownedController.java index d03390841..f9ac827b4 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/DrownedController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/DrownedController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftDrowned; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class DrownedController extends MobEntityController { @@ -98,15 +99,7 @@ public class DrownedController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -139,25 +132,18 @@ public class DrownedController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EnderDragonController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EnderDragonController.java index 41df4f726..ecec3519c 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EnderDragonController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EnderDragonController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEnderDragon; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvent; @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EnderDragonController extends MobEntityController { @@ -96,15 +97,7 @@ public class EnderDragonController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -137,25 +130,18 @@ public class EnderDragonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EndermanController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EndermanController.java index 56c5401b2..208c89bc9 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EndermanController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EndermanController.java @@ -9,13 +9,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EndermanController extends MobEntityController { @@ -105,15 +106,7 @@ public class EndermanController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -146,25 +139,18 @@ public class EndermanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EndermiteController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EndermiteController.java index 41e768ffc..300805c9f 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EndermiteController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EndermiteController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEndermite; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EndermiteController extends MobEntityController { @@ -98,15 +99,7 @@ public class EndermiteController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -139,25 +132,18 @@ public class EndermiteController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EvokerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EvokerController.java index 7fe5e78d5..8209cbe50 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EvokerController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EvokerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEvoker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EvokerController extends MobEntityController { @@ -92,15 +93,7 @@ public class EvokerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class EvokerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/FoxController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/FoxController.java index 973c42f82..4ccff18f1 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/FoxController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/FoxController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftFox; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class FoxController extends MobEntityController { @@ -95,15 +96,7 @@ public class FoxController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -136,25 +129,18 @@ public class FoxController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GhastController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GhastController.java index 4e59f8543..862596b44 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GhastController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GhastController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftGhast; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvent; @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GhastController extends MobEntityController { @@ -75,15 +76,7 @@ public class GhastController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -121,25 +114,18 @@ public class GhastController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GiantController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GiantController.java index ae7b6465e..f19ae6800 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GiantController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GiantController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftGiant; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GiantController extends MobEntityController { @@ -92,15 +93,7 @@ public class GiantController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class GiantController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GlowSquidController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GlowSquidController.java index 896ef24be..2ea63a628 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GlowSquidController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GlowSquidController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftGlowSquid; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GlowSquidController extends MobEntityController { @@ -92,15 +93,7 @@ public class GlowSquidController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class GlowSquidController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GoatController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GoatController.java index 00f1af566..5a00dbaf2 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GoatController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GoatController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftGoat; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GoatController extends MobEntityController { @@ -95,15 +96,7 @@ public class GoatController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -136,25 +129,18 @@ public class GoatController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GuardianController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GuardianController.java index 9252b3070..11b5934e0 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GuardianController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GuardianController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftGuardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GuardianController extends MobEntityController { @@ -98,15 +99,7 @@ public class GuardianController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -139,25 +132,18 @@ public class GuardianController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GuardianElderController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GuardianElderController.java index f0ae07fd1..e1a055e68 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GuardianElderController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/GuardianElderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftElderGuardian; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GuardianElderController extends MobEntityController { @@ -98,15 +99,7 @@ public class GuardianElderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -139,25 +132,18 @@ public class GuardianElderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HoglinController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HoglinController.java index 24d6c797d..2f1f78b79 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HoglinController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HoglinController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftHoglin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HoglinController extends MobEntityController { @@ -95,15 +96,7 @@ public class HoglinController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -136,25 +129,18 @@ public class HoglinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseController.java index ac56e0661..adb425d17 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -33,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseController extends MobEntityController { @@ -40,23 +40,24 @@ public class HorseController extends MobEntityController { super(EntityHorseNPC.class); } - @Override - public org.bukkit.entity.Horse getBukkitEntity() { - return (org.bukkit.entity.Horse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.Horse getBukkitEntity() { + return (org.bukkit.entity.Horse) super.getBukkitEntity(); + } + public static class EntityHorseNPC extends Horse implements NPCHolder { private double baseMovementSpeed; private boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseNPC(EntityType types, Level level) { @@ -135,15 +136,7 @@ public class HorseController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -184,25 +177,18 @@ public class HorseController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseDonkeyController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseDonkeyController.java index 87d969091..343a7c80a 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseDonkeyController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseDonkeyController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftDonkey; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -33,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseDonkeyController extends MobEntityController { @@ -40,22 +40,20 @@ public class HorseDonkeyController extends MobEntityController { super(EntityHorseDonkeyNPC.class); } - @Override - public org.bukkit.entity.Donkey getBukkitEntity() { - return (org.bukkit.entity.Donkey) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.addTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.Donkey getBukkitEntity() { + return (org.bukkit.entity.Donkey) super.getBukkitEntity(); + } + public static class EntityHorseDonkeyNPC extends Donkey implements NPCHolder { private double baseMovementSpeed; - boolean calledNMSHeight = false; - private final CitizensNPC npc; private boolean riding; @@ -134,15 +132,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -183,25 +173,18 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseMuleController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseMuleController.java index 5dffa0e50..57a4b274e 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseMuleController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseMuleController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftMule; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -33,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseMuleController extends MobEntityController { @@ -40,23 +40,24 @@ public class HorseMuleController extends MobEntityController { super(EntityHorseMuleNPC.class); } - @Override - public org.bukkit.entity.Mule getBukkitEntity() { - return (org.bukkit.entity.Mule) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.Mule getBukkitEntity() { + return (org.bukkit.entity.Mule) super.getBukkitEntity(); + } + public static class EntityHorseMuleNPC extends Mule implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseMuleNPC(EntityType types, Level level) { @@ -134,15 +135,7 @@ public class HorseMuleController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -183,25 +176,18 @@ public class HorseMuleController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseSkeletonController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseSkeletonController.java index 0c2774f1a..729daedf0 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseSkeletonController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseSkeletonController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftSkeletonHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -33,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseSkeletonController extends MobEntityController { @@ -40,23 +40,24 @@ public class HorseSkeletonController extends MobEntityController { super(EntityHorseSkeletonNPC.class); } - @Override - public org.bukkit.entity.SkeletonHorse getBukkitEntity() { - return (org.bukkit.entity.SkeletonHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.SkeletonHorse getBukkitEntity() { + return (org.bukkit.entity.SkeletonHorse) super.getBukkitEntity(); + } + public static class EntityHorseSkeletonNPC extends SkeletonHorse implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseSkeletonNPC(EntityType types, Level level) { @@ -134,15 +135,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -183,25 +176,18 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseZombieController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseZombieController.java index 873615ef6..afd178901 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseZombieController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HorseZombieController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftZombieHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -33,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseZombieController extends MobEntityController { @@ -40,23 +40,24 @@ public class HorseZombieController extends MobEntityController { super(EntityHorseZombieNPC.class); } - @Override - public org.bukkit.entity.ZombieHorse getBukkitEntity() { - return (org.bukkit.entity.ZombieHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.ZombieHorse getBukkitEntity() { + return (org.bukkit.entity.ZombieHorse) super.getBukkitEntity(); + } + public static class EntityHorseZombieNPC extends ZombieHorse implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseZombieNPC(EntityType types, Level level) { @@ -134,15 +135,7 @@ public class HorseZombieController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -183,25 +176,18 @@ public class HorseZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/IllusionerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/IllusionerController.java index 1b8c9c02b..0bcc2eda5 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/IllusionerController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/IllusionerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftIllusioner; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class IllusionerController extends MobEntityController { @@ -92,15 +93,7 @@ public class IllusionerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class IllusionerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/IronGolemController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/IronGolemController.java index 0a139f28f..297037582 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/IronGolemController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/IronGolemController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftIronGolem; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class IronGolemController extends MobEntityController { @@ -92,15 +93,7 @@ public class IronGolemController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class IronGolemController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/LlamaController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/LlamaController.java index eb9db8444..a9c118452 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/LlamaController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/LlamaController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftLlama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -31,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class LlamaController extends MobEntityController { @@ -38,17 +38,17 @@ public class LlamaController extends MobEntityController { super(EntityLlamaNPC.class); } - @Override - public org.bukkit.entity.Llama getBukkitEntity() { - return (org.bukkit.entity.Llama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.Llama getBukkitEntity() { + return (org.bukkit.entity.Llama) super.getBukkitEntity(); + } + public static class EntityLlamaNPC extends Llama implements NPCHolder { boolean calledNMSHeight = false; @@ -113,15 +113,7 @@ public class LlamaController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -154,25 +146,18 @@ public class LlamaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MagmaCubeController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MagmaCubeController.java index 25a4e90a7..745da0f1e 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MagmaCubeController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MagmaCubeController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftMagmaCube; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_17_R1.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MagmaCubeController extends MobEntityController { @@ -93,15 +94,7 @@ public class MagmaCubeController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MushroomCowController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MushroomCowController.java index e480a8107..24eaf6e84 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MushroomCowController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MushroomCowController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftMushroomCow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -31,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MushroomCowController extends MobEntityController { @@ -98,15 +99,7 @@ public class MushroomCowController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -139,25 +132,18 @@ public class MushroomCowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/OcelotController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/OcelotController.java index b44721d01..782a5b437 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/OcelotController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/OcelotController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftOcelot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class OcelotController extends MobEntityController { @@ -101,15 +102,7 @@ public class OcelotController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -142,25 +135,18 @@ public class OcelotController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PandaController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PandaController.java index 2a3eda29e..3c479e036 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PandaController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PandaController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPanda; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PandaController extends MobEntityController { @@ -95,15 +96,7 @@ public class PandaController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -136,25 +129,18 @@ public class PandaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ParrotController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ParrotController.java index cf2b08527..05d012871 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ParrotController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ParrotController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftParrot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvent; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ParrotController extends MobEntityController { @@ -84,15 +85,7 @@ public class ParrotController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -139,12 +132,13 @@ public class ParrotController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PhantomController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PhantomController.java index a3a78f306..74e5f0ac9 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PhantomController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PhantomController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPhantom; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_17_R1.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -31,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PhantomController extends MobEntityController { @@ -49,6 +50,7 @@ public class PhantomController extends MobEntityController { private final CitizensNPC npc; private LookControl oldLookController; + private MoveControl oldMoveController; public EntityPhantomNPC(EntityType types, Level level) { @@ -119,15 +121,7 @@ public class PhantomController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -160,15 +154,7 @@ public class PhantomController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -180,12 +166,13 @@ public class PhantomController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PigController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PigController.java index 838304234..8a1952934 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PigController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PigController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPig; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PigController extends MobEntityController { @@ -103,15 +104,7 @@ public class PigController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -144,25 +137,18 @@ public class PigController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PigZombieController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PigZombieController.java index 6c0ee2e6b..d0e6b4c9b 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PigZombieController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PigZombieController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPigZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PigZombieController extends MobEntityController { @@ -93,15 +94,7 @@ public class PigZombieController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class PigZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PiglinBruteController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PiglinBruteController.java index b2f545c1d..d4b60d1d2 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PiglinBruteController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PiglinBruteController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPiglinBrute; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PiglinBruteController extends MobEntityController { @@ -95,15 +96,7 @@ public class PiglinBruteController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -136,25 +129,18 @@ public class PiglinBruteController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PiglinController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PiglinController.java index d1dd05551..391bbe75e 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PiglinController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PiglinController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPiglin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PiglinController extends MobEntityController { @@ -95,15 +96,7 @@ public class PiglinController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -136,25 +129,18 @@ public class PiglinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PillagerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PillagerController.java index 02cbb825c..346dc00bf 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PillagerController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PillagerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PillagerController extends MobEntityController { @@ -95,15 +96,7 @@ public class PillagerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -136,25 +129,18 @@ public class PillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PolarBearController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PolarBearController.java index e5ad510c7..e03981c6f 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PolarBearController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PolarBearController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPolarBear; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.syncher.EntityDataAccessor; @@ -26,6 +26,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PolarBearController extends MobEntityController { @@ -78,15 +79,7 @@ public class PolarBearController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,12 +126,13 @@ public class PolarBearController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PufferFishController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PufferFishController.java index 82525abbe..905ca487b 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PufferFishController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/PufferFishController.java @@ -6,15 +6,15 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPufferFish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_17_R1.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.versioned.PufferFishTrait; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -37,6 +37,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PufferFishController extends MobEntityController { @@ -129,15 +130,7 @@ public class PufferFishController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -178,25 +171,18 @@ public class PufferFishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/RabbitController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/RabbitController.java index d4b3e75b6..7efca336a 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/RabbitController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/RabbitController.java @@ -6,10 +6,9 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftRabbit; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -30,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class RabbitController extends MobEntityController { @@ -100,15 +100,7 @@ public class RabbitController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -146,25 +138,18 @@ public class RabbitController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/RavagerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/RavagerController.java index 9a2fe0b28..0f986525c 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/RavagerController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/RavagerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftRavager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class RavagerController extends MobEntityController { @@ -95,15 +96,7 @@ public class RavagerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -136,25 +129,18 @@ public class RavagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SalmonController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SalmonController.java index 151543bd6..dc06000a1 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SalmonController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SalmonController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftSalmon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_17_R1.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -34,6 +34,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SalmonController extends MobEntityController { @@ -126,15 +127,7 @@ public class SalmonController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -167,25 +160,18 @@ public class SalmonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SheepController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SheepController.java index d753799ad..731e4ee1d 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SheepController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SheepController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftSheep; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SheepController extends MobEntityController { @@ -95,15 +96,7 @@ public class SheepController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -136,25 +129,18 @@ public class SheepController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ShulkerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ShulkerController.java index 37560f82c..a9234a532 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ShulkerController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ShulkerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftShulker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ShulkerController extends MobEntityController { @@ -96,15 +97,7 @@ public class ShulkerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -137,25 +130,18 @@ public class ShulkerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SilverfishController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SilverfishController.java index 096b09916..761e283f0 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SilverfishController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SilverfishController.java @@ -7,12 +7,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftSilverfish; import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SilverfishController extends MobEntityController { @@ -131,25 +133,18 @@ public class SilverfishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonController.java index 90d9bfb9c..13571460a 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftSkeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SkeletonController extends MobEntityController { @@ -92,15 +93,7 @@ public class SkeletonController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class SkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonStrayController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonStrayController.java index 8cb1d8624..fd69abbc6 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonStrayController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonStrayController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftStray; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SkeletonStrayController extends MobEntityController { @@ -92,15 +93,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonWitherController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonWitherController.java index a51e0b399..395bc2e13 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonWitherController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SkeletonWitherController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftWitherSkeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SkeletonWitherController extends MobEntityController { @@ -92,15 +93,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SlimeController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SlimeController.java index 8c0c097c2..8b36291f7 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SlimeController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SlimeController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftSlime; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_17_R1.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SlimeController extends MobEntityController { @@ -93,15 +94,7 @@ public class SlimeController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class SlimeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SnowmanController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SnowmanController.java index 37a550308..5f7ebb277 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SnowmanController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SnowmanController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftSnowman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SnowmanController extends MobEntityController { @@ -92,15 +93,7 @@ public class SnowmanController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class SnowmanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SpiderController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SpiderController.java index 7b70d6581..d5d1934f1 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SpiderController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SpiderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftSpider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SpiderController extends MobEntityController { @@ -92,15 +93,7 @@ public class SpiderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class SpiderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SquidController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SquidController.java index cb3ff0921..ec9c4f632 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SquidController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/SquidController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftSquid; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SquidController extends MobEntityController { @@ -92,15 +93,7 @@ public class SquidController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class SquidController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/StriderController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/StriderController.java index e19217825..ace46da70 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/StriderController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/StriderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftStrider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class StriderController extends MobEntityController { @@ -92,15 +93,7 @@ public class StriderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class StriderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TraderLlamaController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TraderLlamaController.java index bce88b1a5..9143a19f6 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TraderLlamaController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TraderLlamaController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftTraderLlama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -31,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TraderLlamaController extends MobEntityController { @@ -38,19 +38,20 @@ public class TraderLlamaController extends MobEntityController { super(EntityTraderLlamaNPC.class); } - @Override - public org.bukkit.entity.TraderLlama getBukkitEntity() { - return (org.bukkit.entity.TraderLlama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.TraderLlama getBukkitEntity() { + return (org.bukkit.entity.TraderLlama) super.getBukkitEntity(); + } + public static class EntityTraderLlamaNPC extends TraderLlama implements NPCHolder { boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityTraderLlamaNPC(EntityType types, Level level) { @@ -113,15 +114,7 @@ public class TraderLlamaController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -154,25 +147,18 @@ public class TraderLlamaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TropicalFishController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TropicalFishController.java index efe918b4a..7094ef0b6 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TropicalFishController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TropicalFishController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftTropicalFish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_17_R1.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -34,6 +34,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TropicalFishController extends MobEntityController { @@ -128,15 +129,7 @@ public class TropicalFishController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -169,25 +162,18 @@ public class TropicalFishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TurtleController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TurtleController.java index f547e132c..e724a2137 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TurtleController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/TurtleController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftTurtle; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.nms.v1_17_R1.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -31,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TurtleController extends MobEntityController { @@ -114,15 +115,7 @@ public class TurtleController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -155,25 +148,18 @@ public class TurtleController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/VexController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/VexController.java index 8d60408b7..4e494bd02 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/VexController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/VexController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftVex; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvent; @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class VexController extends MobEntityController { @@ -78,15 +79,7 @@ public class VexController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,12 +126,13 @@ public class VexController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/VillagerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/VillagerController.java index d5234c3ae..c59698ac0 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/VillagerController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/VillagerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftVillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -35,6 +35,7 @@ import net.minecraft.world.item.trading.MerchantOffers; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class VillagerController extends MobEntityController { @@ -109,15 +110,7 @@ public class VillagerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -150,15 +143,7 @@ public class VillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -172,12 +157,13 @@ public class VillagerController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/VindicatorController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/VindicatorController.java index 1088e96e1..1a3b227f7 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/VindicatorController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/VindicatorController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftVindicator; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class VindicatorController extends MobEntityController { @@ -95,15 +96,7 @@ public class VindicatorController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -136,25 +129,18 @@ public class VindicatorController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WanderingTraderController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WanderingTraderController.java index a9ab6e466..49ca0bf7b 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WanderingTraderController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WanderingTraderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftWanderingTrader; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -34,6 +34,7 @@ import net.minecraft.world.item.trading.MerchantOffers; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WanderingTraderController extends MobEntityController { @@ -52,6 +53,7 @@ public class WanderingTraderController extends MobEntityController { private boolean blockTrades = true; boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityWanderingTraderNPC(EntityType types, Level level) { @@ -107,15 +109,7 @@ public class WanderingTraderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -152,15 +146,7 @@ public class WanderingTraderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -174,12 +160,13 @@ public class WanderingTraderController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WitchController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WitchController.java index 0e295f8ed..da485a1ed 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WitchController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WitchController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftWitch; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WitchController extends MobEntityController { @@ -92,15 +93,7 @@ public class WitchController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class WitchController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WitherController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WitherController.java index 148e5f544..98a82772e 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WitherController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WitherController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftWither; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvent; @@ -25,6 +25,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WitherController extends MobEntityController { @@ -79,15 +80,7 @@ public class WitherController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -125,15 +118,7 @@ public class WitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -144,12 +129,13 @@ public class WitherController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WolfController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WolfController.java index f342939e3..d840a43e2 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WolfController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/WolfController.java @@ -7,13 +7,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftWolf; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WolfController extends MobEntityController { @@ -97,15 +98,7 @@ public class WolfController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -138,25 +131,18 @@ public class WolfController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZoglinController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZoglinController.java index 4781c0a62..1e3656ddc 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZoglinController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZoglinController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftZoglin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ZoglinController extends MobEntityController { @@ -94,15 +95,7 @@ public class ZoglinController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,25 +128,18 @@ public class ZoglinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieController.java index d06247ec3..a26ec1999 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ZombieController extends MobEntityController { @@ -92,15 +93,7 @@ public class ZombieController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class ZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieHuskController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieHuskController.java index 614a26e12..4ab7bc4ef 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieHuskController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieHuskController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftHusk; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ZombieHuskController extends MobEntityController { @@ -92,15 +93,7 @@ public class ZombieHuskController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieVillagerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieVillagerController.java index dfc3f0da6..51f2350a9 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieVillagerController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ZombieVillagerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_17_R1.entity.CraftVillagerZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ZombieVillagerController extends MobEntityController { @@ -92,15 +93,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -133,25 +126,18 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/AreaEffectCloudController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/AreaEffectCloudController.java index 9ff8cd03c..43c406c10 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/AreaEffectCloudController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/AreaEffectCloudController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -20,6 +21,7 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class AreaEffectCloudController extends MobEntityController { @@ -63,6 +65,11 @@ public class AreaEffectCloudController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ArmorStandController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ArmorStandController.java index 507485f76..d18b11c11 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ArmorStandController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ArmorStandController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -24,6 +25,7 @@ import net.minecraft.world.entity.decoration.ArmorStand; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ArmorStandController extends MobEntityController { @@ -78,6 +80,11 @@ public class ArmorStandController extends MobEntityController { return event.isCancelled() ? InteractionResult.FAIL : InteractionResult.SUCCESS; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/BoatController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/BoatController.java index 175dfe498..3079ccd1d 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/BoatController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/BoatController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -49,6 +50,7 @@ public class BoatController extends MobEntityController { private double aC; private float aD; + private Status aE; private Status aF; private double ap; @@ -93,6 +95,11 @@ public class BoatController extends MobEntityController { return Status.IN_AIR; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/DragonFireballController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/DragonFireballController.java index a47e8f175..1fb975468 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/DragonFireballController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/DragonFireballController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -20,6 +21,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.DragonFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class DragonFireballController extends MobEntityController { @@ -63,6 +65,11 @@ public class DragonFireballController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EggController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EggController.java index b617be3ff..8cbc5e3d8 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EggController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EggController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ThrownEgg; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EggController extends AbstractEntityController { @@ -78,6 +80,11 @@ public class EggController extends AbstractEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderCrystalController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderCrystalController.java index 8bb1740b9..485396237 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderCrystalController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderCrystalController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -20,6 +21,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.boss.enderdragon.EndCrystal; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EnderCrystalController extends MobEntityController { @@ -63,6 +65,11 @@ public class EnderCrystalController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderPearlController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderPearlController.java index f81b563b3..d3e45b735 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderPearlController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderPearlController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -21,6 +22,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ThrownEnderpearl; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EnderPearlController extends MobEntityController { @@ -64,6 +66,11 @@ public class EnderPearlController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderSignalController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderSignalController.java index bb0c9d906..c57abbcff 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderSignalController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EnderSignalController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -21,6 +22,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.EyeOfEnder; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EnderSignalController extends MobEntityController { @@ -64,6 +66,11 @@ public class EnderSignalController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EvokerFangsController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EvokerFangsController.java index 0c4385d28..af08b303a 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EvokerFangsController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/EvokerFangsController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -24,6 +25,7 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.projectile.EvokerFangs; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EvokerFangsController extends MobEntityController { @@ -72,6 +74,11 @@ public class EvokerFangsController extends MobEntityController { return event.isCancelled() ? InteractionResult.FAIL : InteractionResult.SUCCESS; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ExperienceOrbController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ExperienceOrbController.java index 512230922..39d38cce3 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ExperienceOrbController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ExperienceOrbController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -20,6 +21,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.ExperienceOrb; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ExperienceOrbController extends MobEntityController { @@ -57,6 +59,11 @@ public class ExperienceOrbController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FallingBlockController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FallingBlockController.java index 313cb5a4e..deb3fa6aa 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FallingBlockController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FallingBlockController.java @@ -11,6 +11,7 @@ import org.bukkit.entity.FallingBlock; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -27,6 +28,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class FallingBlockController extends AbstractEntityController { @@ -78,6 +80,11 @@ public class FallingBlockController extends AbstractEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FireworkController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FireworkController.java index 5bda20f29..3011c573b 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FireworkController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FireworkController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -21,6 +22,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.FireworkRocketEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class FireworkController extends MobEntityController { @@ -58,6 +60,11 @@ public class FireworkController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FishingHookController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FishingHookController.java index b9a74f1f8..3bca2a3a7 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FishingHookController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/FishingHookController.java @@ -14,6 +14,7 @@ import com.mojang.authlib.GameProfile; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -30,6 +31,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class FishingHookController extends MobEntityController { @@ -77,6 +79,11 @@ public class FishingHookController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/GlowItemFrameController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/GlowItemFrameController.java index 9025784b0..65f994be2 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/GlowItemFrameController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/GlowItemFrameController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.entity.nonliving.ItemFrameController.EntityItemFrameNPC; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.decoration.GlowItemFrame; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GlowItemFrameController extends MobEntityController { @@ -69,6 +71,11 @@ public class GlowItemFrameController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemController.java index 6a9d676fc..200a8a14a 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemController.java @@ -11,6 +11,7 @@ import org.bukkit.entity.Item; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -25,6 +26,7 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ItemController extends AbstractEntityController { @@ -70,6 +72,11 @@ public class ItemController extends AbstractEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void playerTouch(Player entityhuman) { if (npc == null) { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemFrameController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemFrameController.java index 3ef44c5a9..2bcaead5f 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemFrameController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemFrameController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.decoration.ItemFrame; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ItemFrameController extends MobEntityController { @@ -68,6 +70,11 @@ public class ItemFrameController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LargeFireballController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LargeFireballController.java index b3020c8fe..c4947a489 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LargeFireballController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LargeFireballController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -20,6 +21,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.LargeFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class LargeFireballController extends MobEntityController { @@ -57,6 +59,11 @@ public class LargeFireballController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LeashController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LeashController.java index 16126b264..2b5c1aa09 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LeashController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LeashController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -21,6 +22,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.decoration.LeashFenceKnotEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class LeashController extends MobEntityController { @@ -58,6 +60,11 @@ public class LeashController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LlamaSpitController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LlamaSpitController.java index 8f554f0e9..f2663dfe4 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LlamaSpitController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/LlamaSpitController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -24,6 +25,7 @@ import net.minecraft.world.entity.animal.horse.Llama; import net.minecraft.world.entity.projectile.LlamaSpit; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class LlamaSpitController extends AbstractEntityController { @@ -75,6 +77,11 @@ public class LlamaSpitController extends AbstractEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MarkerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MarkerController.java index 8e9cd990b..873d988e9 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MarkerController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MarkerController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -20,6 +21,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Marker; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MarkerController extends MobEntityController { @@ -57,6 +59,11 @@ public class MarkerController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartChestController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartChestController.java index 28dab0bea..3352d49f0 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartChestController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartChestController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -21,6 +22,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartChest; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartChestController extends MobEntityController { @@ -58,6 +60,11 @@ public class MinecartChestController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartCommandController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartCommandController.java index 757695a6d..22a85ea31 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartCommandController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartCommandController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -21,6 +22,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartCommandBlock; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartCommandController extends MobEntityController { @@ -58,6 +60,11 @@ public class MinecartCommandController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartFurnaceController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartFurnaceController.java index cc3670175..bc392abe8 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartFurnaceController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartFurnaceController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -21,6 +22,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartFurnace; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartFurnaceController extends MobEntityController { @@ -58,6 +60,11 @@ public class MinecartFurnaceController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartHopperController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartHopperController.java index 00c623f43..3afb7ae52 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartHopperController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartHopperController.java @@ -5,6 +5,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -16,6 +17,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartHopper; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartHopperController extends MobEntityController { @@ -45,6 +47,11 @@ public class MinecartHopperController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartRideableController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartRideableController.java index f152e97bb..de03891b7 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartRideableController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartRideableController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -20,6 +21,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.Minecart; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartRideableController extends MobEntityController { @@ -57,6 +59,11 @@ public class MinecartRideableController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartSpawnerController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartSpawnerController.java index 7e51b9e86..532eebcb8 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartSpawnerController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartSpawnerController.java @@ -5,6 +5,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -16,6 +17,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartSpawner; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartSpawnerController extends MobEntityController { @@ -45,6 +47,11 @@ public class MinecartSpawnerController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartTNTController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartTNTController.java index 09272971a..c0f3c076b 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartTNTController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/MinecartTNTController.java @@ -5,6 +5,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -16,6 +17,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartTNT; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartTNTController extends MobEntityController { @@ -45,6 +47,11 @@ public class MinecartTNTController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/PaintingController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/PaintingController.java index 4c2136215..e7ecb77a7 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/PaintingController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/PaintingController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -20,6 +21,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.decoration.Painting; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PaintingController extends MobEntityController { @@ -57,6 +59,11 @@ public class PaintingController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ShulkerBulletController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ShulkerBulletController.java index 355598787..fb8add691 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ShulkerBulletController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ShulkerBulletController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -20,6 +21,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ShulkerBullet; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ShulkerBulletController extends MobEntityController { @@ -57,6 +59,11 @@ public class ShulkerBulletController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SmallFireballController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SmallFireballController.java index 5c153d551..6cde62969 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SmallFireballController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SmallFireballController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -20,6 +21,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.SmallFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SmallFireballController extends MobEntityController { @@ -57,6 +59,11 @@ public class SmallFireballController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SnowballController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SnowballController.java index b3d0e4779..b2ea6c17a 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SnowballController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SnowballController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -20,6 +21,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.Snowball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SnowballController extends MobEntityController { @@ -57,6 +59,11 @@ public class SnowballController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SpectralArrowController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SpectralArrowController.java index 3132a4adb..ad182b347 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SpectralArrowController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/SpectralArrowController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -21,6 +22,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.SpectralArrow; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SpectralArrowController extends MobEntityController { @@ -58,6 +60,11 @@ public class SpectralArrowController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TNTPrimedController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TNTPrimedController.java index 485c1074a..e5df0f40f 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TNTPrimedController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TNTPrimedController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -21,6 +22,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.item.PrimedTnt; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TNTPrimedController extends MobEntityController { @@ -58,6 +60,11 @@ public class TNTPrimedController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownExpBottleController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownExpBottleController.java index bbd0ec672..8ca0718a9 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownExpBottleController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownExpBottleController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -21,6 +22,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ThrownExperienceBottle; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ThrownExpBottleController extends MobEntityController { @@ -58,6 +60,11 @@ public class ThrownExpBottleController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownPotionController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownPotionController.java index f641cdf30..43d5f9eaa 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownPotionController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownPotionController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -21,6 +22,7 @@ import net.minecraft.world.entity.projectile.ThrownPotion; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ThrownPotionController extends MobEntityController { @@ -62,6 +64,11 @@ public class ThrownPotionController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownTridentController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownTridentController.java index 081819b7b..0d22054cd 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownTridentController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ThrownTridentController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -21,6 +22,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ThrownTrident; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ThrownTridentController extends MobEntityController { @@ -58,6 +60,11 @@ public class ThrownTridentController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TippedArrowController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TippedArrowController.java index e6e0a5b76..c0efa3005 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TippedArrowController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/TippedArrowController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -20,6 +21,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.Arrow; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TippedArrowController extends MobEntityController { @@ -57,6 +59,11 @@ public class TippedArrowController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/WitherSkullController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/WitherSkullController.java index e8e28e6f7..5c88beffb 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/WitherSkullController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/WitherSkullController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.entity.MobEntityController; import net.citizensnpcs.nms.v1_17_R1.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_17_R1.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -20,6 +21,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.WitherSkull; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WitherSkullController extends MobEntityController { @@ -57,6 +59,11 @@ public class WitherSkullController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/NMSBoundingBox.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/NMSBoundingBox.java index 4e6675184..ce98a5c97 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/NMSBoundingBox.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/NMSBoundingBox.java @@ -1,5 +1,8 @@ package net.citizensnpcs.nms.v1_17_R1.util; +import java.util.function.Supplier; + +import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.util.BoundingBox; import net.minecraft.world.phys.AABB; @@ -7,6 +10,15 @@ public class NMSBoundingBox { private NMSBoundingBox() { } + public static AABB convert(BoundingBox box) { + return new AABB(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ); + } + + public static AABB makeBB(NPC npc, AABB def) { + return npc == null || !npc.data().has(NPC.Metadata.BOUNDING_BOX_FUNCTION) ? def + : convert(npc.data().> get(NPC.Metadata.BOUNDING_BOX_FUNCTION).get()); + } + public static BoundingBox wrap(AABB bb) { return new BoundingBox(bb.minX, bb.minY, bb.minZ, bb.maxX, bb.maxY, bb.maxZ); } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/NMSImpl.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/NMSImpl.java index 5853c0125..8d62cc368 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/NMSImpl.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/NMSImpl.java @@ -1237,10 +1237,12 @@ public class NMSImpl implements NMSBridge { float oldPitch = handle.getXRot(); handle.setYBodyRot(bodyYaw); handle.setXRot(pitch); - sendPacketsNearby(null, from.getLocation(), new Packet[] { new ClientboundTeleportEntityPacket(handle), - // new ClientboundMoveEntityPacket.Rot(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), + sendPacketsNearby(null, from.getLocation(), new ClientboundTeleportEntityPacket(handle), // new + // ClientboundMoveEntityPacket.Rot(handle.getId(), + // (byte) (bodyYaw * + // 256.0F / 360.0F), // (byte) (pitch * 256.0F / 360.0F), handle.onGround), - new ClientboundRotateHeadPacket(handle, (byte) (headYaw * 256.0F / 360.0F)) }); + new ClientboundRotateHeadPacket(handle, (byte) (headYaw * 256.0F / 360.0F))); handle.setYBodyRot(oldBody); handle.setXRot(oldPitch); } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/AxolotlController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/AxolotlController.java index f663919a5..4f94f6b9d 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/AxolotlController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/AxolotlController.java @@ -8,13 +8,13 @@ import org.bukkit.util.Vector; import com.mojang.serialization.Dynamic; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -38,6 +38,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class AxolotlController extends MobEntityController { @@ -108,15 +109,7 @@ public class AxolotlController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -149,25 +142,18 @@ public class AxolotlController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BatController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BatController.java index 90773d61b..7a9939f21 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BatController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BatController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftBat; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class BatController extends MobEntityController { @@ -90,15 +91,7 @@ public class BatController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -145,12 +138,13 @@ public class BatController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BeeController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BeeController.java index f1a65adb1..713485dd1 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BeeController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BeeController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftBee; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class BeeController extends MobEntityController { @@ -87,15 +88,7 @@ public class BeeController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -142,12 +135,13 @@ public class BeeController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BlazeController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BlazeController.java index 2034a506f..3ad0a2a2f 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BlazeController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/BlazeController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftBlaze; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class BlazeController extends MobEntityController { @@ -82,15 +83,7 @@ public class BlazeController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -123,25 +116,18 @@ public class BlazeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CatController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CatController.java index 3becb2b56..5d0db67ca 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CatController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CatController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftCat; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CatController extends MobEntityController { @@ -102,15 +103,7 @@ public class CatController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -143,25 +136,18 @@ public class CatController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CaveSpiderController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CaveSpiderController.java index dfd46b9eb..2e06577bc 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CaveSpiderController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CaveSpiderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftCaveSpider; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CaveSpiderController extends MobEntityController { @@ -99,15 +100,7 @@ public class CaveSpiderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -155,12 +148,13 @@ public class CaveSpiderController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ChickenController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ChickenController.java index d203515d3..d6040ebbf 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ChickenController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ChickenController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftChicken; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ChickenController extends MobEntityController { @@ -110,15 +111,7 @@ public class ChickenController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -151,25 +144,18 @@ public class ChickenController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CodController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CodController.java index b5fcb7c91..783e1b438 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CodController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CodController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftCod; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_18_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -35,6 +35,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CodController extends MobEntityController { @@ -135,15 +136,7 @@ public class CodController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -176,25 +169,18 @@ public class CodController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CowController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CowController.java index 71f53c5fd..5eba47934 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CowController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CowController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftCow; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -34,6 +34,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CowController extends MobEntityController { @@ -107,15 +108,7 @@ public class CowController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -148,25 +141,18 @@ public class CowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CreeperController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CreeperController.java index 31ca1f04d..0cc40bcf1 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CreeperController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/CreeperController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftCreeper; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CreeperController extends MobEntityController { @@ -102,15 +103,7 @@ public class CreeperController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -143,25 +136,18 @@ public class CreeperController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/DolphinController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/DolphinController.java index 65c3d978c..6dded4444 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/DolphinController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/DolphinController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftDolphin; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class DolphinController extends MobEntityController { @@ -50,6 +51,7 @@ public class DolphinController extends MobEntityController { public static class EntityDolphinNPC extends Dolphin implements NPCHolder { private boolean inProtectedTick; + private final CitizensNPC npc; private MoveControl oldMoveController; @@ -100,15 +102,7 @@ public class DolphinController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -146,25 +140,18 @@ public class DolphinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/DrownedController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/DrownedController.java index 1cbf1986f..324618ed6 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/DrownedController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/DrownedController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftDrowned; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class DrownedController extends MobEntityController { @@ -99,15 +100,7 @@ public class DrownedController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -140,25 +133,18 @@ public class DrownedController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EnderDragonController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EnderDragonController.java index c81d41625..a45c55832 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EnderDragonController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EnderDragonController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEnderDragon; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EnderDragonController extends MobEntityController { @@ -98,15 +99,7 @@ public class EnderDragonController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -139,25 +132,18 @@ public class EnderDragonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EndermanController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EndermanController.java index a553b8a07..82948d7fe 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EndermanController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EndermanController.java @@ -9,13 +9,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -31,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EndermanController extends MobEntityController { @@ -102,15 +103,7 @@ public class EndermanController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -143,25 +136,18 @@ public class EndermanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EndermiteController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EndermiteController.java index 9407caf87..5716629ab 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EndermiteController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EndermiteController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEndermite; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EndermiteController extends MobEntityController { @@ -99,15 +100,7 @@ public class EndermiteController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -140,25 +133,18 @@ public class EndermiteController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EvokerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EvokerController.java index a63b5b714..430f21e9c 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EvokerController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EvokerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEvoker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EvokerController extends MobEntityController { @@ -93,15 +94,7 @@ public class EvokerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class EvokerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/FoxController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/FoxController.java index d6d168570..d2d4a50c1 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/FoxController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/FoxController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftFox; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class FoxController extends MobEntityController { @@ -96,15 +97,7 @@ public class FoxController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -137,25 +130,18 @@ public class FoxController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GhastController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GhastController.java index 6200cbf96..ee163c5be 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GhastController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GhastController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftGhast; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GhastController extends MobEntityController { @@ -77,15 +78,7 @@ public class GhastController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -123,25 +116,18 @@ public class GhastController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GiantController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GiantController.java index 33b8e27d4..738bc3187 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GiantController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GiantController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftGiant; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GiantController extends MobEntityController { @@ -93,15 +94,7 @@ public class GiantController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class GiantController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GlowSquidController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GlowSquidController.java index 3b7095485..d0f697bcf 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GlowSquidController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GlowSquidController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftGlowSquid; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GlowSquidController extends MobEntityController { @@ -93,15 +94,7 @@ public class GlowSquidController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class GlowSquidController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GoatController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GoatController.java index 1b2c446f9..5d08a011f 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GoatController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GoatController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftGoat; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GoatController extends MobEntityController { @@ -96,15 +97,7 @@ public class GoatController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -137,25 +130,18 @@ public class GoatController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GuardianController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GuardianController.java index b39fdaecc..871b69f35 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GuardianController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GuardianController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftGuardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GuardianController extends MobEntityController { @@ -99,15 +100,7 @@ public class GuardianController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -140,25 +133,18 @@ public class GuardianController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GuardianElderController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GuardianElderController.java index d29b195f0..f39fcdc22 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GuardianElderController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/GuardianElderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftElderGuardian; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GuardianElderController extends MobEntityController { @@ -99,15 +100,7 @@ public class GuardianElderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -140,25 +133,18 @@ public class GuardianElderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HoglinController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HoglinController.java index 82d1053d5..838017ec1 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HoglinController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HoglinController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftHoglin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HoglinController extends MobEntityController { @@ -96,15 +97,7 @@ public class HoglinController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -137,25 +130,18 @@ public class HoglinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseController.java index 0d3697854..d9a00ebd4 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -34,6 +33,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseController extends MobEntityController { @@ -41,22 +41,21 @@ public class HorseController extends MobEntityController { super(EntityHorseNPC.class); } - @Override - public org.bukkit.entity.Horse getBukkitEntity() { - return (org.bukkit.entity.Horse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.Horse getBukkitEntity() { + return (org.bukkit.entity.Horse) super.getBukkitEntity(); + } + public static class EntityHorseNPC extends Horse implements NPCHolder { private double baseMovementSpeed; private boolean calledNMSHeight = false; - private final CitizensNPC npc; private boolean riding; @@ -136,15 +135,7 @@ public class HorseController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -185,25 +176,18 @@ public class HorseController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseDonkeyController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseDonkeyController.java index b506b86f4..5df63077a 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseDonkeyController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseDonkeyController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftDonkey; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -34,6 +33,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseDonkeyController extends MobEntityController { @@ -41,23 +41,24 @@ public class HorseDonkeyController extends MobEntityController { super(EntityHorseDonkeyNPC.class); } - @Override - public org.bukkit.entity.Donkey getBukkitEntity() { - return (org.bukkit.entity.Donkey) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.addTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.Donkey getBukkitEntity() { + return (org.bukkit.entity.Donkey) super.getBukkitEntity(); + } + public static class EntityHorseDonkeyNPC extends Donkey implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseDonkeyNPC(EntityType types, Level level) { @@ -135,15 +136,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -184,25 +177,18 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseMuleController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseMuleController.java index 01dd4a655..95b64028b 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseMuleController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseMuleController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftMule; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -34,6 +33,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseMuleController extends MobEntityController { @@ -41,23 +41,24 @@ public class HorseMuleController extends MobEntityController { super(EntityHorseMuleNPC.class); } - @Override - public org.bukkit.entity.Mule getBukkitEntity() { - return (org.bukkit.entity.Mule) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.Mule getBukkitEntity() { + return (org.bukkit.entity.Mule) super.getBukkitEntity(); + } + public static class EntityHorseMuleNPC extends Mule implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseMuleNPC(EntityType types, Level level) { @@ -135,15 +136,7 @@ public class HorseMuleController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -184,25 +177,18 @@ public class HorseMuleController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseSkeletonController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseSkeletonController.java index 8ce24e5d9..b732fceae 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseSkeletonController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseSkeletonController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftSkeletonHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -34,6 +33,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseSkeletonController extends MobEntityController { @@ -41,23 +41,24 @@ public class HorseSkeletonController extends MobEntityController { super(EntityHorseSkeletonNPC.class); } - @Override - public org.bukkit.entity.SkeletonHorse getBukkitEntity() { - return (org.bukkit.entity.SkeletonHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.SkeletonHorse getBukkitEntity() { + return (org.bukkit.entity.SkeletonHorse) super.getBukkitEntity(); + } + public static class EntityHorseSkeletonNPC extends SkeletonHorse implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseSkeletonNPC(EntityType types, Level level) { @@ -135,15 +136,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -184,25 +177,18 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseZombieController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseZombieController.java index 8076cd604..10bb9b84a 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseZombieController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HorseZombieController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftZombieHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -34,6 +33,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseZombieController extends MobEntityController { @@ -41,23 +41,24 @@ public class HorseZombieController extends MobEntityController { super(EntityHorseZombieNPC.class); } - @Override - public org.bukkit.entity.ZombieHorse getBukkitEntity() { - return (org.bukkit.entity.ZombieHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.ZombieHorse getBukkitEntity() { + return (org.bukkit.entity.ZombieHorse) super.getBukkitEntity(); + } + public static class EntityHorseZombieNPC extends ZombieHorse implements NPCHolder { private double baseMovementSpeed; boolean calledNMSHeight = false; private final CitizensNPC npc; + private boolean riding; public EntityHorseZombieNPC(EntityType types, Level level) { @@ -135,15 +136,7 @@ public class HorseZombieController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -184,25 +177,18 @@ public class HorseZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/IllusionerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/IllusionerController.java index 37c87e762..6547abec0 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/IllusionerController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/IllusionerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftIllusioner; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class IllusionerController extends MobEntityController { @@ -93,15 +94,7 @@ public class IllusionerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class IllusionerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/IronGolemController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/IronGolemController.java index 6b518bf84..da9e85198 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/IronGolemController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/IronGolemController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftIronGolem; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class IronGolemController extends MobEntityController { @@ -93,15 +94,7 @@ public class IronGolemController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class IronGolemController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/LlamaController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/LlamaController.java index 5f9f672f4..2c7c04452 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/LlamaController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/LlamaController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftLlama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -32,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class LlamaController extends MobEntityController { @@ -39,17 +39,17 @@ public class LlamaController extends MobEntityController { super(EntityLlamaNPC.class); } - @Override - public org.bukkit.entity.Llama getBukkitEntity() { - return (org.bukkit.entity.Llama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.Llama getBukkitEntity() { + return (org.bukkit.entity.Llama) super.getBukkitEntity(); + } + public static class EntityLlamaNPC extends Llama implements NPCHolder { boolean calledNMSHeight = false; @@ -114,15 +114,7 @@ public class LlamaController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -155,25 +147,18 @@ public class LlamaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MagmaCubeController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MagmaCubeController.java index 1068a8e7a..96c4a9528 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MagmaCubeController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MagmaCubeController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftMagmaCube; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_18_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -31,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MagmaCubeController extends MobEntityController { @@ -94,15 +95,7 @@ public class MagmaCubeController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,25 +128,18 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MushroomCowController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MushroomCowController.java index 975caf5b3..5a7879b31 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MushroomCowController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MushroomCowController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftMushroomCow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -32,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MushroomCowController extends MobEntityController { @@ -99,15 +100,7 @@ public class MushroomCowController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -140,25 +133,18 @@ public class MushroomCowController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/OcelotController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/OcelotController.java index 7e6708669..22b72ecf4 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/OcelotController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/OcelotController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftOcelot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class OcelotController extends MobEntityController { @@ -102,15 +103,7 @@ public class OcelotController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -143,25 +136,18 @@ public class OcelotController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PandaController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PandaController.java index 91bf33388..50b1a23da 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PandaController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PandaController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPanda; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PandaController extends MobEntityController { @@ -96,15 +97,7 @@ public class PandaController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -137,25 +130,18 @@ public class PandaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ParrotController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ParrotController.java index 3f49b3dd4..f2e684af2 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ParrotController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ParrotController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftParrot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ParrotController extends MobEntityController { @@ -86,15 +87,7 @@ public class ParrotController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -141,12 +134,13 @@ public class ParrotController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PhantomController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PhantomController.java index 7df86020a..7a9cf1d37 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PhantomController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PhantomController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPhantom; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_18_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -32,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PhantomController extends MobEntityController { @@ -50,6 +51,7 @@ public class PhantomController extends MobEntityController { private final CitizensNPC npc; private LookControl oldLookController; + private MoveControl oldMoveController; public EntityPhantomNPC(EntityType types, Level level) { @@ -120,15 +122,7 @@ public class PhantomController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -161,15 +155,7 @@ public class PhantomController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -181,12 +167,13 @@ public class PhantomController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PigController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PigController.java index ade965c6d..870318cd7 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PigController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PigController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPig; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PigController extends MobEntityController { @@ -103,15 +104,7 @@ public class PigController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -144,25 +137,18 @@ public class PigController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PigZombieController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PigZombieController.java index 77b6c1665..bf9ae82a2 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PigZombieController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PigZombieController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPigZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PigZombieController extends MobEntityController { @@ -94,15 +95,7 @@ public class PigZombieController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,25 +128,18 @@ public class PigZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PiglinBruteController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PiglinBruteController.java index 3b7379321..015adbac6 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PiglinBruteController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PiglinBruteController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPiglinBrute; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PiglinBruteController extends MobEntityController { @@ -96,15 +97,7 @@ public class PiglinBruteController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -137,25 +130,18 @@ public class PiglinBruteController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PiglinController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PiglinController.java index 0fa37a7c4..460e215d1 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PiglinController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PiglinController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPiglin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PiglinController extends MobEntityController { @@ -96,15 +97,7 @@ public class PiglinController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -137,25 +130,18 @@ public class PiglinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PillagerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PillagerController.java index c5a2b0416..45fe7e065 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PillagerController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PillagerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PillagerController extends MobEntityController { @@ -96,15 +97,7 @@ public class PillagerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -137,25 +130,18 @@ public class PillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PolarBearController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PolarBearController.java index 77edaf72d..013e87760 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PolarBearController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PolarBearController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPolarBear; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PolarBearController extends MobEntityController { @@ -80,15 +81,7 @@ public class PolarBearController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,12 +128,13 @@ public class PolarBearController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PufferFishController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PufferFishController.java index e2c084a4b..49620ea24 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PufferFishController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/PufferFishController.java @@ -6,15 +6,15 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPufferFish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_18_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.versioned.PufferFishTrait; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -38,6 +38,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PufferFishController extends MobEntityController { @@ -130,15 +131,7 @@ public class PufferFishController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -179,25 +172,18 @@ public class PufferFishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/RabbitController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/RabbitController.java index 0ac6154a1..cd11b507f 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/RabbitController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/RabbitController.java @@ -6,10 +6,9 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftRabbit; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -31,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class RabbitController extends MobEntityController { @@ -101,15 +101,7 @@ public class RabbitController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -147,25 +139,18 @@ public class RabbitController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/RavagerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/RavagerController.java index 706d5e0f3..96d18df24 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/RavagerController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/RavagerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftRavager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class RavagerController extends MobEntityController { @@ -101,15 +102,7 @@ public class RavagerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -142,25 +135,18 @@ public class RavagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SalmonController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SalmonController.java index b50846ac2..feeef2092 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SalmonController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SalmonController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftSalmon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_18_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -35,6 +35,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SalmonController extends MobEntityController { @@ -127,15 +128,7 @@ public class SalmonController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -168,25 +161,18 @@ public class SalmonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SheepController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SheepController.java index 7cfb15779..8e2020c03 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SheepController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SheepController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftSheep; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SheepController extends MobEntityController { @@ -96,15 +97,7 @@ public class SheepController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -137,25 +130,18 @@ public class SheepController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ShulkerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ShulkerController.java index 45dc689f0..21147d7a3 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ShulkerController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ShulkerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftShulker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ShulkerController extends MobEntityController { @@ -97,15 +98,7 @@ public class ShulkerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -138,25 +131,18 @@ public class ShulkerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SilverfishController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SilverfishController.java index 68e9e472c..945e84f75 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SilverfishController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SilverfishController.java @@ -7,12 +7,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftSilverfish; import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SilverfishController extends MobEntityController { @@ -132,25 +134,18 @@ public class SilverfishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonController.java index a9b99217a..79b7f6f9b 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftSkeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SkeletonController extends MobEntityController { @@ -93,15 +94,7 @@ public class SkeletonController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class SkeletonController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonStrayController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonStrayController.java index 23e40e7c2..9cafcd692 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonStrayController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonStrayController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftStray; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SkeletonStrayController extends MobEntityController { @@ -93,15 +94,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonWitherController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonWitherController.java index 8461bb24e..2abb3e652 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonWitherController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SkeletonWitherController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftWitherSkeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SkeletonWitherController extends MobEntityController { @@ -93,15 +94,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SlimeController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SlimeController.java index 5e1c082ef..8c395b6d4 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SlimeController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SlimeController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftSlime; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_18_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -31,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SlimeController extends MobEntityController { @@ -94,15 +95,7 @@ public class SlimeController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,25 +128,18 @@ public class SlimeController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SnowmanController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SnowmanController.java index aa3ee3dd2..2d1af7801 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SnowmanController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SnowmanController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftSnowman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SnowmanController extends MobEntityController { @@ -93,15 +94,7 @@ public class SnowmanController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class SnowmanController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SpiderController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SpiderController.java index 9feb2c9c7..42bf3d485 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SpiderController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SpiderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftSpider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SpiderController extends MobEntityController { @@ -93,15 +94,7 @@ public class SpiderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class SpiderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SquidController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SquidController.java index 897ee2b9b..f343e08b9 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SquidController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/SquidController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftSquid; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SquidController extends MobEntityController { @@ -93,15 +94,7 @@ public class SquidController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class SquidController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/StriderController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/StriderController.java index 7a71b257a..c543843cc 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/StriderController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/StriderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftStrider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class StriderController extends MobEntityController { @@ -93,15 +94,7 @@ public class StriderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class StriderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TraderLlamaController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TraderLlamaController.java index 76310622f..0f5a259ef 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TraderLlamaController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TraderLlamaController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftTraderLlama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -32,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TraderLlamaController extends MobEntityController { @@ -39,17 +39,17 @@ public class TraderLlamaController extends MobEntityController { super(EntityTraderLlamaNPC.class); } - @Override - public org.bukkit.entity.TraderLlama getBukkitEntity() { - return (org.bukkit.entity.TraderLlama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.TraderLlama getBukkitEntity() { + return (org.bukkit.entity.TraderLlama) super.getBukkitEntity(); + } + public static class EntityTraderLlamaNPC extends TraderLlama implements NPCHolder { boolean calledNMSHeight = false; @@ -115,15 +115,7 @@ public class TraderLlamaController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -156,25 +148,18 @@ public class TraderLlamaController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TropicalFishController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TropicalFishController.java index 04e08383c..3c010f84b 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TropicalFishController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TropicalFishController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftTropicalFish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_18_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -35,6 +35,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TropicalFishController extends MobEntityController { @@ -129,15 +130,7 @@ public class TropicalFishController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -170,25 +163,18 @@ public class TropicalFishController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TurtleController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TurtleController.java index 5f9a3c1d6..62bf201cb 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TurtleController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/TurtleController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftTurtle; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_18_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -32,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TurtleController extends MobEntityController { @@ -115,15 +116,7 @@ public class TurtleController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -156,25 +149,18 @@ public class TurtleController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/VexController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/VexController.java index 973f0c567..a4dbef8b1 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/VexController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/VexController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftVex; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class VexController extends MobEntityController { @@ -80,15 +81,7 @@ public class VexController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,12 +128,13 @@ public class VexController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/VillagerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/VillagerController.java index f29548e1e..3997adf66 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/VillagerController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/VillagerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftVillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -35,6 +35,7 @@ import net.minecraft.world.item.trading.MerchantOffers; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class VillagerController extends MobEntityController { @@ -109,15 +110,7 @@ public class VillagerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -150,15 +143,7 @@ public class VillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -172,12 +157,13 @@ public class VillagerController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/VindicatorController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/VindicatorController.java index 9d218cfc6..2fc10b191 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/VindicatorController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/VindicatorController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftVindicator; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class VindicatorController extends MobEntityController { @@ -96,15 +97,7 @@ public class VindicatorController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -137,25 +130,18 @@ public class VindicatorController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WanderingTraderController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WanderingTraderController.java index 1383fd89d..1db2bf0f9 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WanderingTraderController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WanderingTraderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftWanderingTrader; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -34,6 +34,7 @@ import net.minecraft.world.item.trading.MerchantOffers; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WanderingTraderController extends MobEntityController { @@ -48,6 +49,7 @@ public class WanderingTraderController extends MobEntityController { public static class EntityWanderingTraderNPC extends WanderingTrader implements NPCHolder { private boolean blockingATrade; + private boolean blockTrades = true; boolean calledNMSHeight = false; private final CitizensNPC npc; @@ -105,15 +107,7 @@ public class WanderingTraderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -150,15 +144,7 @@ public class WanderingTraderController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -172,12 +158,13 @@ public class WanderingTraderController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WitchController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WitchController.java index a8dff6fec..64aa72b1e 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WitchController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WitchController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftWitch; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WitchController extends MobEntityController { @@ -93,15 +94,7 @@ public class WitchController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class WitchController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WitherController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WitherController.java index c6c9c2c5f..acda02055 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WitherController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WitherController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftWither; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WitherController extends MobEntityController { @@ -81,15 +82,7 @@ public class WitherController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -127,15 +120,7 @@ public class WitherController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -146,12 +131,13 @@ public class WitherController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WolfController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WolfController.java index 250530c46..788ece178 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WolfController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/WolfController.java @@ -7,13 +7,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftWolf; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -31,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WolfController extends MobEntityController { @@ -98,15 +99,7 @@ public class WolfController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -139,25 +132,18 @@ public class WolfController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZoglinController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZoglinController.java index 7764e1d76..fa7a6bef3 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZoglinController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZoglinController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftZoglin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ZoglinController extends MobEntityController { @@ -95,15 +96,7 @@ public class ZoglinController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -136,25 +129,18 @@ public class ZoglinController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieController.java index 3c73201c1..0e6cda43a 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ZombieController extends MobEntityController { @@ -93,15 +94,7 @@ public class ZombieController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class ZombieController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieHuskController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieHuskController.java index d70082deb..c6b909ae0 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieHuskController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieHuskController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftHusk; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ZombieHuskController extends MobEntityController { @@ -93,15 +94,7 @@ public class ZombieHuskController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieVillagerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieVillagerController.java index 2781235f4..6a1e632e2 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieVillagerController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ZombieVillagerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftVillagerZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ZombieVillagerController extends MobEntityController { @@ -93,15 +94,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -134,25 +127,18 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean isLeashed() { - if (npc == null) - return super.isLeashed(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.isLeashed(); - if (super.isLeashed()) { - dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/AreaEffectCloudController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/AreaEffectCloudController.java index 8767e2188..b3d743eb4 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/AreaEffectCloudController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/AreaEffectCloudController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class AreaEffectCloudController extends MobEntityController { @@ -65,6 +67,11 @@ public class AreaEffectCloudController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ArmorStandController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ArmorStandController.java index c6eaeaec1..2dac05a97 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ArmorStandController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ArmorStandController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -26,6 +27,7 @@ import net.minecraft.world.entity.decoration.ArmorStand; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ArmorStandController extends MobEntityController { @@ -80,6 +82,11 @@ public class ArmorStandController extends MobEntityController { return event.isCancelled() ? InteractionResult.FAIL : InteractionResult.SUCCESS; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/BoatController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/BoatController.java index b40afdc62..cf38cd7d1 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/BoatController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/BoatController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -50,6 +51,7 @@ public class BoatController extends MobEntityController { private double aC; private float aD; + private Status aE; private Status aF; private double ap; @@ -94,6 +96,11 @@ public class BoatController extends MobEntityController { return Status.IN_AIR; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/DragonFireballController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/DragonFireballController.java index 892c9a512..7a8b39b99 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/DragonFireballController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/DragonFireballController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.DragonFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class DragonFireballController extends MobEntityController { @@ -65,6 +67,11 @@ public class DragonFireballController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EggController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EggController.java index c479a886c..44e3e090e 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EggController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EggController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -24,6 +25,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ThrownEgg; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EggController extends AbstractEntityController { @@ -79,6 +81,11 @@ public class EggController extends AbstractEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderCrystalController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderCrystalController.java index 4cf07d293..241d7df2c 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderCrystalController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderCrystalController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.boss.enderdragon.EndCrystal; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EnderCrystalController extends MobEntityController { @@ -65,6 +67,11 @@ public class EnderCrystalController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderPearlController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderPearlController.java index 8934817ad..9842048ca 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderPearlController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderPearlController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ThrownEnderpearl; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EnderPearlController extends MobEntityController { @@ -66,6 +68,11 @@ public class EnderPearlController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderSignalController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderSignalController.java index 13df344a3..ea7cf1c70 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderSignalController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EnderSignalController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.EyeOfEnder; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EnderSignalController extends MobEntityController { @@ -66,6 +68,11 @@ public class EnderSignalController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EvokerFangsController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EvokerFangsController.java index b6b2f07b0..31be8817f 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EvokerFangsController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/EvokerFangsController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -26,6 +27,7 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.projectile.EvokerFangs; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EvokerFangsController extends MobEntityController { @@ -74,6 +76,11 @@ public class EvokerFangsController extends MobEntityController { return event.isCancelled() ? InteractionResult.FAIL : InteractionResult.SUCCESS; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ExperienceOrbController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ExperienceOrbController.java index ef3e0c5a2..f86f205ce 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ExperienceOrbController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ExperienceOrbController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.ExperienceOrb; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ExperienceOrbController extends MobEntityController { @@ -59,6 +61,11 @@ public class ExperienceOrbController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FallingBlockController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FallingBlockController.java index 7250390ed..0e0660b5a 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FallingBlockController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FallingBlockController.java @@ -12,6 +12,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -28,6 +29,7 @@ import net.minecraft.world.entity.item.FallingBlockEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class FallingBlockController extends AbstractEntityController { @@ -76,6 +78,11 @@ public class FallingBlockController extends AbstractEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FireworkController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FireworkController.java index 4e91d0477..3ea806a6d 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FireworkController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FireworkController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.FireworkRocketEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class FireworkController extends MobEntityController { @@ -60,6 +62,11 @@ public class FireworkController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FishingHookController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FishingHookController.java index 53b48594a..f979a261b 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FishingHookController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/FishingHookController.java @@ -14,6 +14,7 @@ import com.mojang.authlib.GameProfile; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -31,6 +32,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class FishingHookController extends MobEntityController { @@ -78,6 +80,11 @@ public class FishingHookController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/GlowItemFrameController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/GlowItemFrameController.java index a263a677d..b8dd9620b 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/GlowItemFrameController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/GlowItemFrameController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.entity.nonliving.ItemFrameController.EntityItemFrameNPC; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -24,6 +25,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.decoration.GlowItemFrame; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GlowItemFrameController extends MobEntityController { @@ -70,6 +72,11 @@ public class GlowItemFrameController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ItemController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ItemController.java index 5bcd9e221..8d6577990 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ItemController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ItemController.java @@ -11,6 +11,7 @@ import org.bukkit.entity.Item; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -27,6 +28,7 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ItemController extends AbstractEntityController { @@ -72,6 +74,11 @@ public class ItemController extends AbstractEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void playerTouch(Player entityhuman) { if (npc == null) { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ItemFrameController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ItemFrameController.java index 79aa63817..75f7460f3 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ItemFrameController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ItemFrameController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.decoration.ItemFrame; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ItemFrameController extends MobEntityController { @@ -69,6 +71,11 @@ public class ItemFrameController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LargeFireballController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LargeFireballController.java index dace4fc33..b9b4d3a7a 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LargeFireballController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LargeFireballController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.LargeFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class LargeFireballController extends MobEntityController { @@ -59,6 +61,11 @@ public class LargeFireballController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LeashController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LeashController.java index 5b35b4928..d43616627 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LeashController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LeashController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.decoration.LeashFenceKnotEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class LeashController extends MobEntityController { @@ -60,6 +62,11 @@ public class LeashController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LlamaSpitController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LlamaSpitController.java index d7665d518..264ab7e0c 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LlamaSpitController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/LlamaSpitController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -25,6 +26,7 @@ import net.minecraft.world.entity.animal.horse.Llama; import net.minecraft.world.entity.projectile.LlamaSpit; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class LlamaSpitController extends AbstractEntityController { @@ -76,6 +78,11 @@ public class LlamaSpitController extends AbstractEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MarkerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MarkerController.java index fd667f3fe..1a4e682e6 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MarkerController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MarkerController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Marker; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MarkerController extends MobEntityController { @@ -59,6 +61,11 @@ public class MarkerController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartChestController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartChestController.java index 4325f1af1..f22a38b66 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartChestController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartChestController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartChest; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartChestController extends MobEntityController { @@ -60,6 +62,11 @@ public class MinecartChestController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartCommandController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartCommandController.java index 5ab45557d..d28813127 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartCommandController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartCommandController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartCommandBlock; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartCommandController extends MobEntityController { @@ -60,6 +62,11 @@ public class MinecartCommandController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartFurnaceController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartFurnaceController.java index 4217b470a..aa31b8439 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartFurnaceController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartFurnaceController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartFurnace; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartFurnaceController extends MobEntityController { @@ -60,6 +62,11 @@ public class MinecartFurnaceController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartHopperController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartHopperController.java index f9d647f21..5bca30575 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartHopperController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartHopperController.java @@ -5,6 +5,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +19,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartHopper; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartHopperController extends MobEntityController { @@ -47,6 +49,11 @@ public class MinecartHopperController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartRideableController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartRideableController.java index 0d465fcfd..0319d936f 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartRideableController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartRideableController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.Minecart; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartRideableController extends MobEntityController { @@ -59,6 +61,11 @@ public class MinecartRideableController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartSpawnerController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartSpawnerController.java index c4b3c7256..1c3bc5c1c 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartSpawnerController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartSpawnerController.java @@ -5,6 +5,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +19,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartSpawner; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartSpawnerController extends MobEntityController { @@ -47,6 +49,11 @@ public class MinecartSpawnerController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartTNTController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartTNTController.java index 352a07b77..97cce775f 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartTNTController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/MinecartTNTController.java @@ -5,6 +5,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +19,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartTNT; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartTNTController extends MobEntityController { @@ -47,6 +49,11 @@ public class MinecartTNTController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/PaintingController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/PaintingController.java index 812efadc8..3e29cc6ea 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/PaintingController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/PaintingController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.decoration.Painting; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PaintingController extends MobEntityController { @@ -59,6 +61,11 @@ public class PaintingController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ShulkerBulletController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ShulkerBulletController.java index 273242a5f..c1b6673b4 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ShulkerBulletController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ShulkerBulletController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ShulkerBullet; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ShulkerBulletController extends MobEntityController { @@ -59,6 +61,11 @@ public class ShulkerBulletController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SmallFireballController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SmallFireballController.java index b263f24dc..6408576a8 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SmallFireballController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SmallFireballController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.SmallFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SmallFireballController extends MobEntityController { @@ -59,6 +61,11 @@ public class SmallFireballController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SnowballController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SnowballController.java index fab5ab7df..7d4021cf9 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SnowballController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SnowballController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.Snowball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SnowballController extends MobEntityController { @@ -59,6 +61,11 @@ public class SnowballController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SpectralArrowController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SpectralArrowController.java index 792ac5875..948232468 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SpectralArrowController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/SpectralArrowController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.SpectralArrow; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SpectralArrowController extends MobEntityController { @@ -60,6 +62,11 @@ public class SpectralArrowController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TNTPrimedController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TNTPrimedController.java index 1446d95f1..0b89f8eae 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TNTPrimedController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TNTPrimedController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.item.PrimedTnt; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TNTPrimedController extends MobEntityController { @@ -60,6 +62,11 @@ public class TNTPrimedController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownExpBottleController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownExpBottleController.java index e61900226..a2155a4d7 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownExpBottleController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownExpBottleController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ThrownExperienceBottle; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ThrownExpBottleController extends MobEntityController { @@ -60,6 +62,11 @@ public class ThrownExpBottleController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownPotionController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownPotionController.java index 508f4a280..051401d7a 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownPotionController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownPotionController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.projectile.ThrownPotion; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ThrownPotionController extends MobEntityController { @@ -64,6 +66,11 @@ public class ThrownPotionController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownTridentController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownTridentController.java index cfdb3f619..3e45bb736 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownTridentController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/ThrownTridentController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ThrownTrident; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ThrownTridentController extends MobEntityController { @@ -60,6 +62,11 @@ public class ThrownTridentController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TippedArrowController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TippedArrowController.java index 06511ec1d..b15138b1e 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TippedArrowController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/TippedArrowController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.Arrow; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TippedArrowController extends MobEntityController { @@ -59,6 +61,11 @@ public class TippedArrowController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/WitherSkullController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/WitherSkullController.java index 88c3355d5..1b4f9d21c 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/WitherSkullController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/nonliving/WitherSkullController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_18_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_18_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.WitherSkull; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WitherSkullController extends MobEntityController { @@ -59,6 +61,11 @@ public class WitherSkullController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/NMSBoundingBox.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/NMSBoundingBox.java index 55555d541..2d867b9d6 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/NMSBoundingBox.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/NMSBoundingBox.java @@ -1,5 +1,8 @@ package net.citizensnpcs.nms.v1_18_R2.util; +import java.util.function.Supplier; + +import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.util.BoundingBox; import net.minecraft.world.phys.AABB; @@ -7,6 +10,16 @@ public class NMSBoundingBox { private NMSBoundingBox() { } + public static AABB convert(BoundingBox box) { + return new AABB(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ); + } + + public static AABB makeBB(NPC npc, AABB def) { + return npc == null || !npc.data().has(NPC.Metadata.BOUNDING_BOX_FUNCTION) ? def + : NMSBoundingBox + .convert(npc.data().> get(NPC.Metadata.BOUNDING_BOX_FUNCTION).get()); + } + public static BoundingBox wrap(AABB bb) { return new BoundingBox(bb.minX, bb.minY, bb.minZ, bb.maxX, bb.maxY, bb.maxZ); } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/NMSImpl.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/NMSImpl.java index a44fcae04..955e7e6a8 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/NMSImpl.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/NMSImpl.java @@ -1245,10 +1245,12 @@ public class NMSImpl implements NMSBridge { float oldPitch = handle.getXRot(); handle.setYBodyRot(bodyYaw); handle.setXRot(pitch); - sendPacketsNearby(null, from.getLocation(), new Packet[] { new ClientboundTeleportEntityPacket(handle), - // new ClientboundMoveEntityPacket.Rot(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), + sendPacketsNearby(null, from.getLocation(), new ClientboundTeleportEntityPacket(handle), // new + // ClientboundMoveEntityPacket.Rot(handle.getId(), + // (byte) (bodyYaw * + // 256.0F / 360.0F), // (byte) (pitch * 256.0F / 360.0F), handle.onGround), - new ClientboundRotateHeadPacket(handle, (byte) (headYaw * 256.0F / 360.0F)) }); + new ClientboundRotateHeadPacket(handle, (byte) (headYaw * 256.0F / 360.0F))); handle.setYBodyRot(oldBody); handle.setXRot(oldPitch); } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerNavigation.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerNavigation.java index 798b2d1f8..f99e58290 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerNavigation.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerNavigation.java @@ -148,7 +148,7 @@ public class PlayerNavigation extends PathNavigation { } return true; } - + private boolean canWalkOn(int var0, int var1, int var2, int var3, int var4, int var5, Vec3 var6, double var7, double var9) { int var11 = var0 - var3 / 2; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AllayController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AllayController.java index 1016932f4..9934fb608 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AllayController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AllayController.java @@ -10,13 +10,13 @@ import com.google.common.collect.Lists; import com.mojang.datafixers.util.Pair; import net.citizensnpcs.api.CitizensAPI; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -38,6 +38,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class AllayController extends MobEntityController { @@ -109,15 +110,7 @@ public class AllayController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -150,17 +143,18 @@ public class AllayController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AxolotlController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AxolotlController.java index 47a3ad6b8..3d7979b50 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AxolotlController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AxolotlController.java @@ -8,13 +8,13 @@ import org.bukkit.util.Vector; import com.mojang.serialization.Dynamic; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -39,6 +39,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class AxolotlController extends MobEntityController { @@ -59,7 +60,6 @@ public class AxolotlController extends MobEntityController { public static class EntityAxolotlNPC extends Axolotl implements NPCHolder { private final CitizensNPC npc; - private MoveControl oldMoveController; public EntityAxolotlNPC(EntityType types, Level level) { @@ -109,15 +109,7 @@ public class AxolotlController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -150,17 +142,18 @@ public class AxolotlController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BatController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BatController.java index 49a7a2eb5..1fec78d2c 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BatController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BatController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftBat; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.PositionImpl; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class BatController extends MobEntityController { @@ -90,15 +91,7 @@ public class BatController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -131,17 +124,18 @@ public class BatController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BeeController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BeeController.java index 9d186990e..56851c7ef 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BeeController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BeeController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftBee; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.PositionImpl; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class BeeController extends MobEntityController { @@ -87,15 +88,7 @@ public class BeeController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -128,17 +121,18 @@ public class BeeController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BlazeController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BlazeController.java index 3cfabb8cc..05a0a7098 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BlazeController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BlazeController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftBlaze; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.PositionImpl; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class BlazeController extends MobEntityController { @@ -82,15 +83,7 @@ public class BlazeController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -123,17 +116,18 @@ public class BlazeController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CamelController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CamelController.java index 454514f73..28b43f251 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CamelController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CamelController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftCamel; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -33,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CamelController extends MobEntityController { @@ -40,17 +40,17 @@ public class CamelController extends MobEntityController { super(EntityCamelNPC.class); } - @Override - public org.bukkit.entity.Camel getBukkitEntity() { - return (org.bukkit.entity.Camel) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.Camel getBukkitEntity() { + return (org.bukkit.entity.Camel) super.getBukkitEntity(); + } + public static class CamelNPC extends CraftCamel implements ForwardingNPCHolder { public CamelNPC(EntityCamelNPC entity) { super((CraftServer) Bukkit.getServer(), entity); @@ -120,15 +120,7 @@ public class CamelController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -161,17 +153,18 @@ public class CamelController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CatController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CatController.java index e74cc9ee5..6a9dce2d6 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CatController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CatController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftCat; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CatController extends MobEntityController { @@ -50,7 +51,6 @@ public class CatController extends MobEntityController { public static class EntityCatNPC extends Cat implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityCatNPC(EntityType types, Level level) { @@ -103,15 +103,7 @@ public class CatController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -144,17 +136,18 @@ public class CatController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CaveSpiderController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CaveSpiderController.java index f2bd993e9..27308cc36 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CaveSpiderController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CaveSpiderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftCaveSpider; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CaveSpiderController extends MobEntityController { @@ -100,15 +101,7 @@ public class CaveSpiderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -141,17 +134,18 @@ public class CaveSpiderController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ChickenController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ChickenController.java index 91b7f1d39..b90df105f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ChickenController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ChickenController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftChicken; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ChickenController extends MobEntityController { @@ -50,7 +51,6 @@ public class ChickenController extends MobEntityController { public static class EntityChickenNPC extends Chicken implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityChickenNPC(EntityType types, Level level) { @@ -111,15 +111,7 @@ public class ChickenController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -152,17 +144,18 @@ public class ChickenController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CodController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CodController.java index b9faaaec3..a25dc6f90 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CodController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CodController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftCod; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -36,6 +36,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CodController extends MobEntityController { @@ -56,7 +57,6 @@ public class CodController extends MobEntityController { public static class EntityCodNPC extends Cod implements NPCHolder { private final CitizensNPC npc; - private MoveControl oldMoveController; public EntityCodNPC(EntityType types, Level level) { @@ -136,15 +136,7 @@ public class CodController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -177,17 +169,18 @@ public class CodController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CowController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CowController.java index 867782f23..69031833d 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CowController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CowController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftCow; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -35,6 +35,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CowController extends MobEntityController { @@ -55,7 +56,6 @@ public class CowController extends MobEntityController { public static class EntityCowNPC extends Cow implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityCowNPC(EntityType types, Level level) { @@ -108,15 +108,7 @@ public class CowController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -149,17 +141,18 @@ public class CowController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CreeperController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CreeperController.java index 310162060..a95701e80 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CreeperController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CreeperController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftCreeper; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class CreeperController extends MobEntityController { @@ -50,7 +51,6 @@ public class CreeperController extends MobEntityController { public static class EntityCreeperNPC extends Creeper implements NPCHolder { private boolean allowPowered; - private final CitizensNPC npc; public EntityCreeperNPC(EntityType types, Level level) { @@ -103,15 +103,7 @@ public class CreeperController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -144,17 +136,18 @@ public class CreeperController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DolphinController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DolphinController.java index d3e944c6a..98ebda990 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DolphinController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DolphinController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftDolphin; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -31,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class DolphinController extends MobEntityController { @@ -101,15 +102,7 @@ public class DolphinController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -147,17 +140,18 @@ public class DolphinController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DrownedController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DrownedController.java index 83c443446..1b53ae9a1 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DrownedController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DrownedController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftDrowned; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class DrownedController extends MobEntityController { @@ -100,15 +101,7 @@ public class DrownedController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -141,17 +134,18 @@ public class DrownedController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EnderDragonController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EnderDragonController.java index c11190891..3d5400bac 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EnderDragonController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EnderDragonController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEnderDragon; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.PositionImpl; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EnderDragonController extends MobEntityController { @@ -98,15 +99,7 @@ public class EnderDragonController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -139,17 +132,18 @@ public class EnderDragonController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermanController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermanController.java index ceba7673f..fbb9901e3 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermanController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermanController.java @@ -9,13 +9,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -32,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EndermanController extends MobEntityController { @@ -103,15 +104,7 @@ public class EndermanController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -144,17 +137,18 @@ public class EndermanController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermiteController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermiteController.java index be29c109a..af48bd153 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermiteController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermiteController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEndermite; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EndermiteController extends MobEntityController { @@ -100,15 +101,7 @@ public class EndermiteController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -141,17 +134,18 @@ public class EndermiteController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EvokerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EvokerController.java index 904c90eab..eaf5a412e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EvokerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EvokerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEvoker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EvokerController extends MobEntityController { @@ -94,15 +95,7 @@ public class EvokerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class EvokerController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FoxController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FoxController.java index 6a03d6161..dd0c36a25 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FoxController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FoxController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftFox; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class FoxController extends MobEntityController { @@ -44,7 +45,6 @@ public class FoxController extends MobEntityController { public static class EntityFoxNPC extends Fox implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityFoxNPC(EntityType types, Level level) { @@ -97,15 +97,7 @@ public class FoxController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -138,17 +130,18 @@ public class FoxController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FrogController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FrogController.java index 70aa17649..d25458232 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FrogController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FrogController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftFrog; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class FrogController extends MobEntityController { @@ -44,7 +45,6 @@ public class FrogController extends MobEntityController { public static class EntityFrogNPC extends Frog implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityFrogNPC(EntityType types, Level level) { @@ -100,15 +100,7 @@ public class FrogController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -141,17 +133,18 @@ public class FrogController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GhastController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GhastController.java index dedf7ee0b..93e1bc942 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GhastController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GhastController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftGhast; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.PositionImpl; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GhastController extends MobEntityController { @@ -77,15 +78,7 @@ public class GhastController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -123,17 +116,18 @@ public class GhastController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GiantController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GiantController.java index 28fe8dad1..ac913bddb 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GiantController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GiantController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftGiant; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GiantController extends MobEntityController { @@ -94,15 +95,7 @@ public class GiantController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class GiantController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GlowSquidController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GlowSquidController.java index e076f55ab..860b26a17 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GlowSquidController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GlowSquidController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftGlowSquid; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GlowSquidController extends MobEntityController { @@ -94,15 +95,7 @@ public class GlowSquidController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class GlowSquidController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GoatController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GoatController.java index b4fb2e102..c3c972876 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GoatController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GoatController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftGoat; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GoatController extends MobEntityController { @@ -44,7 +45,6 @@ public class GoatController extends MobEntityController { public static class EntityGoatNPC extends Goat implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityGoatNPC(EntityType types, Level level) { @@ -97,15 +97,7 @@ public class GoatController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -138,17 +130,18 @@ public class GoatController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianController.java index 1cd2db7a5..68622ed9f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftGuardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GuardianController extends MobEntityController { @@ -100,15 +101,7 @@ public class GuardianController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -141,17 +134,18 @@ public class GuardianController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianElderController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianElderController.java index 27b2bac61..ae951a603 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianElderController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianElderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftElderGuardian; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GuardianElderController extends MobEntityController { @@ -100,15 +101,7 @@ public class GuardianElderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -141,17 +134,18 @@ public class GuardianElderController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HoglinController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HoglinController.java index b25b619e4..a91e429c2 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HoglinController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HoglinController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftHoglin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HoglinController extends MobEntityController { @@ -100,15 +101,7 @@ public class HoglinController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -141,17 +134,18 @@ public class HoglinController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseController.java index 90eb34325..301aa6124 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -35,6 +34,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseController extends MobEntityController { @@ -130,15 +130,7 @@ public class HorseController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -179,7 +171,7 @@ public class HorseController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -189,12 +181,13 @@ public class HorseController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseDonkeyController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseDonkeyController.java index 96bed2bb5..a754c542f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseDonkeyController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseDonkeyController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftDonkey; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -35,6 +34,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseDonkeyController extends MobEntityController { @@ -42,21 +42,21 @@ public class HorseDonkeyController extends MobEntityController { super(EntityHorseDonkeyNPC.class); } - @Override - public org.bukkit.entity.Donkey getBukkitEntity() { - return (org.bukkit.entity.Donkey) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.addTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.Donkey getBukkitEntity() { + return (org.bukkit.entity.Donkey) super.getBukkitEntity(); + } + public static class EntityHorseDonkeyNPC extends Donkey implements NPCHolder { private double baseMovementSpeed; - boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -130,15 +130,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -179,7 +171,7 @@ public class HorseDonkeyController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -189,12 +181,13 @@ public class HorseDonkeyController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseMuleController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseMuleController.java index e37b3229d..ba8428697 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseMuleController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseMuleController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftMule; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -35,6 +34,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseMuleController extends MobEntityController { @@ -42,21 +42,21 @@ public class HorseMuleController extends MobEntityController { super(EntityHorseMuleNPC.class); } - @Override - public org.bukkit.entity.Mule getBukkitEntity() { - return (org.bukkit.entity.Mule) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.Mule getBukkitEntity() { + return (org.bukkit.entity.Mule) super.getBukkitEntity(); + } + public static class EntityHorseMuleNPC extends Mule implements NPCHolder { private double baseMovementSpeed; - boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -130,15 +130,7 @@ public class HorseMuleController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -179,7 +171,7 @@ public class HorseMuleController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -189,12 +181,13 @@ public class HorseMuleController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseSkeletonController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseSkeletonController.java index 0e636d335..a6477db62 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseSkeletonController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseSkeletonController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSkeletonHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -35,6 +34,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseSkeletonController extends MobEntityController { @@ -42,21 +42,21 @@ public class HorseSkeletonController extends MobEntityController { super(EntityHorseSkeletonNPC.class); } - @Override - public org.bukkit.entity.SkeletonHorse getBukkitEntity() { - return (org.bukkit.entity.SkeletonHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.SkeletonHorse getBukkitEntity() { + return (org.bukkit.entity.SkeletonHorse) super.getBukkitEntity(); + } + public static class EntityHorseSkeletonNPC extends SkeletonHorse implements NPCHolder { private double baseMovementSpeed; - boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -130,15 +130,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -179,7 +171,7 @@ public class HorseSkeletonController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -189,12 +181,13 @@ public class HorseSkeletonController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseZombieController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseZombieController.java index 90c9dd8e0..4627d1aa9 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseZombieController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseZombieController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftZombieHorse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -35,6 +34,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class HorseZombieController extends MobEntityController { @@ -42,21 +42,21 @@ public class HorseZombieController extends MobEntityController { super(EntityHorseZombieNPC.class); } - @Override - public org.bukkit.entity.ZombieHorse getBukkitEntity() { - return (org.bukkit.entity.ZombieHorse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.ZombieHorse getBukkitEntity() { + return (org.bukkit.entity.ZombieHorse) super.getBukkitEntity(); + } + public static class EntityHorseZombieNPC extends ZombieHorse implements NPCHolder { private double baseMovementSpeed; - boolean calledNMSHeight = false; + private final CitizensNPC npc; private boolean riding; @@ -130,15 +130,7 @@ public class HorseZombieController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -179,7 +171,7 @@ public class HorseZombieController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -189,12 +181,13 @@ public class HorseZombieController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IllusionerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IllusionerController.java index 3d70617f2..267c5ad4a 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IllusionerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IllusionerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftIllusioner; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class IllusionerController extends MobEntityController { @@ -94,15 +95,7 @@ public class IllusionerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class IllusionerController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IronGolemController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IronGolemController.java index cb39ed528..e6973065d 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IronGolemController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IronGolemController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftIronGolem; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class IronGolemController extends MobEntityController { @@ -94,15 +95,7 @@ public class IronGolemController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class IronGolemController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/LlamaController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/LlamaController.java index 87cf617c4..421a60144 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/LlamaController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/LlamaController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftLlama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -33,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class LlamaController extends MobEntityController { @@ -40,20 +40,19 @@ public class LlamaController extends MobEntityController { super(EntityLlamaNPC.class); } - @Override - public org.bukkit.entity.Llama getBukkitEntity() { - return (org.bukkit.entity.Llama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.Llama getBukkitEntity() { + return (org.bukkit.entity.Llama) super.getBukkitEntity(); + } + public static class EntityLlamaNPC extends Llama implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityLlamaNPC(EntityType types, Level level) { @@ -115,15 +114,7 @@ public class LlamaController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -156,17 +147,18 @@ public class LlamaController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MagmaCubeController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MagmaCubeController.java index 6e38f192b..fbe571083 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MagmaCubeController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MagmaCubeController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftMagmaCube; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -32,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MagmaCubeController extends MobEntityController { @@ -46,7 +47,6 @@ public class MagmaCubeController extends MobEntityController { public static class EntityMagmaCubeNPC extends MagmaCube implements NPCHolder { private final CitizensNPC npc; - private MoveControl oldMoveController; public EntityMagmaCubeNPC(EntityType types, Level level) { @@ -95,15 +95,7 @@ public class MagmaCubeController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -136,17 +128,18 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MushroomCowController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MushroomCowController.java index 047e5f043..f1fea524a 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MushroomCowController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MushroomCowController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftMushroomCow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -33,6 +33,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MushroomCowController extends MobEntityController { @@ -47,7 +48,6 @@ public class MushroomCowController extends MobEntityController { public static class EntityMushroomCowNPC extends MushroomCow implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityMushroomCowNPC(EntityType types, Level level) { @@ -100,15 +100,7 @@ public class MushroomCowController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -141,17 +133,18 @@ public class MushroomCowController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/OcelotController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/OcelotController.java index ba0abc71d..04342fc1e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/OcelotController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/OcelotController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftOcelot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -31,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class OcelotController extends MobEntityController { @@ -45,7 +46,6 @@ public class OcelotController extends MobEntityController { public static class EntityOcelotNPC extends Ocelot implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityOcelotNPC(EntityType types, Level level) { @@ -103,15 +103,7 @@ public class OcelotController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -144,17 +136,18 @@ public class OcelotController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PandaController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PandaController.java index 673f2284f..761cbf7de 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PandaController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PandaController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPanda; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PandaController extends MobEntityController { @@ -44,7 +45,6 @@ public class PandaController extends MobEntityController { public static class EntityPandaNPC extends Panda implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityPandaNPC(EntityType types, Level level) { @@ -97,15 +97,7 @@ public class PandaController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -138,17 +130,18 @@ public class PandaController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ParrotController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ParrotController.java index 9a5d8692d..a4f7346ae 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ParrotController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ParrotController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftParrot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.PositionImpl; import net.minecraft.nbt.CompoundTag; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ParrotController extends MobEntityController { @@ -86,15 +87,7 @@ public class ParrotController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -127,17 +120,18 @@ public class ParrotController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PhantomController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PhantomController.java index 68c936077..c6e575ed9 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PhantomController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PhantomController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPhantom; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -33,6 +33,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PhantomController extends MobEntityController { @@ -119,15 +120,7 @@ public class PhantomController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -160,7 +153,7 @@ public class PhantomController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -172,12 +165,13 @@ public class PhantomController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigController.java index 7c0e3fb46..ec72436bc 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPig; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -31,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PigController extends MobEntityController { @@ -45,7 +46,6 @@ public class PigController extends MobEntityController { public static class EntityPigNPC extends Pig implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityPigNPC(EntityType types, Level level) { @@ -98,15 +98,7 @@ public class PigController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -139,7 +131,7 @@ public class PigController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -150,12 +142,13 @@ public class PigController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigZombieController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigZombieController.java index 3264b8e37..acdb951b2 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigZombieController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigZombieController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPigZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PigZombieController extends MobEntityController { @@ -95,15 +96,7 @@ public class PigZombieController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -136,17 +129,18 @@ public class PigZombieController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinBruteController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinBruteController.java index e4c41d7b6..ff2411afd 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinBruteController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinBruteController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPiglinBrute; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PiglinBruteController extends MobEntityController { @@ -97,15 +98,7 @@ public class PiglinBruteController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -138,17 +131,18 @@ public class PiglinBruteController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinController.java index ca8613239..a32046f9e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPiglin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PiglinController extends MobEntityController { @@ -97,15 +98,7 @@ public class PiglinController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -138,17 +131,18 @@ public class PiglinController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PillagerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PillagerController.java index 1f93d6e58..aefb764a1 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PillagerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PillagerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PillagerController extends MobEntityController { @@ -44,7 +45,6 @@ public class PillagerController extends MobEntityController { public static class EntityPillagerNPC extends Pillager implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityPillagerNPC(EntityType types, Level level) { @@ -97,15 +97,7 @@ public class PillagerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -138,17 +130,18 @@ public class PillagerController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PolarBearController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PolarBearController.java index 7245c6970..e1c93f2ef 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PolarBearController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PolarBearController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPolarBear; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.PositionImpl; import net.minecraft.nbt.CompoundTag; @@ -28,6 +28,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PolarBearController extends MobEntityController { @@ -42,7 +43,6 @@ public class PolarBearController extends MobEntityController { public static class EntityPolarBearNPC extends PolarBear implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityPolarBearNPC(EntityType types, Level level) { @@ -80,15 +80,7 @@ public class PolarBearController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -121,17 +113,18 @@ public class PolarBearController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PufferFishController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PufferFishController.java index e170d47c2..7c26f408b 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PufferFishController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PufferFishController.java @@ -6,15 +6,15 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPufferFish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.versioned.PufferFishTrait; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -39,6 +39,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PufferFishController extends MobEntityController { @@ -53,7 +54,6 @@ public class PufferFishController extends MobEntityController { public static class EntityPufferFishNPC extends Pufferfish implements NPCHolder { private final CitizensNPC npc; - private MoveControl oldMoveController; public EntityPufferFishNPC(EntityType types, Level level) { @@ -131,15 +131,7 @@ public class PufferFishController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -180,17 +172,18 @@ public class PufferFishController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RabbitController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RabbitController.java index 9a064cded..ba70925e4 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RabbitController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RabbitController.java @@ -6,10 +6,9 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftRabbit; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -32,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class RabbitController extends MobEntityController { @@ -46,7 +46,6 @@ public class RabbitController extends MobEntityController { public static class EntityRabbitNPC extends Rabbit implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityRabbitNPC(EntityType types, Level level) { @@ -102,15 +101,7 @@ public class RabbitController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -148,17 +139,18 @@ public class RabbitController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RavagerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RavagerController.java index f85582f77..dedf567f0 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RavagerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RavagerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftRavager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class RavagerController extends MobEntityController { @@ -44,7 +45,6 @@ public class RavagerController extends MobEntityController { public static class EntityRavagerNPC extends Ravager implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityRavagerNPC(EntityType types, Level level) { @@ -97,15 +97,7 @@ public class RavagerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -138,7 +130,7 @@ public class RavagerController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -148,12 +140,13 @@ public class RavagerController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SalmonController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SalmonController.java index 2ccd06da0..f312e8c72 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SalmonController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SalmonController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSalmon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -36,6 +36,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SalmonController extends MobEntityController { @@ -50,7 +51,6 @@ public class SalmonController extends MobEntityController { public static class EntitySalmonNPC extends Salmon implements NPCHolder { private final CitizensNPC npc; - private MoveControl oldMoveController; public EntitySalmonNPC(EntityType types, Level level) { @@ -128,15 +128,7 @@ public class SalmonController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -169,17 +161,18 @@ public class SalmonController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SheepController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SheepController.java index 397547800..71c73bf4c 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SheepController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SheepController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSheep; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SheepController extends MobEntityController { @@ -44,7 +45,6 @@ public class SheepController extends MobEntityController { public static class EntitySheepNPC extends Sheep implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntitySheepNPC(EntityType types, Level level) { @@ -97,15 +97,7 @@ public class SheepController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -138,17 +130,18 @@ public class SheepController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ShulkerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ShulkerController.java index ccc693fb5..9ff517c33 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ShulkerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ShulkerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftShulker; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ShulkerController extends MobEntityController { @@ -98,15 +99,7 @@ public class ShulkerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -139,17 +132,18 @@ public class ShulkerController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SilverfishController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SilverfishController.java index a84cb96c6..a0a06a797 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SilverfishController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SilverfishController.java @@ -7,12 +7,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSilverfish; import org.bukkit.util.Vector; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SilverfishController extends MobEntityController { @@ -133,17 +135,18 @@ public class SilverfishController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonController.java index abf00fb73..0eaa73c86 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSkeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SkeletonController extends MobEntityController { @@ -94,15 +95,7 @@ public class SkeletonController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class SkeletonController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonStrayController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonStrayController.java index 87b0c16ff..567315dae 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonStrayController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonStrayController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftStray; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SkeletonStrayController extends MobEntityController { @@ -94,15 +95,7 @@ public class SkeletonStrayController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class SkeletonStrayController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonWitherController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonWitherController.java index f1b9fc2ea..a6284b116 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonWitherController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonWitherController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftWitherSkeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SkeletonWitherController extends MobEntityController { @@ -94,15 +95,7 @@ public class SkeletonWitherController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class SkeletonWitherController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SlimeController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SlimeController.java index 4f8a6be44..a2328830d 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SlimeController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SlimeController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSlime; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -32,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SlimeController extends MobEntityController { @@ -46,7 +47,6 @@ public class SlimeController extends MobEntityController { public static class EntitySlimeNPC extends Slime implements NPCHolder { private final CitizensNPC npc; - private MoveControl oldMoveController; public EntitySlimeNPC(EntityType types, Level level) { @@ -95,15 +95,7 @@ public class SlimeController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -136,17 +128,18 @@ public class SlimeController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SnowmanController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SnowmanController.java index 2bdffa85d..5a8cc6eb7 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SnowmanController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SnowmanController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSnowman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SnowmanController extends MobEntityController { @@ -94,15 +95,7 @@ public class SnowmanController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class SnowmanController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SpiderController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SpiderController.java index f022ac03f..55786be81 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SpiderController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SpiderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSpider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SpiderController extends MobEntityController { @@ -94,15 +95,7 @@ public class SpiderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class SpiderController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SquidController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SquidController.java index cfc8806bb..763d54743 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SquidController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SquidController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSquid; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SquidController extends MobEntityController { @@ -94,15 +95,7 @@ public class SquidController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class SquidController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/StriderController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/StriderController.java index 1c371bef7..9e3a77574 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/StriderController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/StriderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftStrider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class StriderController extends MobEntityController { @@ -94,15 +95,7 @@ public class StriderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class StriderController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TadpoleController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TadpoleController.java index 9b6e43f4b..785c3aa89 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TadpoleController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TadpoleController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftTadpole; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -37,6 +37,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TadpoleController extends MobEntityController { @@ -51,7 +52,6 @@ public class TadpoleController extends MobEntityController { public static class EntityTadpoleNPC extends Tadpole implements NPCHolder { private final CitizensNPC npc; - private MoveControl oldMoveController; public EntityTadpoleNPC(EntityType types, Level level) { @@ -128,15 +128,7 @@ public class TadpoleController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -169,17 +161,18 @@ public class TadpoleController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TraderLlamaController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TraderLlamaController.java index 54afc6696..4d46a92ae 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TraderLlamaController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TraderLlamaController.java @@ -7,10 +7,9 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftTraderLlama; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -33,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TraderLlamaController extends MobEntityController { @@ -40,20 +40,19 @@ public class TraderLlamaController extends MobEntityController { super(EntityTraderLlamaNPC.class); } - @Override - public org.bukkit.entity.TraderLlama getBukkitEntity() { - return (org.bukkit.entity.TraderLlama) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public org.bukkit.entity.TraderLlama getBukkitEntity() { + return (org.bukkit.entity.TraderLlama) super.getBukkitEntity(); + } + public static class EntityTraderLlamaNPC extends TraderLlama implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityTraderLlamaNPC(EntityType types, Level level) { @@ -116,15 +115,7 @@ public class TraderLlamaController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -157,17 +148,18 @@ public class TraderLlamaController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TropicalFishController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TropicalFishController.java index d38b5f827..d531ab69f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TropicalFishController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TropicalFishController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftTropicalFish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -36,6 +36,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TropicalFishController extends MobEntityController { @@ -50,7 +51,6 @@ public class TropicalFishController extends MobEntityController { public static class EntityTropicalFishNPC extends TropicalFish implements NPCHolder { private final CitizensNPC npc; - private MoveControl oldMoveController; public EntityTropicalFishNPC(EntityType types, Level level) { @@ -130,15 +130,7 @@ public class TropicalFishController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -171,17 +163,18 @@ public class TropicalFishController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TurtleController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TurtleController.java index a603e0f1e..985157947 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TurtleController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TurtleController.java @@ -6,14 +6,14 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftTurtle; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -33,6 +33,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TurtleController extends MobEntityController { @@ -47,8 +48,8 @@ public class TurtleController extends MobEntityController { public static class EntityTurtleNPC extends Turtle implements NPCHolder { private final CitizensNPC npc; - private JumpControl oldJumpController; + private MoveControl oldMoveController; public EntityTurtleNPC(EntityType types, Level level) { @@ -115,15 +116,7 @@ public class TurtleController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -156,17 +149,18 @@ public class TurtleController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VexController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VexController.java index 2b9aaca59..d57d219fa 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VexController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VexController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftVex; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.PositionImpl; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class VexController extends MobEntityController { @@ -80,15 +81,7 @@ public class VexController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -121,17 +114,18 @@ public class VexController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VillagerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VillagerController.java index e15deab92..f41cac98f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VillagerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VillagerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftVillager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -36,6 +36,7 @@ import net.minecraft.world.item.trading.MerchantOffers; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class VillagerController extends MobEntityController { @@ -50,8 +51,8 @@ public class VillagerController extends MobEntityController { public static class EntityVillagerNPC extends Villager implements NPCHolder { private boolean blockingATrade; - boolean calledNMSHeight = false; + private final CitizensNPC npc; public EntityVillagerNPC(EntityType types, Level level) { @@ -109,15 +110,7 @@ public class VillagerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -150,7 +143,7 @@ public class VillagerController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -164,12 +157,13 @@ public class VillagerController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VindicatorController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VindicatorController.java index b7bea27eb..ff4232d1c 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VindicatorController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VindicatorController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftVindicator; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -30,6 +30,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class VindicatorController extends MobEntityController { @@ -44,7 +45,6 @@ public class VindicatorController extends MobEntityController { public static class EntityVindicatorNPC extends Vindicator implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityVindicatorNPC(EntityType types, Level level) { @@ -97,15 +97,7 @@ public class VindicatorController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -138,17 +130,18 @@ public class VindicatorController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WanderingTraderController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WanderingTraderController.java index 07143e771..412ca602f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WanderingTraderController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WanderingTraderController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftWanderingTrader; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -35,6 +35,7 @@ import net.minecraft.world.item.trading.MerchantOffers; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WanderingTraderController extends MobEntityController { @@ -106,15 +107,7 @@ public class WanderingTraderController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -151,7 +144,7 @@ public class WanderingTraderController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -165,12 +158,13 @@ public class WanderingTraderController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WardenController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WardenController.java index d8c65232d..8716b38ef 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WardenController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WardenController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftWarden; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -31,6 +31,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WardenController extends MobEntityController { @@ -104,15 +105,7 @@ public class WardenController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -145,17 +138,18 @@ public class WardenController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitchController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitchController.java index 66357fa29..dcb11bf48 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitchController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitchController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftWitch; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WitchController extends MobEntityController { @@ -94,15 +95,7 @@ public class WitchController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class WitchController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitherController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitherController.java index cac314260..8e6c3fbf6 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitherController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitherController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftWither; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.PositionImpl; import net.minecraft.nbt.CompoundTag; @@ -27,6 +27,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WitherController extends MobEntityController { @@ -81,15 +82,7 @@ public class WitherController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -127,7 +120,7 @@ public class WitherController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override @@ -138,12 +131,13 @@ public class WitherController extends MobEntityController { @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WolfController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WolfController.java index 0180d50c3..e9150ddfd 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WolfController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WolfController.java @@ -7,13 +7,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftWolf; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -32,6 +32,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WolfController extends MobEntityController { @@ -46,7 +47,6 @@ public class WolfController extends MobEntityController { public static class EntityWolfNPC extends Wolf implements NPCHolder { boolean calledNMSHeight = false; - private final CitizensNPC npc; public EntityWolfNPC(EntityType types, Level level) { @@ -99,15 +99,7 @@ public class WolfController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -140,17 +132,18 @@ public class WolfController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZoglinController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZoglinController.java index 78063101c..b29af5aeb 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZoglinController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZoglinController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftZoglin; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ZoglinController extends MobEntityController { @@ -96,15 +97,7 @@ public class ZoglinController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -137,17 +130,18 @@ public class ZoglinController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieController.java index 03b49e973..27663c806 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ZombieController extends MobEntityController { @@ -94,15 +95,7 @@ public class ZombieController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class ZombieController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieHuskController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieHuskController.java index 2492c29e3..13a723074 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieHuskController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieHuskController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftHusk; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ZombieHuskController extends MobEntityController { @@ -94,15 +95,7 @@ public class ZombieHuskController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class ZombieHuskController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieVillagerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieVillagerController.java index 56b214a9a..6240b5363 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieVillagerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieVillagerController.java @@ -6,13 +6,13 @@ import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftVillagerZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.PositionImpl; @@ -29,6 +29,7 @@ import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ZombieVillagerController extends MobEntityController { @@ -94,15 +95,7 @@ public class ZombieVillagerController extends MobEntityController { @Override public void dismountTo(double d0, double d1, double d2) { - if (npc == null) { - super.dismountTo(d0, d1, d2); - return; - } - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.dismountTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.dismountTo(d0, d1, d2)); } @Override @@ -135,17 +128,18 @@ public class ZombieVillagerController extends MobEntityController { @Override public boolean isLeashed() { - return NMSImpl.isLeashed(this, super.isLeashed()); + return NMS.isLeashed(npc, super::isLeashed, () -> dropLeash(true, false)); } @Override public void knockback(double strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.knockback(event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); } @Override diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/AreaEffectCloudController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/AreaEffectCloudController.java index a4919f69f..9b5f0ed5d 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/AreaEffectCloudController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/AreaEffectCloudController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class AreaEffectCloudController extends MobEntityController { @@ -65,6 +67,11 @@ public class AreaEffectCloudController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ArmorStandController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ArmorStandController.java index 4161b6aa2..e6f173cc8 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ArmorStandController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ArmorStandController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -26,6 +27,7 @@ import net.minecraft.world.entity.decoration.ArmorStand; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ArmorStandController extends MobEntityController { @@ -80,6 +82,11 @@ public class ArmorStandController extends MobEntityController { return event.isCancelled() ? InteractionResult.FAIL : InteractionResult.SUCCESS; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/BoatController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/BoatController.java index 76d522606..bd4558f68 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/BoatController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/BoatController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -94,6 +95,11 @@ public class BoatController extends MobEntityController { return Status.IN_AIR; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ChestBoatController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ChestBoatController.java index 36da011c8..b4a86334d 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ChestBoatController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ChestBoatController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -95,6 +96,11 @@ public class ChestBoatController extends MobEntityController { return Status.IN_AIR; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/DragonFireballController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/DragonFireballController.java index a365ffb11..f6494a9ea 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/DragonFireballController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/DragonFireballController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.DragonFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class DragonFireballController extends MobEntityController { @@ -65,6 +67,11 @@ public class DragonFireballController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EggController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EggController.java index 9e2c561d2..16707dd0b 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EggController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EggController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -24,6 +25,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ThrownEgg; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EggController extends AbstractEntityController { @@ -79,6 +81,11 @@ public class EggController extends AbstractEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderCrystalController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderCrystalController.java index 5b31f2aed..d88a333d6 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderCrystalController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderCrystalController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.boss.enderdragon.EndCrystal; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EnderCrystalController extends MobEntityController { @@ -65,6 +67,11 @@ public class EnderCrystalController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderPearlController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderPearlController.java index 386075696..6223a8f5b 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderPearlController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderPearlController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ThrownEnderpearl; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EnderPearlController extends MobEntityController { @@ -66,6 +68,11 @@ public class EnderPearlController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderSignalController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderSignalController.java index b5f0d86f2..70dd59c47 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderSignalController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderSignalController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.EyeOfEnder; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EnderSignalController extends MobEntityController { @@ -66,6 +68,11 @@ public class EnderSignalController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EvokerFangsController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EvokerFangsController.java index a3aa26972..5af485c1c 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EvokerFangsController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EvokerFangsController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -26,6 +27,7 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.projectile.EvokerFangs; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class EvokerFangsController extends MobEntityController { @@ -74,6 +76,11 @@ public class EvokerFangsController extends MobEntityController { return event.isCancelled() ? InteractionResult.FAIL : InteractionResult.SUCCESS; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ExperienceOrbController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ExperienceOrbController.java index b57cd91bf..bd0d63d5c 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ExperienceOrbController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ExperienceOrbController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.ExperienceOrb; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ExperienceOrbController extends MobEntityController { @@ -59,6 +61,11 @@ public class ExperienceOrbController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FallingBlockController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FallingBlockController.java index f5d39aa67..d86ce0a16 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FallingBlockController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FallingBlockController.java @@ -11,6 +11,7 @@ import org.bukkit.entity.FallingBlock; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -27,6 +28,7 @@ import net.minecraft.world.entity.item.FallingBlockEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class FallingBlockController extends AbstractEntityController { @@ -75,6 +77,11 @@ public class FallingBlockController extends AbstractEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FireworkController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FireworkController.java index eac4c77fd..861b94522 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FireworkController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FireworkController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.FireworkRocketEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class FireworkController extends MobEntityController { @@ -60,6 +62,11 @@ public class FireworkController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FishingHookController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FishingHookController.java index 9195bef66..c2ae97ab0 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FishingHookController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FishingHookController.java @@ -14,6 +14,7 @@ import com.mojang.authlib.GameProfile; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -31,6 +32,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class FishingHookController extends MobEntityController { @@ -78,6 +80,11 @@ public class FishingHookController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/GlowItemFrameController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/GlowItemFrameController.java index d467f684e..1cfaee3e4 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/GlowItemFrameController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/GlowItemFrameController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.ItemFrameController.EntityItemFrameNPC; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -25,6 +26,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.decoration.GlowItemFrame; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class GlowItemFrameController extends MobEntityController { @@ -71,6 +73,11 @@ public class GlowItemFrameController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ItemController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ItemController.java index 21e1fa14d..3be6fe0e5 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ItemController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ItemController.java @@ -11,6 +11,7 @@ import org.bukkit.entity.Item; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -27,6 +28,7 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ItemController extends AbstractEntityController { @@ -72,6 +74,11 @@ public class ItemController extends AbstractEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void playerTouch(Player entityhuman) { if (npc == null) { diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ItemFrameController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ItemFrameController.java index fc1e4cde0..ba9df8622 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ItemFrameController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ItemFrameController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -24,6 +25,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.decoration.ItemFrame; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ItemFrameController extends MobEntityController { @@ -70,6 +72,11 @@ public class ItemFrameController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LargeFireballController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LargeFireballController.java index ba068d712..6abce5cd1 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LargeFireballController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LargeFireballController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.LargeFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class LargeFireballController extends MobEntityController { @@ -59,6 +61,11 @@ public class LargeFireballController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LeashController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LeashController.java index 076902682..e544ec45d 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LeashController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LeashController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.decoration.LeashFenceKnotEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class LeashController extends MobEntityController { @@ -60,6 +62,11 @@ public class LeashController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LlamaSpitController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LlamaSpitController.java index 12277ba80..b058c51f4 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LlamaSpitController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LlamaSpitController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -25,6 +26,7 @@ import net.minecraft.world.entity.animal.horse.Llama; import net.minecraft.world.entity.projectile.LlamaSpit; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class LlamaSpitController extends AbstractEntityController { @@ -76,6 +78,11 @@ public class LlamaSpitController extends AbstractEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MarkerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MarkerController.java index c5165e817..d56863249 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MarkerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MarkerController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Marker; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MarkerController extends MobEntityController { @@ -59,6 +61,11 @@ public class MarkerController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartChestController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartChestController.java index 18acbc97d..ff96c75e9 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartChestController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartChestController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartChest; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartChestController extends MobEntityController { @@ -60,6 +62,11 @@ public class MinecartChestController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartCommandController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartCommandController.java index 223399f3d..b01a2cd68 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartCommandController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartCommandController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartCommandBlock; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartCommandController extends MobEntityController { @@ -60,6 +62,11 @@ public class MinecartCommandController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartFurnaceController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartFurnaceController.java index 387111d07..63a776a69 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartFurnaceController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartFurnaceController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartFurnace; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartFurnaceController extends MobEntityController { @@ -60,6 +62,11 @@ public class MinecartFurnaceController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartHopperController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartHopperController.java index 79ddf7061..9d1eb058a 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartHopperController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartHopperController.java @@ -5,6 +5,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +19,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartHopper; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartHopperController extends MobEntityController { @@ -47,6 +49,11 @@ public class MinecartHopperController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartRideableController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartRideableController.java index d2ce0451e..dd0974591 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartRideableController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartRideableController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.Minecart; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartRideableController extends MobEntityController { @@ -59,6 +61,11 @@ public class MinecartRideableController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartSpawnerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartSpawnerController.java index 8957f32f0..6f53cca67 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartSpawnerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartSpawnerController.java @@ -5,6 +5,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +19,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartSpawner; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartSpawnerController extends MobEntityController { @@ -47,6 +49,11 @@ public class MinecartSpawnerController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartTNTController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartTNTController.java index cf9c2022b..debe1b070 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartTNTController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartTNTController.java @@ -5,6 +5,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -18,6 +19,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.vehicle.MinecartTNT; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class MinecartTNTController extends MobEntityController { @@ -47,6 +49,11 @@ public class MinecartTNTController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/PaintingController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/PaintingController.java index f6c252deb..a28a3d1ea 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/PaintingController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/PaintingController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.decoration.Painting; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class PaintingController extends MobEntityController { @@ -59,6 +61,11 @@ public class PaintingController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ShulkerBulletController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ShulkerBulletController.java index 92cbb9d3d..a69084b5a 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ShulkerBulletController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ShulkerBulletController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ShulkerBullet; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ShulkerBulletController extends MobEntityController { @@ -59,6 +61,11 @@ public class ShulkerBulletController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SmallFireballController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SmallFireballController.java index fffe1eccc..f6ba156a9 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SmallFireballController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SmallFireballController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.SmallFireball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SmallFireballController extends MobEntityController { @@ -59,6 +61,11 @@ public class SmallFireballController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SnowballController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SnowballController.java index ca37ba003..f7b7bc14d 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SnowballController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SnowballController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.Snowball; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SnowballController extends MobEntityController { @@ -59,6 +61,11 @@ public class SnowballController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SpectralArrowController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SpectralArrowController.java index e208ef01a..e17a786b8 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SpectralArrowController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SpectralArrowController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.SpectralArrow; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class SpectralArrowController extends MobEntityController { @@ -60,6 +62,11 @@ public class SpectralArrowController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/TNTPrimedController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/TNTPrimedController.java index 95e3a9ee4..7f37fd525 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/TNTPrimedController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/TNTPrimedController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.item.PrimedTnt; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TNTPrimedController extends MobEntityController { @@ -60,6 +62,11 @@ public class TNTPrimedController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownExpBottleController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownExpBottleController.java index e49b61b5d..f7cb3de41 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownExpBottleController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownExpBottleController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ThrownExperienceBottle; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ThrownExpBottleController extends MobEntityController { @@ -60,6 +62,11 @@ public class ThrownExpBottleController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownPotionController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownPotionController.java index 355261230..6b2b15258 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownPotionController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownPotionController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.projectile.ThrownPotion; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ThrownPotionController extends MobEntityController { @@ -64,6 +66,11 @@ public class ThrownPotionController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownTridentController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownTridentController.java index c637101ac..06d07589e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownTridentController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownTridentController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -23,6 +24,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.ThrownTrident; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class ThrownTridentController extends MobEntityController { @@ -60,6 +62,11 @@ public class ThrownTridentController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/TippedArrowController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/TippedArrowController.java index 187c8022a..529638786 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/TippedArrowController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/TippedArrowController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.Arrow; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class TippedArrowController extends MobEntityController { @@ -59,6 +61,11 @@ public class TippedArrowController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/WitherSkullController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/WitherSkullController.java index 7b64610ea..374a98b51 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/WitherSkullController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/WitherSkullController.java @@ -9,6 +9,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.projectile.WitherSkull; import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; public class WitherSkullController extends MobEntityController { @@ -59,6 +61,11 @@ public class WitherSkullController extends MobEntityController { return npc; } + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + @Override public void push(double x, double y, double z) { Vector vector = Util.callPushEvent(npc, x, y, z); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSBoundingBox.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSBoundingBox.java index aea21496e..a33602558 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSBoundingBox.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSBoundingBox.java @@ -1,5 +1,8 @@ package net.citizensnpcs.nms.v1_19_R2.util; +import java.util.function.Supplier; + +import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.util.BoundingBox; import net.minecraft.world.phys.AABB; @@ -11,6 +14,12 @@ public class NMSBoundingBox { return new AABB(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ); } + public static AABB makeBB(NPC npc, AABB def) { + return npc == null || !npc.data().has(NPC.Metadata.BOUNDING_BOX_FUNCTION) ? def + : NMSBoundingBox + .convert(npc.data().> get(NPC.Metadata.BOUNDING_BOX_FUNCTION).get()); + } + public static BoundingBox wrap(AABB bb) { return new BoundingBox(bb.minX, bb.minY, bb.minZ, bb.maxX, bb.maxY, bb.maxZ); } diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSImpl.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSImpl.java index 74032c367..eac818547 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSImpl.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSImpl.java @@ -1331,10 +1331,12 @@ public class NMSImpl implements NMSBridge { float oldPitch = handle.getXRot(); handle.setYBodyRot(bodyYaw); handle.setXRot(pitch); - sendPacketsNearby(null, from.getLocation(), new Packet[] { new ClientboundTeleportEntityPacket(handle), - // new ClientboundMoveEntityPacket.Rot(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), + sendPacketsNearby(null, from.getLocation(), new ClientboundTeleportEntityPacket(handle), // new + // ClientboundMoveEntityPacket.Rot(handle.getId(), + // (byte) (bodyYaw * + // 256.0F / 360.0F), // (byte) (pitch * 256.0F / 360.0F), handle.onGround), - new ClientboundRotateHeadPacket(handle, (byte) (headYaw * 256.0F / 360.0F)) }); + new ClientboundRotateHeadPacket(handle, (byte) (headYaw * 256.0F / 360.0F))); handle.setYBodyRot(oldBody); handle.setXRot(oldPitch); } @@ -2206,19 +2208,6 @@ public class NMSImpl implements NMSBridge { network.address = socketAddress; } - public static boolean isLeashed(Mob entity, boolean superLeashed) { - NPC npc = ((NPCHolder) entity).getNPC(); - if (npc == null) - return superLeashed; - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return superLeashed; - if (superLeashed) { - entity.dropLeash(true, false); // clearLeash with client update - } - return false; // shouldLeash - } - @SuppressWarnings("deprecation") public static void minecartItemLogic(AbstractMinecart minecart) { NPC npc = ((NPCHolder) minecart).getNPC(); diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/BatController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/BatController.java index b4b3985af..168a1a7be 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/BatController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/BatController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Bat; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityBat; import net.minecraft.server.v1_8_R3.NBTTagCompound; @@ -58,14 +59,15 @@ public class BatController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -126,13 +128,7 @@ public class BatController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/BlazeController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/BlazeController.java index 8ffa47510..015df29a8 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/BlazeController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/BlazeController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Blaze; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityBlaze; import net.minecraft.server.v1_8_R3.NBTTagCompound; @@ -55,14 +56,15 @@ public class BlazeController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -77,15 +79,7 @@ public class BlazeController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -119,13 +113,7 @@ public class BlazeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/CaveSpiderController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/CaveSpiderController.java index 47088bf26..1c43cb1b8 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/CaveSpiderController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/CaveSpiderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.CaveSpider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -57,6 +58,11 @@ public class CaveSpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -66,12 +72,8 @@ public class CaveSpiderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -138,13 +140,7 @@ public class CaveSpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/ChickenController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/ChickenController.java index 07a715033..a268ea323 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/ChickenController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/ChickenController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Chicken; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -57,6 +58,11 @@ public class ChickenController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -77,12 +83,8 @@ public class ChickenController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -97,15 +99,7 @@ public class ChickenController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -147,13 +141,7 @@ public class ChickenController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/CowController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/CowController.java index 3300f9fc7..363d4e124 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/CowController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/CowController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Cow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -60,6 +61,11 @@ public class CowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -80,12 +86,8 @@ public class CowController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -112,15 +114,7 @@ public class CowController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -162,13 +156,7 @@ public class CowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/CreeperController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/CreeperController.java index 372408b07..d5a81f1ce 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/CreeperController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/CreeperController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Creeper; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -61,6 +62,11 @@ public class CreeperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -70,12 +76,8 @@ public class CreeperController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -95,15 +97,7 @@ public class CreeperController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -145,13 +139,7 @@ public class CreeperController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EnderDragonController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EnderDragonController.java index 50ebf1d2e..8a7325499 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EnderDragonController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EnderDragonController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.EnderDragon; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityEnderDragon; import net.minecraft.server.v1_8_R3.NBTTagCompound; @@ -55,14 +56,15 @@ public class EnderDragonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -77,15 +79,7 @@ public class EnderDragonController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -111,13 +105,7 @@ public class EnderDragonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EndermanController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EndermanController.java index 91f434097..5e7d2232d 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EndermanController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EndermanController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Enderman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -57,6 +58,11 @@ public class EndermanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -66,12 +72,8 @@ public class EndermanController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -86,15 +88,7 @@ public class EndermanController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -135,13 +129,7 @@ public class EndermanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EndermiteController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EndermiteController.java index 392e5d074..abb0268c0 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EndermiteController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EndermiteController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Endermite; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -57,6 +58,11 @@ public class EndermiteController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -66,12 +72,8 @@ public class EndermiteController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -86,15 +88,7 @@ public class EndermiteController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -134,13 +128,7 @@ public class EndermiteController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/GhastController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/GhastController.java index 1e5d1ae19..014e57ce8 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/GhastController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/GhastController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftGhast; import org.bukkit.entity.Ghast; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityGhast; import net.minecraft.server.v1_8_R3.NBTTagCompound; @@ -41,14 +42,15 @@ public class GhastController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -68,15 +70,7 @@ public class GhastController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -111,13 +105,7 @@ public class GhastController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/GiantController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/GiantController.java index e1def6522..61687f681 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/GiantController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/GiantController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftGiant; import org.bukkit.entity.Giant; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -43,6 +44,11 @@ public class GiantController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -52,12 +58,8 @@ public class GiantController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -72,15 +74,7 @@ public class GiantController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -121,13 +115,7 @@ public class GiantController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/GuardianController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/GuardianController.java index 5f199bce6..1db7148e4 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/GuardianController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/GuardianController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftGuardian; import org.bukkit.entity.Guardian; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -43,6 +44,11 @@ public class GuardianController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -52,12 +58,8 @@ public class GuardianController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -72,15 +74,7 @@ public class GuardianController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -114,13 +108,7 @@ public class GuardianController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/HorseController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/HorseController.java index ccbe00dac..fc457ba74 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/HorseController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/HorseController.java @@ -8,15 +8,15 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftHorse; import org.bukkit.entity.Horse; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -29,17 +29,17 @@ public class HorseController extends MobEntityController { super(EntityHorseNPC.class); } - @Override - public Horse getBukkitEntity() { - return (Horse) super.getBukkitEntity(); - } - @Override public void create(Location at, NPC npc) { npc.getOrAddTrait(HorseModifiers.class); super.create(at, npc); } + @Override + public Horse getBukkitEntity() { + return (Horse) super.getBukkitEntity(); + } + public static class EntityHorseNPC extends EntityHorse implements NPCHolder { private final CitizensNPC npc; @@ -55,6 +55,11 @@ public class HorseController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -75,12 +80,8 @@ public class HorseController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -95,15 +96,7 @@ public class HorseController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -155,13 +148,7 @@ public class HorseController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/IronGolemController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/IronGolemController.java index 6995b327b..e7d85b220 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/IronGolemController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/IronGolemController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftIronGolem; import org.bukkit.entity.IronGolem; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -43,6 +44,11 @@ public class IronGolemController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -52,12 +58,8 @@ public class IronGolemController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -72,15 +74,7 @@ public class IronGolemController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -121,13 +115,7 @@ public class IronGolemController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MagmaCubeController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MagmaCubeController.java index 6fc62302d..ec25e374b 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MagmaCubeController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MagmaCubeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftMagmaCube; import org.bukkit.entity.MagmaCube; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.nms.v1_8_R3.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -49,6 +50,11 @@ public class MagmaCubeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class MagmaCubeController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -78,15 +80,7 @@ public class MagmaCubeController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -126,13 +120,7 @@ public class MagmaCubeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MushroomCowController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MushroomCowController.java index 4ca01d153..ca775ccc4 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MushroomCowController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MushroomCowController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftMushroomCow; import org.bukkit.entity.MushroomCow; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -45,6 +46,11 @@ public class MushroomCowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -65,12 +71,8 @@ public class MushroomCowController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -92,15 +94,7 @@ public class MushroomCowController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -140,13 +134,7 @@ public class MushroomCowController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/OcelotController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/OcelotController.java index 16ace92f6..122a10abd 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/OcelotController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/OcelotController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftOcelot; import org.bukkit.entity.Ocelot; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -43,6 +44,11 @@ public class OcelotController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -63,12 +69,8 @@ public class OcelotController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -83,15 +85,7 @@ public class OcelotController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -138,13 +132,7 @@ public class OcelotController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/PigController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/PigController.java index ab6f54a07..1e27db5c9 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/PigController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/PigController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPig; import org.bukkit.entity.Pig; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -44,6 +45,11 @@ public class PigController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -64,12 +70,8 @@ public class PigController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -92,15 +94,7 @@ public class PigController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -142,13 +136,7 @@ public class PigController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/PigZombieController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/PigZombieController.java index 3b58c429c..c882e2db2 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/PigZombieController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/PigZombieController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPigZombie; import org.bukkit.entity.PigZombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -44,6 +45,11 @@ public class PigZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -53,12 +59,8 @@ public class PigZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -73,15 +75,7 @@ public class PigZombieController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -121,13 +115,7 @@ public class PigZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/RabbitController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/RabbitController.java index 60db72259..db7173a5b 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/RabbitController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/RabbitController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftRabbit; import org.bukkit.entity.Rabbit; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -44,6 +45,11 @@ public class RabbitController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -64,12 +70,8 @@ public class RabbitController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -84,15 +86,7 @@ public class RabbitController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -137,13 +131,7 @@ public class RabbitController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SheepController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SheepController.java index dc905e364..099f717d8 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SheepController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SheepController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSheep; import org.bukkit.entity.Sheep; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -43,6 +44,11 @@ public class SheepController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -63,12 +69,8 @@ public class SheepController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -83,15 +85,7 @@ public class SheepController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -131,13 +125,7 @@ public class SheepController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SilverfishController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SilverfishController.java index c42e24e06..bd509e69d 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SilverfishController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SilverfishController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSilverfish; import org.bukkit.entity.Silverfish; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -43,6 +44,11 @@ public class SilverfishController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -52,12 +58,8 @@ public class SilverfishController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -72,15 +74,7 @@ public class SilverfishController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -120,13 +114,7 @@ public class SilverfishController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SkeletonController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SkeletonController.java index 64b3d2751..874e56818 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SkeletonController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SkeletonController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSkeleton; import org.bukkit.entity.Skeleton; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -43,6 +44,11 @@ public class SkeletonController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -52,12 +58,8 @@ public class SkeletonController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -72,15 +74,7 @@ public class SkeletonController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -121,13 +115,7 @@ public class SkeletonController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SlimeController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SlimeController.java index 93b1bdf46..d0f03e584 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SlimeController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SlimeController.java @@ -7,14 +7,15 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSlime; import org.bukkit.entity.Slime; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.nms.v1_8_R3.util.PlayerControllerMove; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -49,6 +50,11 @@ public class SlimeController extends MobEntityController { } } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -58,12 +64,8 @@ public class SlimeController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -78,15 +80,7 @@ public class SlimeController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -127,13 +121,7 @@ public class SlimeController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SnowmanController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SnowmanController.java index 77ebd4405..86e6e3885 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SnowmanController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SnowmanController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSnowman; import org.bukkit.entity.Snowman; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -43,6 +44,11 @@ public class SnowmanController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -52,12 +58,8 @@ public class SnowmanController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -72,15 +74,7 @@ public class SnowmanController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -121,13 +115,7 @@ public class SnowmanController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SpiderController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SpiderController.java index 8c789e288..a4cccc1d0 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SpiderController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SpiderController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSpider; import org.bukkit.entity.Spider; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -43,6 +44,11 @@ public class SpiderController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -52,12 +58,8 @@ public class SpiderController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -72,15 +74,7 @@ public class SpiderController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -120,13 +114,7 @@ public class SpiderController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SquidController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SquidController.java index 715f4671a..5ca4bba3f 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SquidController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/SquidController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSquid; import org.bukkit.entity.Squid; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -43,6 +44,11 @@ public class SquidController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -52,12 +58,8 @@ public class SquidController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -72,15 +74,7 @@ public class SquidController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -113,13 +107,7 @@ public class SquidController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/VillagerController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/VillagerController.java index 606f45799..17600e2a9 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/VillagerController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/VillagerController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftVillager; import org.bukkit.entity.Villager; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -47,6 +48,11 @@ public class VillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -67,12 +73,8 @@ public class VillagerController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -95,15 +97,7 @@ public class VillagerController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -154,13 +148,7 @@ public class VillagerController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/WitchController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/WitchController.java index 42bbbd7c2..9c54b4acc 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/WitchController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/WitchController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftWitch; import org.bukkit.entity.Witch; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -43,6 +44,11 @@ public class WitchController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -52,12 +58,8 @@ public class WitchController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -72,15 +74,7 @@ public class WitchController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -120,13 +114,7 @@ public class WitchController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/WitherController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/WitherController.java index 811002e78..6a9eb8c47 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/WitherController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/WitherController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftWither; import org.bukkit.entity.Wither; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Entity; import net.minecraft.server.v1_8_R3.EntityWither; import net.minecraft.server.v1_8_R3.NBTTagCompound; @@ -41,14 +42,15 @@ public class WitherController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -63,15 +65,7 @@ public class WitherController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -112,13 +106,7 @@ public class WitherController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/WolfController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/WolfController.java index d53ae2c49..f0545ef60 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/WolfController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/WolfController.java @@ -8,13 +8,14 @@ import org.bukkit.entity.Wolf; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -45,6 +46,11 @@ public class WolfController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void a(boolean flag) { float oldw = width; @@ -65,12 +71,8 @@ public class WolfController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -85,15 +87,7 @@ public class WolfController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -135,13 +129,7 @@ public class WolfController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/ZombieController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/ZombieController.java index af35eb846..f597f0c67 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/ZombieController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/ZombieController.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftZombie; import org.bukkit.entity.Zombie; import org.bukkit.util.Vector; -import net.citizensnpcs.api.event.NPCEnderTeleportEvent; -import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; @@ -43,6 +44,11 @@ public class ZombieController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override protected void a(double d0, boolean flag, Block block, BlockPosition blockposition) { if (npc == null || !npc.isFlyable()) { @@ -52,12 +58,8 @@ public class ZombieController extends MobEntityController { @Override public void a(Entity entity, float strength, double dx, double dz) { - NPCKnockbackEvent event = new NPCKnockbackEvent(npc, strength, dx, dz); - Bukkit.getPluginManager().callEvent(event); - Vector kb = event.getKnockbackVector(); - if (!event.isCancelled()) { - super.a(entity, (float) event.getStrength(), kb.getX(), kb.getZ()); - } + NMS.callKnockbackEvent(npc, strength, dx, dz, (evt) -> super.a(entity, (float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } @Override @@ -72,15 +74,7 @@ public class ZombieController extends MobEntityController { @Override public boolean cc() { - if (npc == null) - return super.cc(); - boolean protectedDefault = npc.isProtected(); - if (!protectedDefault || !npc.data().get(NPC.Metadata.LEASH_PROTECTED, protectedDefault)) - return super.cc(); - if (super.cc()) { - unleash(true, false); // clearLeash with client update - } - return false; // shouldLeash + return NMS.isLeashed(npc, super::cc, () -> unleash(true, false)); } @Override @@ -121,13 +115,7 @@ public class ZombieController extends MobEntityController { @Override public void enderTeleportTo(double d0, double d1, double d2) { - if (npc == null) - super.enderTeleportTo(d0, d1, d2); - NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); - Bukkit.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - super.enderTeleportTo(d0, d1, d2); - } + NMS.enderTeleportTo(npc, d0, d1, d2, () -> super.enderTeleportTo(d0, d1, d2)); } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ArmorStandController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ArmorStandController.java index 3f1ad7750..89e3cb902 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ArmorStandController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ArmorStandController.java @@ -11,10 +11,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityArmorStand; import net.minecraft.server.v1_8_R3.EntityHuman; import net.minecraft.server.v1_8_R3.NBTTagCompound; @@ -57,6 +59,11 @@ public class ArmorStandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public boolean a(EntityHuman entityhuman, Vec3D vec3d) { if (npc == null) { diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ArrowController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ArrowController.java index bdd1debe6..a7fb4106d 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ArrowController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ArrowController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityArrow; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -52,6 +54,11 @@ public class ArrowController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/BoatController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/BoatController.java index d0927f7a2..64db45425 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/BoatController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/BoatController.java @@ -10,6 +10,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -52,6 +53,7 @@ public class BoatController extends MobEntityController { public static class EntityBoatNPC extends EntityBoat implements NPCHolder { private double b; + private final CitizensNPC npc; public EntityBoatNPC(World world) { @@ -63,6 +65,11 @@ public class BoatController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EggController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EggController.java index 559dafbf7..ea2b90a0d 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EggController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EggController.java @@ -11,10 +11,12 @@ import org.bukkit.entity.Entity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityEgg; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -68,6 +70,11 @@ public class EggController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderCrystalController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderCrystalController.java index 31d2c4e47..c47f04d84 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderCrystalController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderCrystalController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityEnderCrystal; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -52,6 +54,11 @@ public class EnderCrystalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderPearlController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderPearlController.java index 8b8065b4d..2b21f1bc5 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderPearlController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderPearlController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityEnderPearl; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -52,6 +54,11 @@ public class EnderPearlController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderSignalController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderSignalController.java index 421476341..5f6cdea48 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderSignalController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderSignalController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityEnderSignal; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -52,6 +54,11 @@ public class EnderSignalController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ExperienceOrbController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ExperienceOrbController.java index 910f1a629..1b154b54b 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ExperienceOrbController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ExperienceOrbController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityExperienceOrb; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -38,6 +40,11 @@ public class ExperienceOrbController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FallingBlockController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FallingBlockController.java index f631f0174..59b1e31e0 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FallingBlockController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FallingBlockController.java @@ -12,11 +12,13 @@ import org.bukkit.entity.FallingBlock; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.EntityFallingBlock; import net.minecraft.server.v1_8_R3.IBlockData; @@ -60,6 +62,11 @@ public class FallingBlockController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FireworkController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FireworkController.java index 48d6f6274..91a1c685c 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FireworkController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FireworkController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityFireworks; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -38,6 +40,11 @@ public class FireworkController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FishingHookController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FishingHookController.java index cac274117..02053806b 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FishingHookController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FishingHookController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityFishingHook; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -38,6 +40,11 @@ public class FishingHookController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemController.java index 08609cf62..266a3f158 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemController.java @@ -11,10 +11,12 @@ import org.bukkit.entity.Item; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityHuman; import net.minecraft.server.v1_8_R3.EntityItem; import net.minecraft.server.v1_8_R3.ItemStack; @@ -51,6 +53,11 @@ public class ItemController extends AbstractEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemFrameController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemFrameController.java index 7882a0d37..6b212fb7d 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemFrameController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemFrameController.java @@ -11,9 +11,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.EntityItemFrame; import net.minecraft.server.v1_8_R3.EnumDirection; @@ -51,6 +53,11 @@ public class ItemFrameController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/LargeFireballController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/LargeFireballController.java index b528e8150..03bd78aec 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/LargeFireballController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/LargeFireballController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityLargeFireball; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -39,6 +41,11 @@ public class LargeFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/LeashController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/LeashController.java index 75b0d77e2..2fad0fe3c 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/LeashController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/LeashController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityLeash; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -38,6 +40,11 @@ public class LeashController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartChestController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartChestController.java index 1442a5561..5451aab31 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartChestController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartChestController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityMinecartChest; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -39,6 +41,11 @@ public class MinecartChestController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartCommandController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartCommandController.java index c94fb1d31..81bdf4925 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartCommandController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartCommandController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityMinecartCommandBlock; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -39,6 +41,11 @@ public class MinecartCommandController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartFurnaceController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartFurnaceController.java index 13e17488e..e0c981b65 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartFurnaceController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartFurnaceController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityMinecartFurnace; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -39,6 +41,11 @@ public class MinecartFurnaceController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartHopperController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartHopperController.java index 44f47032e..cec319a79 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartHopperController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartHopperController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityMinecartHopper; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -35,6 +37,11 @@ public class MinecartHopperController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartRideableController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartRideableController.java index 02a6c7856..06af690f2 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartRideableController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartRideableController.java @@ -9,10 +9,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityMinecartRideable; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -39,6 +41,11 @@ public class MinecartRideableController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartSpawnerController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartSpawnerController.java index b86631244..d5c906186 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartSpawnerController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartSpawnerController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityMinecartMobSpawner; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -35,6 +37,11 @@ public class MinecartSpawnerController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartTNTController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartTNTController.java index ce9f30b3d..d844710ff 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartTNTController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartTNTController.java @@ -5,10 +5,12 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityMinecartTNT; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -35,6 +37,11 @@ public class MinecartTNTController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/PaintingController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/PaintingController.java index b4ced0ac6..5cb6f16f0 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/PaintingController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/PaintingController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityPainting; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -38,6 +40,11 @@ public class PaintingController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SmallFireballController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SmallFireballController.java index 8bffab047..635e9faa9 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SmallFireballController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SmallFireballController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntitySmallFireball; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -38,6 +40,11 @@ public class SmallFireballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SnowballController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SnowballController.java index d20931495..02a5262d4 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SnowballController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SnowballController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntitySnowball; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -38,6 +40,11 @@ public class SnowballController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SplashPotionController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SplashPotionController.java index 4947ff734..a969d4d50 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SplashPotionController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SplashPotionController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityPotion; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -38,6 +40,11 @@ public class SplashPotionController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/TNTPrimedController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/TNTPrimedController.java index b7fbd061c..32148b729 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/TNTPrimedController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/TNTPrimedController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityTNTPrimed; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -38,6 +40,11 @@ public class TNTPrimedController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ThrownExpBottleController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ThrownExpBottleController.java index 815ff075b..75e87bd75 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ThrownExpBottleController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ThrownExpBottleController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityThrownExpBottle; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -38,6 +40,11 @@ public class ThrownExpBottleController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/WitherSkullController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/WitherSkullController.java index 8a1c16f38..005e6532e 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/WitherSkullController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/WitherSkullController.java @@ -9,9 +9,11 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.EntityWitherSkull; import net.minecraft.server.v1_8_R3.NBTTagCompound; import net.minecraft.server.v1_8_R3.World; @@ -38,6 +40,11 @@ public class WitherSkullController extends MobEntityController { this.npc = (CitizensNPC) npc; } + @Override + public void a(AxisAlignedBB bb) { + super.a(NMSBoundingBox.makeBB(npc, bb)); + } + @Override public void collide(net.minecraft.server.v1_8_R3.Entity entity) { // this method is called by both the entities involved - cancelling diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSBoundingBox.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSBoundingBox.java new file mode 100644 index 000000000..151cdab2c --- /dev/null +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSBoundingBox.java @@ -0,0 +1,21 @@ +package net.citizensnpcs.nms.v1_8_R3.util; + +import java.util.function.Supplier; + +import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.util.BoundingBox; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; + +public class NMSBoundingBox { + private NMSBoundingBox() { + } + + public static AxisAlignedBB convert(BoundingBox box) { + return new AxisAlignedBB(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ); + } + + public static AxisAlignedBB makeBB(NPC npc, AxisAlignedBB def) { + return npc == null || !npc.data().has(NPC.Metadata.BOUNDING_BOX_FUNCTION) ? def + : convert(npc.data().> get(NPC.Metadata.BOUNDING_BOX_FUNCTION).get()); + } +}