diff --git a/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java b/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java index 27677575c..970227049 100644 --- a/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java @@ -97,10 +97,9 @@ public class ShopTrait extends Trait { } public void onRightClick(Player player) { - if (rightClickShop == null || rightClickShop.isEmpty()) - return; - if (!Setting.SHOP_GLOBAL_VIEW_PERMISSION.asString().isEmpty() - && !player.hasPermission(Setting.SHOP_GLOBAL_VIEW_PERMISSION.asString())) + if (rightClickShop == null || rightClickShop.isEmpty() + || !Setting.SHOP_GLOBAL_VIEW_PERMISSION.asString().isEmpty() + && !player.hasPermission(Setting.SHOP_GLOBAL_VIEW_PERMISSION.asString())) return; NPCShop shop = shops.globalShops.getOrDefault(rightClickShop, getDefaultShop()); @@ -133,18 +132,15 @@ public class ShopTrait extends Trait { } public void display(Player sender) { - if (viewPermission != null && !sender.hasPermission(viewPermission)) - return; - - if (!Setting.SHOP_GLOBAL_VIEW_PERMISSION.asString().isEmpty() - && !sender.hasPermission(Setting.SHOP_GLOBAL_VIEW_PERMISSION.asString())) + if (viewPermission != null && !sender.hasPermission(viewPermission) + || !Setting.SHOP_GLOBAL_VIEW_PERMISSION.asString().isEmpty() + && !sender.hasPermission(Setting.SHOP_GLOBAL_VIEW_PERMISSION.asString())) return; if (pages.size() == 0) { Messaging.sendError(sender, "Empty shop"); return; } - InventoryMenu.createSelfRegistered(new NPCShopViewer(this, sender)).present(sender); } @@ -179,7 +175,7 @@ public class ShopTrait extends Trait { } public void setPermission(String permission) { - this.viewPermission = permission; + viewPermission = permission; if (viewPermission != null && viewPermission.isEmpty()) { viewPermission = null; } @@ -198,8 +194,8 @@ public class ShopTrait extends Trait { } public void changePage(int newPage) { - this.page = newPage; - ctx.setTitle("NPC Shop Contents Editor Page " + newPage); + page = newPage; + ctx.setTitle("NPC Shop Contents Editor (" + (newPage + 1) + "/" + (shop.pages.size() + 1) + ")"); NPCShopPage shopPage = shop.getOrCreatePage(page); for (int i = 0; i < ctx.getInventory().getSize(); i++) { InventoryMenuSlot slot = ctx.getSlot(i); @@ -208,8 +204,7 @@ public class ShopTrait extends Trait { if (shopPage.getItem(i) != null) { slot.setItemStack(shopPage.getItem(i).getDisplayItem(null)); } - - final int idx = i; + int idx = i; slot.setClickHandler(evt -> { NPCShopItem display = shopPage.getItem(idx); if (display != null && evt.isShiftClick() && evt.getCursorNonNull().getType() == Material.AIR @@ -219,7 +214,6 @@ public class ShopTrait extends Trait { evt.setCancelled(true); return; } - if (display == null) { if (copying != null && evt.getCursorNonNull().getType() != Material.AIR && evt.getCursorNonNull().equals(copying.getDisplayItem(null))) { @@ -227,13 +221,11 @@ public class ShopTrait extends Trait { copying = null; return; } - display = new NPCShopItem(); if (evt.getCursor() != null) { display.display = evt.getCursor().clone(); } } - ctx.clearSlots(); ctx.getMenu().transition(new NPCShopItemEditor(display, modified -> { if (modified == null) { @@ -244,12 +236,11 @@ public class ShopTrait extends Trait { })); }); } - InventoryMenuSlot prev = ctx.getSlot(4 * 9 + 3); InventoryMenuSlot edit = ctx.getSlot(4 * 9 + 4); InventoryMenuSlot next = ctx.getSlot(4 * 9 + 5); if (page > 0) { - prev.setItemStack(new ItemStack(Material.FEATHER, 1), "Previous page (" + (page) + ")"); + prev.setItemStack(shopPage.getNextPageItem(null, 4 * 9 + 3), "Previous page (" + newPage + ")"); Consumer prevItemEditor = prev.getClickHandlers().get(0); prev.setClickHandler(evt -> { if (evt.isShiftClick()) { @@ -260,9 +251,8 @@ public class ShopTrait extends Trait { changePage(page - 1); }); } - - next.setItemStack(new ItemStack(Material.FEATHER, 1), - page + 1 >= shop.pages.size() ? "New page" : "Next page (" + (page + 1) + ")"); + next.setItemStack(shopPage.getNextPageItem(null, 4 * 9 + 5), + page + 1 >= shop.pages.size() ? "New page" : "Next page (" + (newPage + 1) + ")"); Consumer nextItemEditor = next.getClickHandlers().get(0); next.setClickHandler(evt -> { if (evt.isShiftClick()) { @@ -323,7 +313,7 @@ public class ShopTrait extends Trait { for (NPCShopAction action : actions) { Transaction take = func.apply(action); if (!take.isPossible()) { - pending.forEach(a -> a.rollback()); + pending.forEach(Transaction::rollback); return null; } else { take.run(); @@ -383,6 +373,7 @@ public class ShopTrait extends Trait { lore.add(r.describe()); } }); + if (timesPurchasable > 0) { lore.add("Times purchasable: " + timesPurchasable); } @@ -431,7 +422,7 @@ public class ShopTrait extends Trait { if (max == 0) return; } - final int repeats = max == Integer.MAX_VALUE ? 1 : max; + int repeats = max == Integer.MAX_VALUE ? 1 : max; List take = apply(cost, action -> action.take(event.getWhoClicked(), repeats)); if (take == null) { if (costMessage != null) { @@ -440,7 +431,7 @@ public class ShopTrait extends Trait { return; } if (apply(result, action -> action.grant(event.getWhoClicked(), repeats)) == null) { - take.forEach(a -> a.rollback()); + take.forEach(Transaction::rollback); return; } if (resultMessage != null) { @@ -469,7 +460,7 @@ public class ShopTrait extends Trait { public void save(DataKey key) { } - private static final Pattern PLACEHOLDER_REGEX = Pattern.compile("<(cost|result)>", Pattern.CASE_INSENSITIVE); + private static Pattern PLACEHOLDER_REGEX = Pattern.compile("<(cost|result)>", Pattern.CASE_INSENSITIVE); } @Menu(title = "NPC Shop Item Editor", type = InventoryType.CHEST, dimensions = { 6, 9 }) @@ -490,9 +481,9 @@ public class ShopTrait extends Trait { private final NPCShopItem modified; public NPCShopItemEditor(NPCShopItem item, Consumer consumer) { - this.base = item; - this.modified = base.clone(); - this.callback = consumer; + base = item; + modified = base.clone(); + callback = consumer; } @Override @@ -520,7 +511,8 @@ public class ShopTrait extends Trait { ctx.getSlot(9 * 4 + 2).setDescription(modified.alreadyPurchasedMessage); }))); - ctx.getSlot(9 * 3 + 3).setItemStack(new ItemStack(Util.getFallbackMaterial("EMERALD", "OAK_SIGN", "SIGN")), + ctx.getSlot(9 * 3 + 3).setItemStack( + new ItemStack(Util.getFallbackMaterial("GREEN_WOOL", "EMERALD", "OAK_SIGN", "SIGN")), "Set successful click message, currently:\n", modified.resultMessage == null ? "Unset" : modified.resultMessage); ctx.getSlot(9 * 3 + 3).setClickHandler( @@ -529,7 +521,7 @@ public class ShopTrait extends Trait { ctx.getSlot(9 * 3 + 3).setDescription(modified.resultMessage); }))); - ctx.getSlot(9 * 3 + 6).setItemStack(new ItemStack(Util.getFallbackMaterial("BARRIER", "FIRE")), + ctx.getSlot(9 * 3 + 6).setItemStack(new ItemStack(Util.getFallbackMaterial("RED_WOOL", "OAK_SIGN", "SIGN")), "Set unsuccessful click message, currently:\n", modified.costMessage == null ? "Unset" : modified.costMessage); ctx.getSlot(9 * 3 + 6).setClickHandler( @@ -538,7 +530,7 @@ public class ShopTrait extends Trait { ctx.getSlot(9 * 3 + 6).setDescription(modified.costMessage); }))); - ctx.getSlot(9 * 3 + 5).setItemStack(new ItemStack(Util.getFallbackMaterial("FEATHER", "SIGN")), + ctx.getSlot(9 * 3 + 5).setItemStack(new ItemStack(Util.getFallbackMaterial("FEATHER", "OAK_SIGN", "SIGN")), "Set click to confirm message.", "For example, 'click again to buy this item'\nYou can use or placeholders.\nCurrently:\n" + (modified.clickToConfirmMessage == null ? "Unset" : modified.clickToConfirmMessage)); @@ -553,10 +545,11 @@ public class ShopTrait extends Trait { ctx.getSlot(9 * 3 + 4).setClickHandler( InputMenus.toggler(res -> modified.maxRepeatsOnShiftClick = res, modified.maxRepeatsOnShiftClick)); int pos = 0; - for (GUI template : NPCShopAction.getGUIs()) { - if (template.createMenuItem(null) == null) - continue; + for (GUI template : NPCShopAction.getGUIs()) { + if (template.createMenuItem(null) == null) { + continue; + } NPCShopAction oldCost = modified.cost.stream().filter(template::manages).findFirst().orElse(null); costItems.getSlots().get(pos) .setItemStack(Util.editTitle(template.createMenuItem(oldCost), title -> title + " Cost")); @@ -591,6 +584,7 @@ public class ShopTrait extends Trait { event.setCancelled(true); if (modified.display == null) return; + ctx.getMenu() .transition(InputMenus.stringSetter(() -> modified.display.getItemMeta().hasLore() ? Joiner.on("
").skipNulls().join(modified.display.getItemMeta().getLore()) @@ -607,6 +601,7 @@ public class ShopTrait extends Trait { event.setCancelled(true); if (modified.display == null) return; + ctx.getMenu().transition(InputMenus.stringSetter(modified.display.getItemMeta()::getDisplayName, name -> { ItemMeta meta = modified.display.getItemMeta(); meta.setDisplayName(ChatColor.RESET + Messaging.parseComponents(name)); @@ -651,13 +646,21 @@ public class ShopTrait extends Trait { } public NPCShopPage(int page) { - this.index = page; + index = page; } public NPCShopItem getItem(int idx) { return items.get(idx); } + public ItemStack getNextPageItem(Player player, int idx) { + return items.containsKey(idx) ? items.get(idx).getDisplayItem(player) : new ItemStack(Material.FEATHER, 1); + } + + public ItemStack getPreviousPageItem(Player player, int idx) { + return items.containsKey(idx) ? items.get(idx).getDisplayItem(player) : new ItemStack(Material.FEATHER, 1); + } + public void removeItem(int idx) { items.remove(idx); } @@ -748,13 +751,14 @@ public class ShopTrait extends Trait { event.setCancelled(true); if (trait == null) return; + if (shop.getName().equals(trait.rightClickShop)) { trait.rightClickShop = null; } else { trait.rightClickShop = shop.name; } ctx.getSlot(8) - .setDescription("Show shop on right click
" + (shop.getName().equals(trait.rightClickShop))); + .setDescription("Show shop on right click
" + shop.getName().equals(trait.rightClickShop)); } } @@ -772,7 +776,7 @@ public class ShopTrait extends Trait { } public void changePage(int newPage) { - this.currentPage = newPage; + currentPage = newPage; NPCShopPage page = shop.pages.get(currentPage); if (page.title != null && !page.title.isEmpty()) { Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), () -> { @@ -792,21 +796,19 @@ public class ShopTrait extends Trait { lastClickedItem = item; }); } - InventoryMenuSlot prev = ctx.getSlot(4 * 9 + 3); InventoryMenuSlot next = ctx.getSlot(4 * 9 + 5); if (currentPage > 0) { prev.clear(); - prev.setItemStack(new ItemStack(Material.FEATHER, 1), "Previous page (" + (currentPage) + ")"); + prev.setItemStack(page.getPreviousPageItem(player, 4 * 9 + 3), "Previous page (" + newPage + ")"); prev.setClickHandler(evt -> { evt.setCancelled(true); changePage(currentPage - 1); }); } - if (currentPage + 1 < shop.pages.size()) { next.clear(); - next.setItemStack(new ItemStack(Material.FEATHER, 1), "Next page (" + (currentPage + 1) + ")"); + next.setItemStack(page.getNextPageItem(player, 4 * 9 + 5), "Next page (" + (newPage + 1) + ")"); next.setClickHandler(evt -> { evt.setCancelled(true); changePage(currentPage + 1); diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ArmorStandController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ArmorStandController.java index 10f5e2c6c..8a1562d0b 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ArmorStandController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ArmorStandController.java @@ -84,6 +84,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -97,6 +98,7 @@ public class ArmorStandController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -104,6 +106,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ArmorStandNPC(this); } + return super.getBukkitEntity(); } @@ -118,6 +121,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -127,6 +131,7 @@ public class ArmorStandController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 4e081eeb4..6771cda4d 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 @@ -58,6 +58,7 @@ public class BatController extends MobEntityController { if (npc != null) { setAsleep(false); } + } @Override @@ -99,6 +100,7 @@ public class BatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +114,7 @@ public class BatController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -124,6 +127,7 @@ public class BatController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BatNPC(this); } + return super.getBukkitEntity(); } @@ -142,6 +146,7 @@ public class BatController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -152,6 +157,7 @@ public class BatController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } } } \ No newline at end of file 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 4feb9cc01..1180cb975 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 @@ -96,6 +96,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -109,6 +110,7 @@ public class BlazeController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -121,6 +123,7 @@ public class BlazeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BlazeNPC(this); } + return super.getBukkitEntity(); } @@ -139,6 +142,7 @@ public class BlazeController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -146,6 +150,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { npc.update(); } + } } } \ No newline at end of file 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 a6b5aa3b1..bea90a504 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 @@ -69,6 +69,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -105,6 +106,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -117,6 +119,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -125,6 +128,7 @@ public class CaveSpiderController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +138,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +151,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CaveSpiderNPC(this); } + return super.getBukkitEntity(); } @@ -164,6 +170,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -172,6 +179,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -189,6 +197,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 455009483..6cbd0c03b 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 @@ -70,6 +70,7 @@ public class ChickenController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -78,6 +79,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -114,6 +116,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -126,6 +129,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -134,6 +138,7 @@ public class ChickenController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -143,6 +148,7 @@ public class ChickenController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -155,6 +161,7 @@ public class ChickenController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ChickenNPC(this); } + return super.getBukkitEntity(); } @@ -173,6 +180,7 @@ public class ChickenController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -181,6 +189,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -196,6 +205,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { this.bD = 100; // egg timer } + super.n(); } } 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 572d4d4f3..064efaf46 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 @@ -74,6 +74,7 @@ public class CowController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -82,6 +83,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -128,6 +130,7 @@ public class CowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +143,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -148,6 +152,7 @@ public class CowController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -157,6 +162,7 @@ public class CowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -169,6 +175,7 @@ public class CowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CowNPC(this); } + return super.getBukkitEntity(); } @@ -187,6 +194,7 @@ public class CowController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -195,6 +203,7 @@ public class CowController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 b3c229223..1f910363e 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 @@ -75,6 +75,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -116,6 +117,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -128,6 +130,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isProtected()) { super.dh(); } + } @Override @@ -135,6 +138,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -143,6 +147,7 @@ public class CreeperController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -152,6 +157,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -164,6 +170,7 @@ public class CreeperController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CreeperNPC(this); } + return super.getBukkitEntity(); } @@ -182,6 +189,7 @@ public class CreeperController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -190,6 +198,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -205,6 +214,7 @@ public class CreeperController extends MobEntityController { if (npc == null || allowPowered) { super.onLightningStrike(entitylightning); } + } public void setAllowPowered(boolean allowPowered) { @@ -218,6 +228,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 1af763b93..57d3977e4 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 @@ -102,6 +102,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,6 +122,7 @@ public class EnderDragonController extends MobEntityController { motY = old.y; motZ = old.z; } + return res; } @@ -130,6 +132,7 @@ public class EnderDragonController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -142,6 +145,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderDragonNPC(this); } + return super.getBukkitEntity(); } @@ -160,6 +164,7 @@ public class EnderDragonController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -167,16 +172,19 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { npc.update(); } + if (npc != null) { if (getDragonControllerManager().a().getControllerPhase() == DragonControllerPhase.j) { setHealth(0F); return; } + if (this.c < 0) { for (int i = 0; i < this.b.length; ++i) { this.b[i][0] = this.yaw; this.b[i][1] = this.locY; } + } if (++this.c == this.b.length) { @@ -199,6 +207,7 @@ public class EnderDragonController extends MobEntityController { if (getBukkitEntity().getPassenger() != null) { yaw = getBukkitEntity().getPassenger().getLocation().getYaw() - 180; } + if (motX != 0 || motY != 0 || motZ != 0) { motX *= 0.98; motY *= 0.98; @@ -206,6 +215,7 @@ public class EnderDragonController extends MobEntityController { if (getBukkitEntity().getPassenger() == null) { yaw = Util.getDragonYaw(getBukkitEntity(), motX, motZ); } + setPosition(locX + motX, locY + motY, locZ + motZ); } @@ -218,8 +228,11 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + } + } + if (npc.data().get(NPC.Metadata.COLLIDABLE, false)) { try { KNOCKBACK.invoke(this, this.world.getEntities(this, @@ -231,10 +244,13 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable t) { t.printStackTrace(); } + } + } else { super.n(); } + } private static final MethodHandle HURT = NMS.getMethodHandle(EntityEnderDragon.class, "b", true, 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 9d2b05c0a..eaa697728 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 @@ -69,6 +69,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -105,6 +106,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -117,6 +119,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -125,6 +128,7 @@ public class EndermanController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +138,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +151,7 @@ public class EndermanController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EndermanNPC(this); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class EndermanController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -179,6 +186,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -196,6 +204,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 d025a8b45..ddf77c755 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 @@ -69,6 +69,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -105,6 +106,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -117,6 +119,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -125,6 +128,7 @@ public class EndermiteController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +138,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +151,7 @@ public class EndermiteController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EndermiteNPC(this); } + return super.getBukkitEntity(); } @@ -164,6 +170,7 @@ public class EndermiteController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -172,6 +179,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -189,6 +197,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java index ab98f9f4d..1692011bb 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java @@ -84,6 +84,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { skinTracker = null; } + } @Override @@ -91,6 +92,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -126,6 +128,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -138,6 +141,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable velocityChanged = false; Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), () -> EntityHumanNPC.this.velocityChanged = true); } + return damaged; } @@ -148,7 +152,14 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (dead) return; super.die(damagesource); - Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), () -> world.removeEntity(EntityHumanNPC.this), 15); // give enough time for death and smoke animation + Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), () -> world.removeEntity(EntityHumanNPC.this), 15); // give + // enough + // time + // for + // death + // and + // smoke + // animation } @Override @@ -156,6 +167,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -164,6 +176,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -173,6 +186,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -180,6 +194,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null && bukkitEntity == null) { bukkitEntity = new PlayerNPC(this); } + return super.getBukkitEntity(); } @@ -206,6 +221,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (skinName == null) { skinName = npc.getName(); } + return skinName.toLowerCase(); } @@ -229,10 +245,12 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } catch (IOException e) { // swallow } + AttributeInstance range = getAttributeInstance(GenericAttributes.FOLLOW_RANGE); if (range == null) { range = getAttributeMap().b(GenericAttributes.FOLLOW_RANGE); } + range.setValue(Setting.DEFAULT_PATHFINDING_RANGE.asDouble()); controllerJump = new PlayerControllerJump(this); controllerMove = new PlayerControllerMove(this); @@ -258,6 +276,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable super.k_(); return; } + super.U(); boolean navigating = npc.getNavigator().isNavigating() || controllerMove.a(); if (!navigating && getBukkitEntity() != null @@ -266,15 +285,19 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable && (!npc.isProtected() || SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld()))) { moveWithFallDamage(0, 0); } + if (Math.abs(motX) < EPSILON && Math.abs(motY) < EPSILON && Math.abs(motZ) < EPSILON) { motX = motY = motZ = 0; } + if (navigating) { if (!NMSImpl.isNavigationFinished(navigation)) { NMSImpl.updateNavigation(navigation); } + moveOnCurrentHeading(); } + updateAI(); cs(); if (npc.data().get(NPC.Metadata.PICKUP_ITEMS, false)) { @@ -284,12 +307,16 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { axisalignedbb = this.getBoundingBox().grow(1.0, 0.5, 1.0); } + for (Entity entity : this.world.getEntities(this, axisalignedbb)) { if (!entity.dead) { entity.d(this); } + } + } + } @Override @@ -317,9 +344,11 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable cl(); jumpTicks = 10; } + } else { jumpTicks = 0; } + bf *= 0.98F; bg *= 0.98F; bh *= 0.9F; @@ -328,6 +357,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (jumpTicks > 0) { jumpTicks--; } + } private void moveWithFallDamage(float mx, float my) { @@ -336,6 +366,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (!npc.isProtected()) { a(this.locY - y, onGround); } + } public void setMoveDestination(double x, double y, double z, double speed) { @@ -395,9 +426,12 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (equipment != null) { this.getAttributeMap().b(equipment.a(slot)); } + } + equipmentCache.put(slot, equipment); } + if (!itemChanged) return; Location current = getBukkitEntity().getLocation(packetLocationCache); @@ -406,6 +440,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable for (EnumItemSlot slot : EnumItemSlot.values()) { packets[i++] = new PacketPlayOutEntityEquipment(getId(), slot, getEquipment(slot)); } + NMSImpl.sendPacketsNearby(getBukkitEntity(), current, packets); } 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 44929f364..ed976c936 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 @@ -82,6 +82,7 @@ public class GhastController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -100,6 +101,7 @@ public class GhastController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +114,7 @@ public class GhastController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GhastNPC(this); } + return super.getBukkitEntity(); } @@ -130,6 +133,7 @@ public class GhastController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -137,6 +141,7 @@ public class GhastController extends MobEntityController { if (npc != null) { npc.update(); } + super.M(); } } 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 c73296309..e318ae959 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 @@ -55,6 +55,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class GiantController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class GiantController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class GiantController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GiantNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class GiantController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class GiantController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 5857cc73b..0451e4f32 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 @@ -55,6 +55,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class GuardianController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class GuardianController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class GuardianController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GuardianNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class GuardianController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -159,6 +166,7 @@ public class GuardianController extends MobEntityController { } else { npc.update(); } + } @Override @@ -178,6 +186,7 @@ public class GuardianController extends MobEntityController { this.setPosition(locX - 0.01, locY, locZ - 0.01); this.setPosition(locX + 0.01, locY, locZ + 0.01); } + } @Override @@ -187,6 +196,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 f39798283..38601f66c 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 @@ -62,6 +62,7 @@ public class HorseController extends MobEntityController { ((Horse) getBukkitEntity()).setDomestication(((Horse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -75,6 +76,7 @@ public class HorseController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -83,6 +85,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -119,6 +122,7 @@ public class HorseController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -139,6 +143,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -147,6 +152,7 @@ public class HorseController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -156,6 +162,7 @@ public class HorseController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -168,6 +175,7 @@ public class HorseController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseNPC(this); } + return super.getBukkitEntity(); } @@ -186,6 +194,7 @@ public class HorseController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -199,16 +208,20 @@ public class HorseController extends MobEntityController { } else { riding = false; } + if (riding) { try { C.invoke(this, 4, true); } catch (Throwable e) { e.printStackTrace(); } + } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HumanController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HumanController.java index 5198b91bd..77cf7dbfc 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HumanController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HumanController.java @@ -35,9 +35,11 @@ public class HumanController extends AbstractEntityController { if (npc.requiresNameHologram()) { name = teamName; } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } + final GameProfile profile = new GameProfile(uuid, name); final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile, new PlayerInteractManager(nmsWorld), npc); @@ -45,6 +47,7 @@ public class HumanController extends AbstractEntityController { if (skin != null) { skin.apply(handle); } + Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> { if (getBukkitEntity() == null || !getBukkitEntity().isValid() || getBukkitEntity() != handle.getBukkitEntity()) 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 5020c88f6..cd43db09e 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 @@ -55,6 +55,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class IronGolemController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class IronGolemController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new IronGolemNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class IronGolemController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 1f45ac4dc..40f8e8e16 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 @@ -49,6 +49,7 @@ public class MagmaCubeController extends MobEntityController { setSize(3); this.moveController = new PlayerControllerMove(this); } + } @Override @@ -61,6 +62,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -97,6 +99,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -104,6 +107,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.d(human); } + } @Override @@ -116,6 +120,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -124,6 +129,7 @@ public class MagmaCubeController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -133,6 +139,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -145,6 +152,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MagmaCubeNPC(this); } + return super.getBukkitEntity(); } @@ -163,6 +171,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -171,6 +180,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -188,6 +198,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MobEntityController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MobEntityController.java index 384efa321..aef19a390 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MobEntityController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MobEntityController.java @@ -34,6 +34,7 @@ public abstract class MobEntityController extends AbstractEntityController { if (entity instanceof EntityInsentient) { NMSImpl.clearGoals(((EntityInsentient) entity).goalSelector, ((EntityInsentient) entity).targetSelector); } + entity.setPositionRotation(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch()); if (npc != null) { // entity.onGround isn't updated right away - we approximate here so @@ -42,15 +43,19 @@ public abstract class MobEntityController extends AbstractEntityController { if (beneath.isSolid()) { entity.onGround = true; } + try { UUID_FIELD.invoke(entity, npc.getUniqueId()); } catch (Throwable e) { e.printStackTrace(); } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } + } + return entity.getBukkitEntity(); } @@ -61,6 +66,7 @@ public abstract class MobEntityController extends AbstractEntityController { ex.printStackTrace(); return null; } + } private static Constructor getConstructor(Class clazz) { @@ -73,6 +79,7 @@ public abstract class MobEntityController extends AbstractEntityController { } catch (Exception ex) { throw new IllegalStateException("unable to find an entity constructor"); } + } private static final Map, Constructor> CONSTRUCTOR_CACHE = new WeakHashMap<>(); 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 fafa71228..5d00578c7 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 @@ -59,6 +59,7 @@ public class MushroomCowController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -67,6 +68,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -110,6 +112,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -122,6 +125,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -130,6 +134,7 @@ public class MushroomCowController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -139,6 +144,7 @@ public class MushroomCowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -151,6 +157,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MushroomCowNPC(this); } + return super.getBukkitEntity(); } @@ -169,6 +176,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -177,6 +185,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 ae14c31a9..08cba3a38 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 @@ -56,6 +56,7 @@ public class OcelotController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -64,6 +65,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -100,6 +102,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +115,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.df(); } + } @Override @@ -119,6 +123,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -127,6 +132,7 @@ public class OcelotController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -136,6 +142,7 @@ public class OcelotController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -148,6 +155,7 @@ public class OcelotController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new OcelotNPC(this); } + return super.getBukkitEntity(); } @@ -166,6 +174,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -174,6 +183,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 952a8ac8a..e29f0953e 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 @@ -57,6 +57,7 @@ public class PigController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -65,6 +66,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -101,6 +103,7 @@ public class PigController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -120,6 +123,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -128,6 +132,7 @@ public class PigController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -137,6 +142,7 @@ public class PigController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -149,6 +155,7 @@ public class PigController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PigNPC(this); } + return super.getBukkitEntity(); } @@ -167,6 +174,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -175,6 +183,7 @@ public class PigController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -190,6 +199,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } } 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 9e026583a..bb0129e28 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 @@ -55,6 +55,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class PigZombieController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class PigZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class PigZombieController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PigZombieNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class PigZombieController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 42b99c018..9758d8f87 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 @@ -54,6 +54,7 @@ public class PolarBearController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -91,6 +92,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -104,6 +106,7 @@ public class PolarBearController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -116,6 +119,7 @@ public class PolarBearController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PolarBearNPC(this); } + return super.getBukkitEntity(); } @@ -134,6 +138,7 @@ public class PolarBearController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -143,6 +148,7 @@ public class PolarBearController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } } 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 e4dd580de..40c451591 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 @@ -57,6 +57,7 @@ public class RabbitController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -65,6 +66,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -101,6 +103,7 @@ public class RabbitController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -113,6 +116,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -121,6 +125,7 @@ public class RabbitController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -130,6 +135,7 @@ public class RabbitController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -142,6 +148,7 @@ public class RabbitController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new RabbitNPC(this); } + return super.getBukkitEntity(); } @@ -165,6 +172,7 @@ public class RabbitController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -176,6 +184,7 @@ public class RabbitController extends MobEntityController { } else { super.M(); } + } @Override @@ -194,6 +203,7 @@ public class RabbitController extends MobEntityController { this.datawatcher.set(NMSImpl.getRabbitTypeField(), i); return; } + super.setRabbitType(i); } } 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 91f8c8043..7f60631a6 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 @@ -56,6 +56,7 @@ public class SheepController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -64,6 +65,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -100,6 +102,7 @@ public class SheepController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +115,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -120,6 +124,7 @@ public class SheepController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -129,6 +134,7 @@ public class SheepController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -141,6 +147,7 @@ public class SheepController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SheepNPC(this); } + return super.getBukkitEntity(); } @@ -159,6 +166,7 @@ public class SheepController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -167,6 +175,7 @@ public class SheepController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 75995cd38..c39ea3e1b 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 @@ -56,6 +56,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -92,6 +93,7 @@ public class ShulkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -104,6 +106,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -112,6 +115,7 @@ public class ShulkerController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -121,6 +125,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -133,6 +138,7 @@ public class ShulkerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ShulkerNPC(this); } + return super.getBukkitEntity(); } @@ -151,6 +157,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -160,6 +167,7 @@ public class ShulkerController extends MobEntityController { } else { super.m(); } + } @Override @@ -175,6 +183,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.n(); } + } @Override @@ -189,6 +198,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 84ec74041..662ec7370 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 @@ -55,6 +55,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class SilverfishController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class SilverfishController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SilverfishNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class SilverfishController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 f538be6a0..94c03222e 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 @@ -55,6 +55,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class SkeletonController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class SkeletonController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SkeletonNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class SkeletonController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 5e1b31664..61b3c6b87 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 @@ -49,6 +49,7 @@ public class SlimeController extends MobEntityController { setSize(3); this.moveController = new PlayerControllerMove(this); } + } @Override @@ -61,6 +62,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -97,6 +99,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -104,6 +107,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.d(human); } + } @Override @@ -116,6 +120,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -124,6 +129,7 @@ public class SlimeController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -133,6 +139,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -145,6 +152,7 @@ public class SlimeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SlimeNPC(this); } + return super.getBukkitEntity(); } @@ -163,6 +171,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -171,6 +180,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -188,6 +198,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 596ffae54..28a27dc19 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 @@ -55,6 +55,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class SnowmanController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class SnowmanController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SnowmanNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class SnowmanController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 3938218aa..43d3a0bd9 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 @@ -55,6 +55,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class SpiderController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class SpiderController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SpiderNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class SpiderController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 b51c442e5..c91f7604f 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 @@ -55,6 +55,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class SquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class SquidController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class SquidController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SquidNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class SquidController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -166,6 +173,7 @@ public class SquidController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 dce2bb826..50728f30d 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 @@ -62,6 +62,7 @@ public class VillagerController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -70,6 +71,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -83,6 +85,7 @@ public class VillagerController extends MobEntityController { if (npc != null && npc.data().get(NPC.Metadata.VILLAGER_BLOCK_TRADES, true)) { blockingATrade = true; } + return super.a(entityhuman, enumhand, itemstack); } @@ -114,6 +117,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -127,6 +131,7 @@ public class VillagerController extends MobEntityController { blockingATrade = false; return true; } + return super.dh(); } @@ -135,6 +140,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -143,6 +149,7 @@ public class VillagerController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -152,6 +159,7 @@ public class VillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -164,6 +172,7 @@ public class VillagerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new VillagerNPC(this); } + return super.getBukkitEntity(); } @@ -182,6 +191,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -190,6 +200,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -205,6 +216,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } } 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 620067968..ad9fff596 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 @@ -55,6 +55,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class WitchController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class WitchController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class WitchController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitchNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class WitchController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class WitchController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 efb7a96e3..373d7f4a2 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 @@ -82,6 +82,7 @@ public class WitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -101,6 +102,7 @@ public class WitherController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -113,6 +115,7 @@ public class WitherController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitherNPC(this); } + return super.getBukkitEntity(); } @@ -131,6 +134,7 @@ public class WitherController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -144,6 +148,7 @@ public class WitherController extends MobEntityController { super.M(); return; } + npc.update(); } } 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 1d3d4a88c..0a57b9982 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 @@ -58,6 +58,7 @@ public class WolfController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -66,6 +67,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -102,6 +104,7 @@ public class WolfController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class WolfController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -131,6 +136,7 @@ public class WolfController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -143,6 +149,7 @@ public class WolfController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WolfNPC(this); } + return super.getBukkitEntity(); } @@ -161,6 +168,7 @@ public class WolfController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -169,6 +177,7 @@ public class WolfController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 0c05431c5..85fa1f072 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 @@ -55,6 +55,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class ZombieController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class ZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class ZombieController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ZombieNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class ZombieController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 1eb95408a..2ac99c36f 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 @@ -67,6 +67,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -80,6 +81,7 @@ public class AreaEffectCloudController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -87,6 +89,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new AreaEffectCloudNPC(this); } + return super.getBukkitEntity(); } @@ -102,6 +105,7 @@ public class AreaEffectCloudController extends MobEntityController { } else { super.m(); } + } } } \ No newline at end of file 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 60bdc6562..6c2a87901 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 @@ -68,6 +68,7 @@ public class BoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -81,6 +82,7 @@ public class BoatController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -88,6 +90,7 @@ public class BoatController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BoatNPC(this); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class BoatController extends MobEntityController { } else { super.m(); } + } @Override @@ -112,6 +116,7 @@ public class BoatController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 2699ff828..fc3a2985d 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 @@ -68,6 +68,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -81,6 +82,7 @@ public class DragonFireballController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -88,6 +90,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new DragonFireballNPC(this); } + return super.getBukkitEntity(); } @@ -103,9 +106,11 @@ public class DragonFireballController extends MobEntityController { if (!npc.isProtected()) { super.m(); } + } else { super.m(); } + } @Override @@ -115,6 +120,7 @@ public class DragonFireballController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 f51d27749..70ce932b6 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 @@ -83,6 +83,7 @@ public class EggController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -96,6 +97,7 @@ public class EggController extends AbstractEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -103,6 +105,7 @@ public class EggController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EggNPC(this); } + return super.getBukkitEntity(); } @@ -118,9 +121,11 @@ public class EggController extends AbstractEntityController { if (!npc.isProtected()) { super.m(); } + } else { super.m(); } + } } } \ No newline at end of file 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 249a501f8..1e738752d 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 @@ -67,6 +67,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -80,6 +81,7 @@ public class EnderCrystalController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -87,6 +89,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderCrystalNPC(this); } + return super.getBukkitEntity(); } @@ -102,6 +105,7 @@ public class EnderCrystalController extends MobEntityController { } else { super.m(); } + } } } \ No newline at end of file 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 58a3c031e..5e5cf4726 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 @@ -67,6 +67,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -80,6 +81,7 @@ public class EnderPearlController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -87,6 +89,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderPearlNPC(this); } + return super.getBukkitEntity(); } @@ -102,9 +105,11 @@ public class EnderPearlController extends MobEntityController { if (!npc.isProtected()) { super.m(); } + } else { super.m(); } + } } } \ No newline at end of file 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 fe721f5a3..7dd6d6aa4 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 @@ -67,6 +67,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -80,6 +81,7 @@ public class EnderSignalController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -87,6 +89,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderSignalNPC(this); } + return super.getBukkitEntity(); } @@ -102,6 +105,7 @@ public class EnderSignalController extends MobEntityController { } else { super.m(); } + } } } \ No newline at end of file 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 f8b9ff3e0..2d83a85b8 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 @@ -53,6 +53,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class ExperienceOrbController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ExperienceOrbNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class ExperienceOrbController extends MobEntityController { } else { super.m(); } + } } 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 7aad0b3b4..ac9f1b13a 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 @@ -75,6 +75,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -88,6 +89,7 @@ public class FallingBlockController extends AbstractEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FallingBlockNPC(this); } + return super.getBukkitEntity(); } @@ -113,9 +116,11 @@ public class FallingBlockController extends AbstractEntityController { motZ *= 0.98; move(motX, motY, motZ); } + } else { super.m(); } + } @Override @@ -125,6 +130,7 @@ public class FallingBlockController extends AbstractEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } private static final double EPSILON = 0.001; 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 e2e42447f..edf56499d 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 @@ -53,6 +53,7 @@ public class FireworkController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class FireworkController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class FireworkController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FireworkNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class FireworkController extends MobEntityController { } else { super.m(); } + } } 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 965ac0b85..ec417b10a 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 @@ -53,6 +53,7 @@ public class FishingHookController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class FishingHookController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class FishingHookController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FishingHookNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class FishingHookController extends MobEntityController { } else { super.m(); } + } } 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 90a8b8eae..389aaee36 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 @@ -66,6 +66,7 @@ public class ItemController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -73,6 +74,7 @@ public class ItemController extends AbstractEntityController { if (npc == null) { super.d(entityhuman); } + } @Override @@ -86,6 +88,7 @@ public class ItemController extends AbstractEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +96,7 @@ public class ItemController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ItemNPC(this); } + return super.getBukkitEntity(); } @@ -108,6 +112,7 @@ public class ItemController extends AbstractEntityController { } else { super.m(); } + } } 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 4dc963184..aee7f473c 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 @@ -66,6 +66,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -79,6 +80,7 @@ public class ItemFrameController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -86,6 +88,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ItemFrameNPC(this); } + return super.getBukkitEntity(); } @@ -101,6 +104,7 @@ public class ItemFrameController extends MobEntityController { } else { super.m(); } + } @Override 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 8f7029c11..0c4c3ea3d 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 @@ -54,6 +54,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -67,6 +68,7 @@ public class LargeFireballController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -74,6 +76,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LargeFireballNPC(this); } + return super.getBukkitEntity(); } @@ -89,9 +92,11 @@ public class LargeFireballController extends MobEntityController { if (!npc.isProtected()) { super.m(); } + } else { super.m(); } + } @Override @@ -101,6 +106,7 @@ public class LargeFireballController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 9683d22ea..060d116da 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 @@ -53,6 +53,7 @@ public class LeashController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class LeashController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class LeashController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LeashNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class LeashController extends MobEntityController { } else { super.m(); } + } @Override 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 414a9d9c6..783436f46 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 @@ -54,6 +54,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -67,6 +68,7 @@ public class MinecartChestController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -74,6 +76,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartChestNPC(this); } + return super.getBukkitEntity(); } @@ -89,6 +92,7 @@ public class MinecartChestController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 14b8a5205..a6376d7d2 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 @@ -54,6 +54,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -67,6 +68,7 @@ public class MinecartCommandController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -74,6 +76,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartCommandNPC(this); } + return super.getBukkitEntity(); } @@ -89,6 +92,7 @@ public class MinecartCommandController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 8cab7a1d8..757020fca 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 @@ -54,6 +54,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -67,6 +68,7 @@ public class MinecartFurnaceController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -74,6 +76,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartFurnaceNPC(this); } + return super.getBukkitEntity(); } @@ -89,6 +92,7 @@ public class MinecartFurnaceController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 348d838ef..047184918 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 @@ -50,6 +50,7 @@ public class MinecartHopperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -63,6 +64,7 @@ public class MinecartHopperController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -77,6 +79,7 @@ public class MinecartHopperController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 8a3b0e494..7cbf09f27 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 @@ -54,6 +54,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -67,6 +68,7 @@ public class MinecartRideableController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -74,6 +76,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartRideableNPC(this); } + return super.getBukkitEntity(); } @@ -89,6 +92,7 @@ public class MinecartRideableController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 741b6916c..080175c1f 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 @@ -50,6 +50,7 @@ public class MinecartSpawnerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -63,6 +64,7 @@ public class MinecartSpawnerController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -77,6 +79,7 @@ public class MinecartSpawnerController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 2c214d3e5..1b8983a6e 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 @@ -50,6 +50,7 @@ public class MinecartTNTController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -63,6 +64,7 @@ public class MinecartTNTController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -77,6 +79,7 @@ public class MinecartTNTController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 ab1900e76..73799167c 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 @@ -53,6 +53,7 @@ public class PaintingController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class PaintingController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class PaintingController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PaintingNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class PaintingController extends MobEntityController { } else { super.m(); } + } @Override 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 03393ea22..74bf6c611 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 @@ -53,6 +53,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class ShulkerBulletController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ShulkerBulletNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class ShulkerBulletController extends MobEntityController { } else { super.m(); } + } } 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 1bde2cd5a..974f83ca4 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 @@ -53,6 +53,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class SmallFireballController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SmallFireballNPC(this); } + return super.getBukkitEntity(); } @@ -88,9 +91,11 @@ public class SmallFireballController extends MobEntityController { if (!npc.isProtected()) { super.m(); } + } else { super.m(); } + } } 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 954e4f8b9..bf7d054c2 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 @@ -53,6 +53,7 @@ public class SnowballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class SnowballController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class SnowballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SnowballNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class SnowballController extends MobEntityController { } else { super.m(); } + } } 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 3aa70bb5f..b04bc137c 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 @@ -53,6 +53,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class SpectralArrowController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SpectralArrowNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class SpectralArrowController extends MobEntityController { } else { super.m(); } + } } 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 9f5398f2e..7821b645f 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 @@ -53,6 +53,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class TNTPrimedController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new TNTPrimedNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class TNTPrimedController extends MobEntityController { } else { super.m(); } + } } 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 262a2f7b3..3df517ad5 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 @@ -53,6 +53,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class ThrownExpBottleController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ThrownExpBottleNPC(this); } + return super.getBukkitEntity(); } @@ -88,9 +91,11 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isProtected()) { super.m(); } + } else { super.m(); } + } } 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 4941ea95f..71cec42b8 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 @@ -54,6 +54,7 @@ public class ThrownPotionController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -67,6 +68,7 @@ public class ThrownPotionController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -77,7 +79,9 @@ public class ThrownPotionController extends MobEntityController { } else { bukkitEntity = new SplashThrownPotionNPC(this); } + } + return super.getBukkitEntity(); } @@ -93,6 +97,7 @@ public class ThrownPotionController extends MobEntityController { } else { super.m(); } + } } 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 85c30034e..ae932d116 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 @@ -53,6 +53,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class TippedArrowController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new TippedArrowNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class TippedArrowController extends MobEntityController { } else { super.m(); } + } } 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 3922f27ab..0cf9516e5 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 @@ -53,6 +53,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class WitherSkullController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitherSkullNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class WitherSkullController extends MobEntityController { } else { super.m(); } + } } diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/CitizensBlockBreaker.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/CitizensBlockBreaker.java index a3dfcdbf7..79bf6087a 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/CitizensBlockBreaker.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/CitizensBlockBreaker.java @@ -47,6 +47,7 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { ItemStack current = getCurrentItem(); return current != null ? current.b(block) : false; } + } @Override @@ -64,10 +65,13 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { if (i > 0) { f += i * i + 1; } + } + if (handle.hasEffect(MobEffects.FASTER_DIG)) { f *= 1.0F + (handle.getEffect(MobEffects.FASTER_DIG).getAmplifier() + 1) * 0.2F; } + if (handle.hasEffect(MobEffects.SLOWER_DIG)) { float f1 = 1.0F; switch (handle.getEffect(MobEffects.SLOWER_DIG).getAmplifier()) { @@ -84,15 +88,20 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { default: f1 = 8.1E-4F; } + f *= f1; } + if (handle.a(Material.WATER) && !EnchantmentManager.i(handle)) { f /= 5.0F; } + } + if (!getHandle().onGround) { f /= 5.0F; } + return f; } } \ No newline at end of file diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java index 4d6043ab3..bd551c08a 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java @@ -274,6 +274,7 @@ public class NMSImpl implements NMSBridge { } else if (!handle.world.players.contains(handle)) { handle.world.players.add(handle); } + } @Override @@ -286,6 +287,7 @@ public class NMSImpl implements NMSBridge { PlayerAnimation.ARM_SWING.play(humanHandle.getBukkitEntity()); return; } + AttributeInstance attackDamage = handle.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE); float f = (float) (attackDamage == null ? 1 : attackDamage.getValue()); int i = 0; @@ -293,6 +295,7 @@ public class NMSImpl implements NMSBridge { f += EnchantmentManager.a(handle.getItemInMainHand(), target.getMonsterType()); i += EnchantmentManager.a(handle); } + boolean flag = target.damageEntity(DamageSource.mobAttack(handle), f); if (!flag) return; @@ -302,10 +305,12 @@ public class NMSImpl implements NMSBridge { handle.motX *= 0.6D; handle.motZ *= 0.6D; } + int fireAspectLevel = EnchantmentManager.getFireAspectEnchantmentLevel(handle); if (fireAspectLevel > 0) { target.setOnFire(fireAspectLevel * 4); } + } @Override @@ -317,9 +322,11 @@ public class NMSImpl implements NMSBridge { } catch (Throwable t) { t.printStackTrace(); } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getControllerMove().f = false; } + } @Override @@ -353,14 +360,19 @@ public class NMSImpl implements NMSBridge { if (!changed && !ItemStack.matches(old, curr)) { changed = true; } + equipment.put(slot, curr); } + if (changed) { for (EnumItemSlot slot : EnumItemSlot.values()) { agg.send(new PacketPlayOutEntityEquipment(handle.getId(), slot, equipment.get(slot))); } + } + } + tracker.track(Lists.newArrayList(tracker.trackedPlayers)); } @@ -380,7 +392,9 @@ public class NMSImpl implements NMSBridge { if (callback != null) { callback.accept(entity); } + } + tracker.trackedPlayers.clear(); } }; @@ -428,8 +442,10 @@ public class NMSImpl implements NMSBridge { bserver = (BossBattleServer) ENDERDRAGON_BATTLE_BAR_FIELD .get(ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity))); } + } catch (Exception e) { } + if (bserver == null) return null; BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10); @@ -437,6 +453,7 @@ public class NMSImpl implements NMSBridge { CRAFT_BOSSBAR_HANDLE_FIELD.set(ret, bserver); } catch (Exception e) { } + return ret; } @@ -454,6 +471,7 @@ public class NMSImpl implements NMSBridge { if (aabb == null) { aabb = world.getType(pos).d(world, pos); } + return new BoundingBox(aabb.a, aabb.b, aabb.c, aabb.d, aabb.e, aabb.f); } @@ -553,12 +571,15 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { return null; } + } + try { return (GameProfile) SKULL_PROFILE_FIELD.get(meta); } catch (Exception e) { return null; } + } @Override @@ -571,6 +592,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { throw new CommandException(Messages.INVALID_SOUND); } + } @Override @@ -586,6 +608,7 @@ public class NMSImpl implements NMSBridge { EntityLiving handle = NMSImpl.getHandle((LivingEntity) npc.getEntity()); if (handle == null) { } + return DEFAULT_SPEED; // return (float) // handle.getAttributeInstance(GenericAttributes.d).getValue(); @@ -629,7 +652,9 @@ public class NMSImpl implements NMSBridge { } else { ((EntityInsentient) raw).a(PathType.WATER, oldWater + 1F); } + } + navigation.q().b(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; @@ -653,7 +678,9 @@ public class NMSImpl implements NMSBridge { } else { ((EntityInsentient) raw).a(PathType.WATER, oldWater); } + } + stopNavigation(navigation); } @@ -665,13 +692,16 @@ public class NMSImpl implements NMSBridge { if (handle instanceof EntityHorse) { handle.width = Math.min(0.99f, oldWidth); } + if (!function.apply(navigation)) { reason = CancelReason.STUCK; } + handle.width = oldWidth; // minecraft requires that an entity fit onto both blocks if width >= 1f, // but we'd prefer to make it just fit on 1 so hack around it a bit. lastSpeed = params.speed(); } + navigation.a(params.speed()); return NMSImpl.isNavigationFinished(navigation); } @@ -836,30 +866,37 @@ public class NMSImpl implements NMSBridge { if (zDiff < 0.0) { yaw += Math.abs(180 - yaw) * 2; } + if (handle instanceof EntityEnderDragon) { yaw = Util.getDragonYaw(handle.getBukkitEntity(), xDiff, zDiff); } else { yaw = yaw - 90; } + if (headOnly) { setHeadYaw(entity, (float) yaw); } else { look(entity, (float) yaw, (float) pitch); } + return; } + if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(to.getX(), to.getY(), to.getZ(), ((EntityInsentient) handle).cJ(), ((EntityInsentient) handle).N()); while (((EntityInsentient) handle).aQ >= 180F) { ((EntityInsentient) handle).aQ -= 360F; } + while (((EntityInsentient) handle).aQ < -180F) { ((EntityInsentient) handle).aQ += 360F; } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -872,18 +909,22 @@ public class NMSImpl implements NMSBridge { } else { look(from, to.getLocation(), false, true); } + } else if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(target, ((EntityInsentient) handle).cJ(), ((EntityInsentient) handle).N()); while (((EntityLiving) handle).aQ >= 180F) { ((EntityLiving) handle).aQ -= 360F; } + while (((EntityLiving) handle).aQ < -180F) { ((EntityLiving) handle).aQ += 360F; } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -923,7 +964,9 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return super.getBukkitView(); } + } + return this.bukkitEntity; } }; @@ -969,6 +1012,7 @@ public class NMSImpl implements NMSBridge { if (entity1.dead || !entity1.w(entity)) { entity.stopRiding(); } + } else { if (!entity.dead) { try { @@ -979,17 +1023,22 @@ public class NMSImpl implements NMSBridge { entity.appendEntityCrashDetails(crashreportsystemdetails); throw new ReportedException(crashreport); } + } + if (entity.dead) { entity.world.removeEntity(entity); } else if (!removeFromPlayerList) { if (!entity.world.players.contains(entity)) { entity.world.players.add(entity); } + } else { entity.world.players.remove(entity); } + } + }; } @@ -1002,11 +1051,13 @@ public class NMSImpl implements NMSBridge { if (!ENTITY_CLASS_TO_INT.containsKey(search)) { continue; } + int code = ENTITY_CLASS_TO_INT.get(search); ENTITY_CLASS_TO_INT.put(clazz, code); ENTITY_CLASS_TO_NAME.put(clazz, ENTITY_CLASS_TO_NAME.get(search)); return; } + throw new IllegalArgumentException("unable to find valid entity superclass for class " + clazz.toString()); } @@ -1045,6 +1096,7 @@ public class NMSImpl implements NMSBridge { hook.hooked = null; hook.getBukkitEntity().remove(); } + } @Override @@ -1066,10 +1118,13 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } + if (getHandle(entity) instanceof EntityHumanNPC) { ((EntityHumanNPC) getHandle(entity)).setTracked(); } + } @Override @@ -1079,9 +1134,11 @@ public class NMSImpl implements NMSBridge { if (bodyYaw == null) { bodyYaw = handle.yaw; } + if (pitch == null) { pitch = handle.pitch; } + List> toSend = Lists.newArrayList(); if (position) { EntityTrackerEntry entry = ((WorldServer) handle.world).getTracker().trackedEntities.get(handle.getId()); @@ -1094,15 +1151,18 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + toSend.add(new PacketPlayOutRelEntityMoveLook(handle.getId(), (short) dx, (short) dy, (short) dz, (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); } else { toSend.add(new PacketPlayOutEntityLook(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); } + if (headYaw != null) { toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F))); } + sendPacketsNearby(null, from.getLocation(), toSend, 64); } @@ -1126,6 +1186,7 @@ public class NMSImpl implements NMSBridge { entities[i] = (EntityPlayer) skinnable; i++; } + NMSImpl.sendPacket(recipient, new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, entities)); } @@ -1146,12 +1207,14 @@ public class NMSImpl implements NMSBridge { if (TEAM_FIELD == null) { TEAM_FIELD = NMS.getGetter(team.getClass(), "team"); } + try { ScoreboardTeam nmsTeam = (ScoreboardTeam) TEAM_FIELD.invoke(team); sendPacket(recipient, new PacketPlayOutScoreboardTeam(nmsTeam, mode)); } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1179,6 +1242,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).setMoveDestination(x, y, z, speed); } + } @Override @@ -1203,6 +1267,7 @@ public class NMSImpl implements NMSBridge { if (!(handle instanceof EntityHuman)) { handle.aO = yaw; } + handle.aQ = yaw; } @@ -1252,11 +1317,14 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { return; } + } + try { SKULL_PROFILE_FIELD.set(meta, profile); } catch (Exception e) { } + } @Override @@ -1270,6 +1338,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).setShouldJump(); } + } @Override @@ -1287,6 +1356,7 @@ public class NMSImpl implements NMSBridge { if (entity instanceof Player) { ((Player) entity).setSneaking(sneaking); } + } @Override @@ -1319,6 +1389,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + return false; } @@ -1356,6 +1427,7 @@ public class NMSImpl implements NMSBridge { facingByte = (byte) 3; break; } + Location bedLoc = loc.clone().add(0, -loc.getY(), 0); PacketPlayOutBed bed = new PacketPlayOutBed(from, new BlockPosition(bedLoc.getBlockX(), bedLoc.getBlockY(), bedLoc.getBlockZ())); @@ -1374,6 +1446,7 @@ public class NMSImpl implements NMSBridge { list.forEach(packet -> sendPacket(nearby, packet)); meta.set(nearby.getUniqueId(), entity.getUniqueId().toString(), System.currentTimeMillis()); } + } else { PacketPlayOutAnimation packet = new PacketPlayOutAnimation(from, 2); sendPacketNearby(entity, entity.getLocation(), packet, 64); @@ -1381,8 +1454,11 @@ public class NMSImpl implements NMSBridge { if (meta.remove(player.getUniqueId(), entity.getUniqueId().toString())) { sendPacket(player, packet); } + } + } + } @Override @@ -1398,6 +1474,7 @@ public class NMSImpl implements NMSBridge { if (RANDOM.nextFloat() <= 0.85F && (handle.ak() || handle.ao())) { handle.motY += power; } + } @Override @@ -1425,6 +1502,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { Messaging.logTr(Messages.ERROR_UPDATING_NAVIGATION_WORLD, e.getMessage()); } + } @Override @@ -1436,8 +1514,10 @@ public class NMSImpl implements NMSBridge { if (en instanceof EntityHumanNPC) { ((EntityHumanNPC) en).updatePathfindingRange(pathfindingRange); } + return; } + if (PATHFINDING_RANGE == null) return; EntityInsentient handle = (EntityInsentient) en; @@ -1450,6 +1530,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } private static class CitizensInventoryAnvil extends CraftInventoryAnvil implements ForwardingInventory { @@ -1558,6 +1639,7 @@ public class NMSImpl implements NMSBridge { living.setPosition(living.locX - 0.01, living.locY, living.locZ - 0.01); living.setPosition(living.locX + 0.01, living.locY, living.locZ + 0.01); } + } public static void clearGoals(PathfinderGoalSelector... goalSelectors) { @@ -1570,7 +1652,9 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } + } + } private static CompoundTag convertNBT(net.minecraft.server.v1_10_R1.NBTTagCompound tag) { @@ -1580,6 +1664,7 @@ public class NMSImpl implements NMSBridge { for (String key : tag.c()) { tags.put(key, convertNBT(key, tag.get(key))); } + return new CompoundTag("", tags); } @@ -1610,8 +1695,10 @@ public class NMSImpl implements NMSBridge { for (int i = 0; i < list.size(); i++) { converted.add(convertNBT("", list.get(i))); } + return new ListTag(key, tagType, converted); } + } else if (base instanceof net.minecraft.server.v1_10_R1.NBTTagCompound) return convertNBT((net.minecraft.server.v1_10_R1.NBTTagCompound) base); else if (base instanceof net.minecraft.server.v1_10_R1.NBTTagEnd) @@ -1630,13 +1717,16 @@ public class NMSImpl implements NMSBridge { if (f2 > 3.0F) { f2 = 3.0F; } + if (!entity.onGround) { f2 *= 0.5F; } + if (f2 > 0.0F) { f4 += (0.54600006F - f4) * f2 / 3.0F; f3 += (entity.cp() - f3) * f2 / 3.0F; } + entity.a(f, f1, f3); entity.move(entity.motX, entity.motY, entity.motZ); entity.motX *= f4; @@ -1645,10 +1735,12 @@ public class NMSImpl implements NMSBridge { if (!entity.isNoGravity()) { entity.motY -= 0.02D; } + if (entity.positionChanged && entity.c(entity.motX, entity.motY + 0.6000000238418579D - entity.locY + d1, entity.motZ)) { entity.motY = 0.30000001192092896D; } + } else if (entity.ao() && (!(entity instanceof EntityHuman) || !((EntityHuman) entity).abilities.isFlying)) { double d1 = entity.locY; @@ -1660,14 +1752,17 @@ public class NMSImpl implements NMSBridge { if (!entity.isNoGravity()) { entity.motY -= 0.02D; } + if (entity.positionChanged && entity.c(entity.motX, entity.motY + 0.6000000238418579D - entity.locY + d1, entity.motZ)) { entity.motY = 0.30000001192092896D; } + } else if (entity.cG()) { if (entity.motY > -0.5D) { entity.fallDistance = 1.0F; } + Vec3D vec3d = entity.aB(); float f5 = entity.pitch * 0.017453292F; double d0 = Math.sqrt(vec3d.x * vec3d.x + vec3d.z * vec3d.z); @@ -1682,16 +1777,19 @@ public class NMSImpl implements NMSBridge { entity.motX += vec3d.x * d4 / d0; entity.motZ += vec3d.z * d4 / d0; } + if (f5 < 0.0F) { double d4 = d2 * -MathHelper.sin(f5) * 0.04D; entity.motY += d4 * 3.2D; entity.motX -= vec3d.x * d4 / d0; entity.motZ -= vec3d.z * d4 / d0; } + if (d0 > 0.0D) { entity.motX += (vec3d.x / d0 * d2 - entity.motX) * 0.1D; entity.motZ += (vec3d.z / d0 * d2 - entity.motZ) * 0.1D; } + entity.motX *= 0.9900000095367432D; entity.motY *= 0.9800000190734863D; entity.motZ *= 0.9900000095367432D; @@ -1704,11 +1802,14 @@ public class NMSImpl implements NMSBridge { entity.a(entity.e((int) f7), 1.0F, 1.0F); entity.damageEntity(DamageSource.FLY_INTO_WALL, f7); } + } + if (entity.onGround && !entity.world.isClientSide && entity.getFlag(7) && !CraftEventFactory.callToggleGlideEvent(entity, false).isCancelled()) { entity.setFlag(7, false); } + } else { float f8 = 0.91F; BlockPosition.PooledBlockPosition blockposition_pooledblockposition = BlockPosition.PooledBlockPosition @@ -1716,6 +1817,7 @@ public class NMSImpl implements NMSBridge { if (entity.onGround) { f8 = entity.world.getType(blockposition_pooledblockposition).getBlock().frictionFactor * 0.91F; } + float f4 = 0.16277136F / (f8 * f8 * f8); float f3; if (entity.onGround) { @@ -1723,12 +1825,14 @@ public class NMSImpl implements NMSBridge { } else { f3 = entity.aS; } + entity.a(f, f1, f3); f8 = 0.91F; if (entity.onGround) { f8 = entity.world.getType(blockposition_pooledblockposition.e(entity.locX, entity.getBoundingBox().b - 1.0D, entity.locZ)).getBlock().frictionFactor * 0.91F; } + if (entity.m_()) { entity.motX = MathHelper.a(entity.motX, -0.15000000596046448D, 0.15000000596046448D); entity.motZ = MathHelper.a(entity.motZ, -0.15000000596046448D, 0.15000000596046448D); @@ -1736,15 +1840,19 @@ public class NMSImpl implements NMSBridge { if (entity.motY < -0.15D) { entity.motY = -0.15D; } + boolean flag = entity.isSneaking() && entity instanceof EntityHuman; if (flag && entity.motY < 0.0D) { entity.motY = 0.0D; } + } + entity.move(entity.motX, entity.motY, entity.motZ); if (entity.positionChanged && entity.m_()) { entity.motY = 0.2D; } + if (entity.hasEffect(MobEffects.LEVITATION)) { entity.motY += (0.05D * (entity.getEffect(MobEffects.LEVITATION).getAmplifier() + 1) - entity.motY) * 0.2D; @@ -1757,16 +1865,21 @@ public class NMSImpl implements NMSBridge { } else { entity.motY = 0.0D; } + } else if (!entity.isNoGravity()) { entity.motY -= 0.08D; } + } + entity.motY *= 0.9800000190734863D; entity.motX *= f8; entity.motZ *= f8; blockposition_pooledblockposition.t(); } + } + entity.aG = entity.aH; double d1 = entity.locX - entity.lastX; double d0 = entity.locZ - entity.lastZ; @@ -1774,6 +1887,7 @@ public class NMSImpl implements NMSBridge { if (f2 > 1.0F) { f2 = 1.0F; } + entity.aH += (f2 - entity.aH) * 0.4F; entity.aI += entity.aH; } @@ -1804,6 +1918,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + return null; } @@ -1825,6 +1940,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } public static boolean isLeashed(NPC npc, Supplier isLeashed, EntityInsentient entity) { @@ -1847,6 +1963,7 @@ public class NMSImpl implements NMSBridge { if (mat != null) { minecart.setDisplayBlock(Block.getById(mat.getId()).fromLegacyData(data)); } + minecart.setDisplayBlockOffset(offset); } @@ -1874,10 +1991,13 @@ public class NMSImpl implements NMSBridge { || location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) { continue; } + for (Packet packet : packets) { NMSImpl.sendPacket(player, packet); } + } + } public static void sendPacketsNearby(Player from, Location location, Packet... packets) { @@ -1890,6 +2010,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setSize(Entity entity, float f, float f1, boolean justCreated) { @@ -1903,7 +2024,9 @@ public class NMSImpl implements NMSBridge { if (entity.width > f2 && !justCreated && !entity.world.isClientSide) { entity.move((f2 - entity.width) / 2, 0.0D, (f2 - entity.width) / 2); } + } + } public static void stopNavigation(NavigationAbstract navigation) { @@ -1921,6 +2044,7 @@ public class NMSImpl implements NMSBridge { } else if (entity instanceof EntityHumanNPC) { ((EntityHumanNPC) entity).updateAI(); } + } public static void updateNavigation(NavigationAbstract navigation) { @@ -1974,6 +2098,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage()); } + try { MAKE_REQUEST = YggdrasilAuthenticationService.class.getDeclaredMethod("makeRequest", URL.class, Object.class, Class.class); @@ -1981,6 +2106,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception ex) { ex.printStackTrace(); } + try { ENDERMAN_ANGRY = (DataWatcherObject) NMS.getField(EntityEnderman.class, "by").get(null); } catch (IllegalArgumentException e) { @@ -1988,5 +2114,6 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } } diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerAnimationImpl.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerAnimationImpl.java index 5b31b7184..7f956fee3 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerAnimationImpl.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerAnimationImpl.java @@ -21,6 +21,7 @@ public class PlayerAnimationImpl { playDefaultAnimation(player, to, DEFAULTS.get(animation)); return; } + switch (animation) { case SNEAK: player.getBukkitEntity().setSneaking(true); @@ -51,6 +52,7 @@ public class PlayerAnimationImpl { default: throw new UnsupportedOperationException(); } + } protected static void playDefaultAnimation(EntityPlayer player, Iterable to, int code) { @@ -62,6 +64,7 @@ public class PlayerAnimationImpl { for (Player player : to) { NMSImpl.sendPacket(player, packet); } + } private static EnumMap DEFAULTS = Maps.newEnumMap(PlayerAnimation.class); diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerControllerMove.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerControllerMove.java index ac5b91b70..fe9d73e60 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerControllerMove.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerControllerMove.java @@ -50,15 +50,18 @@ public class PlayerControllerMove extends ControllerMove { if (f3 > f2) { f3 = f2; } + if (f3 < -f2) { f3 = -f2; } + float f4 = f + f3; if (f4 < 0.0F) { f4 += 360.0F; } else if (f4 > 360.0F) { f4 -= 360.0F; } + return f4; } @@ -96,8 +99,11 @@ public class PlayerControllerMove extends ControllerMove { } else { ((EntityInsentient) this.a).getControllerJump().a(); } + } + } + } protected int cg() { diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerNavigation.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerNavigation.java index 8cb07324b..1b61ba843 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerNavigation.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerNavigation.java @@ -64,22 +64,27 @@ public class PlayerNavigation extends NavigationAbstract { while (localBlockPosition.getY() > 0 && this.b.getType(localBlockPosition).getMaterial() == Material.AIR) { localBlockPosition = localBlockPosition.down(); } + if (localBlockPosition.getY() > 0) return supera(localBlockPosition.up()); while (localBlockPosition.getY() < this.b.getHeight() && this.b.getType(localBlockPosition).getMaterial() == Material.AIR) { localBlockPosition = localBlockPosition.up(); } + paramBlockPosition = localBlockPosition; } + if (this.b.getType(paramBlockPosition).getMaterial().isBuildable()) { localBlockPosition = paramBlockPosition.up(); while (localBlockPosition.getY() < this.b.getHeight() && this.b.getType(localBlockPosition).getMaterial().isBuildable()) { localBlockPosition = localBlockPosition.up(); } + return a2(localBlockPosition); } + return a2(paramBlockPosition); } @@ -138,8 +143,11 @@ public class PlayerNavigation extends NavigationAbstract { || localPathType == PathType.DAMAGE_OTHER) return false; } + } + } + return true; } @@ -149,9 +157,11 @@ public class PlayerNavigation extends NavigationAbstract { this.c = null; return false; } + if (!paramPathEntity.a(this.c)) { this.c = paramPathEntity; } + d(); if (this.c.d() == 0) return false; @@ -168,9 +178,11 @@ public class PlayerNavigation extends NavigationAbstract { if (paramVec3D.distanceSquared(this.j) < 2.25D) { o(); } + this.i = this.h; this.j = paramVec3D; } + if (this.c != null && !this.c.b()) { Vec3D localVec3D = this.c.f(); if (!localVec3D.equals(this.k)) { @@ -180,14 +192,17 @@ public class PlayerNavigation extends NavigationAbstract { } else { this.l += System.currentTimeMillis() - this.m; } + if (this.n > 0.0D && this.l > this.n * 3.0D) { this.k = Vec3D.a; this.l = 0L; this.n = 0.0D; o(); } + this.m = System.currentTimeMillis(); } + } @Override @@ -215,9 +230,11 @@ public class PlayerNavigation extends NavigationAbstract { if (d1 >= 0.0D) { d7 += 1.0D; } + if (d2 >= 0.0D) { d8 += 1.0D; } + d7 /= d1; d8 /= d2; int k = d1 < 0.0D ? -1 : 1; @@ -236,9 +253,11 @@ public class PlayerNavigation extends NavigationAbstract { j += m; i3 = i1 - j; } + if (!a(i, (int) paramVec3D1.y, j, paramInt1, paramInt2, paramInt3, paramVec3D1, d1, d2)) return false; } + return true; } @@ -284,7 +303,9 @@ public class PlayerNavigation extends NavigationAbstract { if (!localBlock.b(this.b, localBlockPosition)) return false; } + } + return true; } @@ -313,8 +334,11 @@ public class PlayerNavigation extends NavigationAbstract { this.c.a(i + 1, ((PathPoint) localObject).a(((PathPoint) localObject).a, localPathPoint.b + 1, ((PathPoint) localObject).c)); } + } + } + if (this.f2) { if (this.b.h(new BlockPosition(MathHelper.floor(this.a.locX), (int) (this.a.getBoundingBox().b + 0.5D), MathHelper.floor(this.a.locZ)))) @@ -325,8 +349,11 @@ public class PlayerNavigation extends NavigationAbstract { this.c.b(i - 1); return; } + } + } + } public boolean f() { @@ -356,9 +383,11 @@ public class PlayerNavigation extends NavigationAbstract { this.q = this.b.getTime(); this.p = false; } + } else { this.p = true; } + } @Override @@ -372,6 +401,7 @@ public class PlayerNavigation extends NavigationAbstract { if (this.p) { j(); } + if (n()) return; if (b()) { @@ -384,7 +414,9 @@ public class PlayerNavigation extends NavigationAbstract { && MathHelper.floor(localVec3D.z) == MathHelper.floor(localObject.z)) { this.c.c(this.c.e() + 1); } + } + if (n()) return; Vec3D localVec3D = this.c.a(this.a); @@ -406,13 +438,16 @@ public class PlayerNavigation extends NavigationAbstract { i1 = i2; break; } + } + this.o = this.a.width > 0.75F ? this.a.width / 2.0F : 0.75F - this.a.width / 2.0F; Vec3D localVec3D2 = this.c.f(); if (MathHelper.e((float) (this.a.locX - (localVec3D2.x + 0.5D))) < this.o && MathHelper.e((float) (this.a.locZ - (localVec3D2.z + 0.5D))) < this.o) { this.c.c(this.c.e() + 1); } + int i3 = MathHelper.f(this.a.width); int i4 = (int) this.a.length + 1; int i5 = i3; @@ -421,7 +456,9 @@ public class PlayerNavigation extends NavigationAbstract { this.c.c(i6); break; } + } + a(localVec3D1); } @@ -456,6 +493,7 @@ public class PlayerNavigation extends NavigationAbstract { if (j > 16) return (int) this.a.getBoundingBox().b; } + return i; } diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerPathfinder.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerPathfinder.java index e4b7b1fae..444fd4782 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerPathfinder.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerPathfinder.java @@ -51,6 +51,7 @@ public class PlayerPathfinder { i++; localPathPoint = localPathPoint.h; } + PathPoint[] arrayOfPathPoint = new PathPoint[i]; localPathPoint = paramPathPoint2; arrayOfPathPoint[--i] = localPathPoint; @@ -58,6 +59,7 @@ public class PlayerPathfinder { localPathPoint = localPathPoint.h; arrayOfPathPoint[--i] = localPathPoint; } + return new PathEntity(arrayOfPathPoint); } @@ -75,14 +77,17 @@ public class PlayerPathfinder { if (i >= 2000) { break; } + PathPoint localObject2 = this.a.c(); if (localObject2.equals(paramPathPoint2)) { localObject1 = paramPathPoint2; break; } + if (localObject2.c(paramPathPoint2) < ((PathPoint) localObject1).c(paramPathPoint2)) { localObject1 = localObject2; } + localObject2.i = true; int j = this.d.a(this.c, localObject2, paramPathPoint2, paramFloat); for (int k = 0; k < j; k++) { @@ -101,9 +106,13 @@ public class PlayerPathfinder { localPathPoint.g = localPathPoint.e + localPathPoint.f; this.a.a(localPathPoint); } + } + } + } + if (localObject1 == paramPathPoint1) return null; Object localObject2 = a(paramPathPoint1, (PathPoint) localObject1); diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerPathfinderAbstract.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerPathfinderAbstract.java index ea77d3a68..878982a9e 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerPathfinderAbstract.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerPathfinderAbstract.java @@ -56,6 +56,7 @@ public abstract class PlayerPathfinderAbstract extends PathfinderAbstract { localPathPoint = new PathPoint(paramInt1, paramInt2, paramInt3); this.c.a(j, localPathPoint); } + return localPathPoint; } diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerPathfinderNormal.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerPathfinderNormal.java index 592eb5cf4..d839490ad 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerPathfinderNormal.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerPathfinderNormal.java @@ -61,10 +61,12 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { while (localPathType2 == PathType.OPEN && --paramInt2 >= 1) { localPathType2 = getPathTypeBase(paramIBlockAccess, paramInt1, paramInt2, paramInt3); } + localPathType1 = localPathType2 == PathType.WALKABLE || localPathType2 == PathType.OPEN || localPathType2 == PathType.WATER || localPathType2 == PathType.LAVA ? PathType.OPEN : PathType.WALKABLE; } + if (localPathType1 == PathType.WALKABLE) { for (int i = paramInt1 - 1; i <= paramInt1 + 1; i++) { for (int k = paramInt3 - 1; k <= paramInt3 + 1; k++) { @@ -75,10 +77,15 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { } else if (localBlock2 == Blocks.FIRE) { localPathType1 = PathType.DANGER_FIRE; } + } + } + } + } + return localPathType1; } @@ -97,9 +104,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localPathType2 == PathType.DOOR_WOOD_CLOSED && paramBoolean1 && paramBoolean2) { localPathType2 = PathType.WALKABLE; } + if (localPathType2 == PathType.DOOR_OPEN && !paramBoolean2) { localPathType2 = PathType.BLOCKED; } + if (localPathType2 == PathType.RAIL && !(paramIBlockAccess.getType(localBlockPosition) .getBlock() instanceof BlockMinecartTrackAbstract) @@ -107,20 +116,27 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { .getBlock() instanceof BlockMinecartTrackAbstract)) { localPathType2 = PathType.FENCE; } + if (i == paramInt1 && k == paramInt2 && m == paramInt3) { localObject1 = localPathType2; } + if (k > paramInt2 && localPathType2 != PathType.OPEN) { AxisAlignedBB localAxisAlignedBB = new AxisAlignedBB(i - d + 0.5D, paramInt2 + 0.001D, m - d + 0.5D, i + d + 0.5D, paramInt2 + paramEntityInsentient.length, m + d + 0.5D); if (!paramEntityInsentient.world.b(localAxisAlignedBB)) { localPathType2 = PathType.OPEN; } + } + localEnumSet.add(localPathType2); } + } + } + if (localEnumSet.contains(PathType.FENCE)) return PathType.FENCE; Object localObject2 = PathType.BLOCKED; @@ -130,7 +146,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (paramEntityInsentient.a(localPathType1) >= paramEntityInsentient.a((PathType) localObject2)) { localObject2 = localPathType1; } + } + if (localObject1 == PathType.OPEN && paramEntityInsentient.a((PathType) localObject2) == 0.0F) return PathType.OPEN; return (PathType) localObject2; @@ -151,9 +169,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localPathType2 == PathType.DOOR_WOOD_CLOSED && paramBoolean1 && paramBoolean2) { localPathType2 = PathType.WALKABLE; } + if (localPathType2 == PathType.DOOR_OPEN && !paramBoolean2) { localPathType2 = PathType.BLOCKED; } + if (localPathType2 == PathType.RAIL && !(paramIBlockAccess.getType(localBlockPosition) .getBlock() instanceof BlockMinecartTrackAbstract) @@ -161,20 +181,27 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { .getBlock() instanceof BlockMinecartTrackAbstract)) { localPathType2 = PathType.FENCE; } + if (i == paramInt1 && k == paramInt2 && m == paramInt3) { localObject1 = localPathType2; } + if (k > paramInt2 && localPathType2 != PathType.OPEN) { AxisAlignedBB localAxisAlignedBB = new AxisAlignedBB(i - d + 0.5D, paramInt2 + 0.001D, m - d + 0.5D, i + d + 0.5D, paramInt2 + paramEntityInsentient.length, m + d + 0.5D); if (!paramEntityInsentient.world.b(localAxisAlignedBB)) { localPathType2 = PathType.OPEN; } + } + localEnumSet.add(localPathType2); } + } + } + if (localEnumSet.contains(PathType.FENCE)) return PathType.FENCE; Object localObject2 = PathType.BLOCKED; @@ -184,7 +211,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (paramEntityInsentient.a(localPathType1) >= paramEntityInsentient.a((PathType) localObject2)) { localObject2 = localPathType1; } + } + if (localObject1 == PathType.OPEN && paramEntityInsentient.a((PathType) localObject2) == 0.0F) return PathType.OPEN; return (PathType) localObject2; @@ -206,6 +235,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { localPathPoint.m = localPathType; localPathPoint.l = Math.max(localPathPoint.l, f); } + if (localPathType == PathType.WALKABLE) return localPathPoint; if (localPathPoint == null && paramInt4 > 0 && localPathType != PathType.FENCE @@ -222,8 +252,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (this.b.world.b(localAxisAlignedBB3)) { localPathPoint = null; } + } + } + if (localPathType == 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); @@ -242,8 +275,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { localPathPoint.l = Math.max(localPathPoint.l, f); } else if (f < 0.0F) return null; + } + } + return localPathPoint; } @@ -256,6 +292,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (this.b.a(localPathType) >= 0.0F) { k = 1; } + BlockPosition localBlockPosition = new BlockPosition(paramPathPoint1.a, paramPathPoint1.b, paramPathPoint1.c) .down(); double d = paramPathPoint1.b - (1.0D - this.a.getType(localBlockPosition).c(this.a, localBlockPosition).e); @@ -270,15 +307,19 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localPathPoint1 != null && !localPathPoint1.i && localPathPoint1.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint1; } + if (localPathPoint2 != null && !localPathPoint2.i && localPathPoint2.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint2; } + if (localPathPoint3 != null && !localPathPoint3.i && localPathPoint3.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint3; } + if (localPathPoint4 != null && !localPathPoint4.i && localPathPoint4.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint4; } + int m = localPathPoint4 == null || localPathPoint4.m == PathType.OPEN || localPathPoint4.l != 0.0F ? 1 : 0; int n = localPathPoint1 == null || localPathPoint1.m == PathType.OPEN || localPathPoint1.l != 0.0F ? 1 : 0; int i1 = localPathPoint3 == null || localPathPoint3.m == PathType.OPEN || localPathPoint3.l != 0.0F ? 1 : 0; @@ -290,28 +331,36 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localPathPoint5 != null && !localPathPoint5.i && localPathPoint5.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint5; } + } + if (m != 0 && i1 != 0) { localPathPoint5 = a(paramPathPoint1.a + 1, paramPathPoint1.b, paramPathPoint1.c - 1, k, d, EnumDirection.NORTH); if (localPathPoint5 != null && !localPathPoint5.i && localPathPoint5.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint5; } + } + if (n != 0 && i2 != 0) { localPathPoint5 = a(paramPathPoint1.a - 1, paramPathPoint1.b, paramPathPoint1.c + 1, k, d, EnumDirection.SOUTH); if (localPathPoint5 != null && !localPathPoint5.i && localPathPoint5.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint5; } + } + if (n != 0 && i1 != 0) { localPathPoint5 = a(paramPathPoint1.a + 1, paramPathPoint1.b, paramPathPoint1.c + 1, k, d, EnumDirection.SOUTH); if (localPathPoint5 != null && !localPathPoint5.i && localPathPoint5.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint5; } + } + return i; } @@ -330,16 +379,19 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { MathHelper.floor(this.b.locZ)); localObject2 = this.a.getType(localObject1).getBlock(); } + } else if (!this.b.onGround) { localObject1 = new BlockPosition(this.b); while ((this.a.getType(localObject1).getMaterial() == Material.AIR || this.a.getType(localObject1).getBlock().b(this.a, localObject1)) && localObject1.getY() > 0) { localObject1 = localObject1.down(); } + i = localObject1.up().getY(); } else { i = MathHelper.floor(this.b.getBoundingBox().b + 0.5D); } + localObject1 = new BlockPosition(this.b); Object localObject2 = a(this.b, localObject1.getX(), i, localObject1.getZ()); if (this.b.a((PathType) localObject2) < 0.0F) { @@ -353,7 +405,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (this.b.a(localPathType) >= 0.0F) return a(localBlockPosition.getX(), localBlockPosition.getY(), localBlockPosition.getZ()); } + } + return a(localObject1.getX(), i, localObject1.getZ()); } @@ -390,9 +444,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localMaterial == Material.LAVA) return PathType.LAVA; } + if (localBlock1.b(paramIBlockAccess, localBlockPosition) && localPathType1 == PathType.BLOCKED) { localPathType1 = PathType.OPEN; } + return localPathType1; } } diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerlistTrackerEntry.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerlistTrackerEntry.java index 5d204eee0..0281fe2c5 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerlistTrackerEntry.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerlistTrackerEntry.java @@ -59,7 +59,9 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { Bukkit.getPluginManager().callEvent( new NPCLinkToPlayerEvent(((NPCHolder) tracker).getNPC(), entityplayer.getBukkitEntity())); } + } + } private static int getE(EntityTrackerEntry entry) { @@ -73,6 +75,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return 0; } @@ -84,6 +87,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return 0; } @@ -95,6 +99,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return 0; } @@ -106,6 +111,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return null; } @@ -117,6 +123,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return false; } diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ArmorStandController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ArmorStandController.java index 891c9359f..b15e7fb65 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ArmorStandController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/ArmorStandController.java @@ -80,6 +80,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -90,6 +91,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class ArmorStandController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -110,6 +113,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ArmorStandNPC(this); } + return super.getBukkitEntity(); } 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 db3b9fd11..8339d605e 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 @@ -58,6 +58,7 @@ public class BatController extends MobEntityController { if (npc != null) { setAsleep(false); } + } @Override @@ -99,6 +100,7 @@ public class BatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +114,7 @@ public class BatController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -124,6 +127,7 @@ public class BatController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BatNPC(this); } + return super.getBukkitEntity(); } @@ -142,6 +146,7 @@ public class BatController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -152,6 +157,7 @@ public class BatController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } } } \ No newline at end of file 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 254d2a5e1..f249857e8 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 @@ -96,6 +96,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -109,6 +110,7 @@ public class BlazeController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -121,6 +123,7 @@ public class BlazeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BlazeNPC(this); } + return super.getBukkitEntity(); } @@ -139,6 +142,7 @@ public class BlazeController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -146,6 +150,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { npc.update(); } + } } } \ No newline at end of file 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 f05fd7d86..ef4d1b1b5 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 @@ -69,6 +69,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -105,6 +106,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -117,6 +119,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -125,6 +128,7 @@ public class CaveSpiderController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +138,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +151,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CaveSpiderNPC(this); } + return super.getBukkitEntity(); } @@ -164,6 +170,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -172,6 +179,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -189,6 +197,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 c9f0979c7..8d68eaa8a 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 @@ -70,6 +70,7 @@ public class ChickenController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -78,6 +79,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -114,6 +116,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -126,6 +129,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -134,6 +138,7 @@ public class ChickenController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -143,6 +148,7 @@ public class ChickenController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -155,6 +161,7 @@ public class ChickenController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ChickenNPC(this); } + return super.getBukkitEntity(); } @@ -173,6 +180,7 @@ public class ChickenController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -181,6 +189,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -196,6 +205,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { this.bC = 100; // egg timer } + super.n(); } } 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 77756eb9d..c0c231f34 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 @@ -74,6 +74,7 @@ public class CowController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -82,6 +83,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -128,6 +130,7 @@ public class CowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +143,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -148,6 +152,7 @@ public class CowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -157,6 +162,7 @@ public class CowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -169,6 +175,7 @@ public class CowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CowNPC(this); } + return super.getBukkitEntity(); } @@ -187,6 +194,7 @@ public class CowController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -195,6 +203,7 @@ public class CowController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 7befab05c..dd5746f37 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 @@ -72,6 +72,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -108,6 +109,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -120,6 +122,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isProtected()) { super.dk(); } + } @Override @@ -127,6 +130,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -135,6 +139,7 @@ public class CreeperController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +149,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -156,6 +162,7 @@ public class CreeperController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CreeperNPC(this); } + return super.getBukkitEntity(); } @@ -174,6 +181,7 @@ public class CreeperController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -182,6 +190,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -197,6 +206,7 @@ public class CreeperController extends MobEntityController { if (npc == null || allowPowered) { super.onLightningStrike(entitylightning); } + } public void setAllowPowered(boolean allowPowered) { @@ -210,6 +220,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 2a3071a34..78e728384 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 @@ -103,6 +103,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -122,6 +123,7 @@ public class EnderDragonController extends MobEntityController { motY = old.y; motZ = old.z; } + return res; } @@ -131,6 +133,7 @@ public class EnderDragonController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -143,6 +146,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderDragonNPC(this); } + return super.getBukkitEntity(); } @@ -161,6 +165,7 @@ public class EnderDragonController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -168,16 +173,19 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { npc.update(); } + if (npc != null) { if (getDragonControllerManager().a().getControllerPhase() == DragonControllerPhase.j) { setHealth(0F); return; } + if (this.c < 0) { for (int i = 0; i < this.b.length; ++i) { this.b[i][0] = this.yaw; this.b[i][1] = this.locY; } + } if (++this.c == this.b.length) { @@ -200,6 +208,7 @@ public class EnderDragonController extends MobEntityController { if (getBukkitEntity().getPassenger() != null) { yaw = getBukkitEntity().getPassenger().getLocation().getYaw() - 180; } + if (motX != 0 || motY != 0 || motZ != 0) { motX *= 0.98; motY *= 0.98; @@ -207,6 +216,7 @@ public class EnderDragonController extends MobEntityController { if (getBukkitEntity().getPassenger() == null) { yaw = Util.getDragonYaw(getBukkitEntity(), motX, motZ); } + setPosition(locX + motX, locY + motY, locZ + motZ); } @@ -219,8 +229,11 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + } + } + if (npc.data().get(NPC.Metadata.COLLIDABLE, false)) { try { KNOCKBACK.invoke(this, this.world.getEntities(this, @@ -234,10 +247,13 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable t) { t.printStackTrace(); } + } + } else { super.n(); } + } private static final MethodHandle HURT = NMS.getMethodHandle(EntityEnderDragon.class, "b", true, 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 197abcd34..14ba8afac 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 @@ -69,6 +69,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -105,6 +106,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -117,6 +119,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -125,6 +128,7 @@ public class EndermanController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +138,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +151,7 @@ public class EndermanController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EndermanNPC(this); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class EndermanController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -179,6 +186,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -196,6 +204,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 dbdce4fb3..4d33803b6 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 @@ -69,6 +69,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -105,6 +106,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -117,6 +119,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -125,6 +128,7 @@ public class EndermiteController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +138,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +151,7 @@ public class EndermiteController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EndermiteNPC(this); } + return super.getBukkitEntity(); } @@ -164,6 +170,7 @@ public class EndermiteController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -172,6 +179,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -189,6 +197,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java index c5a48dcb0..2d0cd5725 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java @@ -86,6 +86,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { skinTracker = null; } + } @Override @@ -93,6 +94,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -140,6 +142,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -152,6 +155,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable velocityChanged = false; Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), () -> EntityHumanNPC.this.velocityChanged = true); } + return damaged; } @@ -162,7 +166,14 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (dead) return; super.die(damagesource); - Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), () -> world.removeEntity(EntityHumanNPC.this), 15); // give enough time for death and smoke animation + Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), () -> world.removeEntity(EntityHumanNPC.this), 15); // give + // enough + // time + // for + // death + // and + // smoke + // animation } @Override @@ -170,6 +181,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -178,6 +190,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -187,6 +200,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -194,6 +208,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PlayerNPC(this); } + return super.getBukkitEntity(); } @@ -227,6 +242,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (skinName == null) { skinName = npc.getName(); } + return skinName.toLowerCase(); } @@ -250,10 +266,12 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } catch (IOException e) { // swallow } + AttributeInstance range = getAttributeInstance(GenericAttributes.FOLLOW_RANGE); if (range == null) { range = getAttributeMap().b(GenericAttributes.FOLLOW_RANGE); } + range.setValue(Setting.DEFAULT_PATHFINDING_RANGE.asDouble()); controllerJump = new PlayerControllerJump(this); controllerMove = new PlayerControllerMove(this); @@ -287,9 +305,11 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable cm(); jumpTicks = 10; } + } else { jumpTicks = 0; } + be *= 0.98F; bf *= 0.98F; bg *= 0.9F; @@ -298,6 +318,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (jumpTicks > 0) { jumpTicks--; } + } private void moveWithFallDamage(float mx, float my) { @@ -306,6 +327,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (!npc.isProtected()) { a(this.locY - y, onGround); } + } @Override @@ -314,6 +336,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable super.playerTick(); return; } + cA(); boolean navigating = npc.getNavigator().isNavigating(); if (!navigating && getBukkitEntity() != null @@ -322,15 +345,19 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable && (!npc.isProtected() || SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld()))) { moveWithFallDamage(0, 0); } + if (Math.abs(motX) < EPSILON && Math.abs(motY) < EPSILON && Math.abs(motZ) < EPSILON) { motX = motY = motZ = 0; } + if (navigating) { if (!NMSImpl.isNavigationFinished(navigation)) { NMSImpl.updateNavigation(navigation); } + moveOnCurrentHeading(); } + updateAI(); ct(); if (npc.data().get(NPC.Metadata.PICKUP_ITEMS, false)) { @@ -340,12 +367,16 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { axisalignedbb = this.getBoundingBox().grow(1.0, 0.5, 1.0); } + for (Entity entity : this.world.getEntities(this, axisalignedbb)) { if (!entity.dead) { entity.d(this); } + } + } + } public void setMoveDestination(double x, double y, double z, double speed) { @@ -405,9 +436,12 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (equipment != null && !equipment.isEmpty()) { this.getAttributeMap().b(equipment.a(slot)); } + } + equipmentCache.put(slot, equipment); } + if (!itemChanged) return; Location current = getBukkitEntity().getLocation(packetLocationCache); @@ -416,6 +450,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable for (EnumItemSlot slot : EnumItemSlot.values()) { packets[i++] = new PacketPlayOutEntityEquipment(getId(), slot, getEquipment(slot)); } + NMSImpl.sendPacketsNearby(getBukkitEntity(), current, packets); } 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 a7f1c9909..06b1b3c9a 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 @@ -55,6 +55,7 @@ public class EvokerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class EvokerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class EvokerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class EvokerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class EvokerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class EvokerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EvokerNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class EvokerController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class EvokerController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 8f22c4208..2387aa7e6 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 @@ -82,6 +82,7 @@ public class GhastController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -100,6 +101,7 @@ public class GhastController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +114,7 @@ public class GhastController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GhastNPC(this); } + return super.getBukkitEntity(); } @@ -130,6 +133,7 @@ public class GhastController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -137,6 +141,7 @@ public class GhastController extends MobEntityController { if (npc != null) { npc.update(); } + super.M(); } } 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 1b350b87a..a10b4b906 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 @@ -55,6 +55,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class GiantController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class GiantController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class GiantController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GiantNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class GiantController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class GiantController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 5fd8c3b74..f5ccd6b97 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 @@ -55,6 +55,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class GuardianController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class GuardianController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class GuardianController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GuardianNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class GuardianController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -168,6 +175,7 @@ public class GuardianController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } @Override @@ -177,6 +185,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 0eb6d1ccc..1f935aafe 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 @@ -55,6 +55,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class GuardianElderController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GuardianElderNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -168,6 +175,7 @@ public class GuardianElderController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } @Override @@ -177,6 +185,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 f0c02d44f..346519a1c 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 @@ -60,6 +60,7 @@ public class HorseController extends MobEntityController { ((Horse) getBukkitEntity()).setDomestication(((Horse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -73,6 +74,7 @@ public class HorseController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -81,6 +83,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -117,6 +120,7 @@ public class HorseController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +133,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -137,6 +142,7 @@ public class HorseController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -146,6 +152,7 @@ public class HorseController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -158,6 +165,7 @@ public class HorseController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseNPC(this); } + return super.getBukkitEntity(); } @@ -176,6 +184,7 @@ public class HorseController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -189,12 +198,15 @@ public class HorseController extends MobEntityController { } else { riding = false; } + if (riding) { c(4, true); } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 5e3da4e2d..d20a980bc 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 @@ -62,6 +62,7 @@ public class HorseDonkeyController extends MobEntityController { .setDomestication(((AbstractHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -75,6 +76,7 @@ public class HorseDonkeyController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -83,6 +85,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -119,6 +122,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -131,6 +135,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -139,6 +144,7 @@ public class HorseDonkeyController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -148,6 +154,7 @@ public class HorseDonkeyController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -160,6 +167,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseDonkeyNPC(this); } + return super.getBukkitEntity(); } @@ -178,6 +186,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -191,12 +200,15 @@ public class HorseDonkeyController extends MobEntityController { } else { riding = false; } + if (riding) { c(4, true); } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 64ff61f4b..d37d1d8c7 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 @@ -62,6 +62,7 @@ public class HorseMuleController extends MobEntityController { .setDomestication(((AbstractHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -75,6 +76,7 @@ public class HorseMuleController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -83,6 +85,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -119,6 +122,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -131,6 +135,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -139,6 +144,7 @@ public class HorseMuleController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -148,6 +154,7 @@ public class HorseMuleController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -160,6 +167,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseMuleNPC(this); } + return super.getBukkitEntity(); } @@ -178,6 +186,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -191,12 +200,15 @@ public class HorseMuleController extends MobEntityController { } else { riding = false; } + if (riding) { c(4, true); } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 f3511b37d..babeac3e0 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 @@ -62,6 +62,7 @@ public class HorseSkeletonController extends MobEntityController { .setDomestication(((AbstractHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -75,6 +76,7 @@ public class HorseSkeletonController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -83,6 +85,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -119,6 +122,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -131,6 +135,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -139,6 +144,7 @@ public class HorseSkeletonController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -148,6 +154,7 @@ public class HorseSkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -160,6 +167,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseSkeletonNPC(this); } + return super.getBukkitEntity(); } @@ -178,6 +186,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -191,12 +200,15 @@ public class HorseSkeletonController extends MobEntityController { } else { riding = false; } + if (riding) { c(4, true); } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 a91de8e32..26af7fe3f 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 @@ -62,6 +62,7 @@ public class HorseZombieController extends MobEntityController { .setDomestication(((AbstractHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -75,6 +76,7 @@ public class HorseZombieController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -83,6 +85,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -119,6 +122,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -131,6 +135,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -139,6 +144,7 @@ public class HorseZombieController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -148,6 +154,7 @@ public class HorseZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -160,6 +167,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseZombieNPC(this); } + return super.getBukkitEntity(); } @@ -178,6 +186,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -191,12 +200,15 @@ public class HorseZombieController extends MobEntityController { } else { riding = false; } + if (riding) { c(4, true); } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HumanController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HumanController.java index 3f2969516..7a5b74889 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HumanController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HumanController.java @@ -35,9 +35,11 @@ public class HumanController extends AbstractEntityController { if (npc.requiresNameHologram()) { name = teamName; } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } + final GameProfile profile = new GameProfile(uuid, name); final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile, new PlayerInteractManager(nmsWorld), npc); @@ -45,6 +47,7 @@ public class HumanController extends AbstractEntityController { if (skin != null) { skin.apply(handle); } + Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> { if (getBukkitEntity() == null || !getBukkitEntity().isValid() || getBukkitEntity() != handle.getBukkitEntity()) 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 a7394cdb2..96d4e8fcd 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 @@ -55,6 +55,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class IronGolemController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class IronGolemController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new IronGolemNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class IronGolemController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 8e4fc7451..abe24ee0e 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 @@ -54,6 +54,7 @@ public class LlamaController extends MobEntityController { if (npc != null) { ((Llama) getBukkitEntity()).setDomestication(((Llama) getBukkitEntity()).getMaxDomestication()); } + } @Override @@ -67,6 +68,7 @@ public class LlamaController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -75,6 +77,7 @@ public class LlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -111,6 +114,7 @@ public class LlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -123,6 +127,7 @@ public class LlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -131,6 +136,7 @@ public class LlamaController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -140,6 +146,7 @@ public class LlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -152,6 +159,7 @@ public class LlamaController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LlamaNPC(this); } + return super.getBukkitEntity(); } @@ -170,6 +178,7 @@ public class LlamaController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -180,6 +189,7 @@ public class LlamaController extends MobEntityController { NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 d4c83b1a1..f9b6f1d11 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 @@ -49,6 +49,7 @@ public class MagmaCubeController extends MobEntityController { setSize(3, true); this.moveController = new PlayerControllerMove(this); } + } @Override @@ -61,6 +62,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -75,6 +77,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -105,6 +108,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +116,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.d(human); } + } @Override @@ -124,6 +129,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -132,6 +138,7 @@ public class MagmaCubeController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -141,6 +148,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -153,6 +161,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MagmaCubeNPC(this); } + return super.getBukkitEntity(); } @@ -171,6 +180,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -188,6 +198,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MobEntityController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MobEntityController.java index ac5824c27..150debb86 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MobEntityController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MobEntityController.java @@ -34,6 +34,7 @@ public abstract class MobEntityController extends AbstractEntityController { if (entity instanceof EntityInsentient) { NMSImpl.clearGoals(((EntityInsentient) entity).goalSelector, ((EntityInsentient) entity).targetSelector); } + entity.setPositionRotation(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch()); if (npc != null) { // entity.onGround isn't updated right away - we approximate here so @@ -42,15 +43,19 @@ public abstract class MobEntityController extends AbstractEntityController { if (beneath.isSolid()) { entity.onGround = true; } + try { UUID_FIELD.invoke(entity, npc.getUniqueId()); } catch (Throwable e) { e.printStackTrace(); } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } + } + return entity.getBukkitEntity(); } @@ -61,6 +66,7 @@ public abstract class MobEntityController extends AbstractEntityController { ex.printStackTrace(); return null; } + } private static Constructor getConstructor(Class clazz) { @@ -73,6 +79,7 @@ public abstract class MobEntityController extends AbstractEntityController { } catch (Exception ex) { throw new IllegalStateException("unable to find an entity constructor"); } + } private static final Map, Constructor> CONSTRUCTOR_CACHE = new WeakHashMap<>(); 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 1cf8fb1cb..566b9a2c0 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 @@ -58,6 +58,7 @@ public class MushroomCowController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -66,6 +67,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -109,6 +111,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,6 +124,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -129,6 +133,7 @@ public class MushroomCowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -138,6 +143,7 @@ public class MushroomCowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -150,6 +156,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MushroomCowNPC(this); } + return super.getBukkitEntity(); } @@ -168,6 +175,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -176,6 +184,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 2a447fd99..2c865de7b 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 @@ -56,6 +56,7 @@ public class OcelotController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -64,6 +65,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -100,6 +102,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +115,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.di(); } + } @Override @@ -119,6 +123,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -127,6 +132,7 @@ public class OcelotController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -136,6 +142,7 @@ public class OcelotController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -148,6 +155,7 @@ public class OcelotController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new OcelotNPC(this); } + return super.getBukkitEntity(); } @@ -166,6 +174,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -174,6 +183,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 71cba4d9b..76aa76112 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 @@ -57,6 +57,7 @@ public class PigController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -65,6 +66,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -101,6 +103,7 @@ public class PigController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -119,6 +122,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -127,6 +131,7 @@ public class PigController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -136,6 +141,7 @@ public class PigController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -148,6 +154,7 @@ public class PigController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PigNPC(this); } + return super.getBukkitEntity(); } @@ -166,6 +173,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -174,6 +182,7 @@ public class PigController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -189,6 +198,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } } 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 646e95ac4..b3e5802f5 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 @@ -55,6 +55,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class PigZombieController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class PigZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class PigZombieController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PigZombieNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class PigZombieController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 e27f6b3b3..79b51a46b 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 @@ -54,6 +54,7 @@ public class PolarBearController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -91,6 +92,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -104,6 +106,7 @@ public class PolarBearController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -116,6 +119,7 @@ public class PolarBearController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PolarBearNPC(this); } + return super.getBukkitEntity(); } @@ -134,6 +138,7 @@ public class PolarBearController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -142,6 +147,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { npc.update(); } + } } 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 7df8c909e..192142a41 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 @@ -57,6 +57,7 @@ public class RabbitController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -65,6 +66,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -101,6 +103,7 @@ public class RabbitController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -113,6 +116,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -121,6 +125,7 @@ public class RabbitController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -130,6 +135,7 @@ public class RabbitController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -142,6 +148,7 @@ public class RabbitController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new RabbitNPC(this); } + return super.getBukkitEntity(); } @@ -165,6 +172,7 @@ public class RabbitController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -176,6 +184,7 @@ public class RabbitController extends MobEntityController { } else { super.M(); } + } @Override @@ -194,6 +203,7 @@ public class RabbitController extends MobEntityController { this.datawatcher.set(NMSImpl.getRabbitTypeField(), i); return; } + super.setRabbitType(i); } } 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 608783d16..fccf80550 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 @@ -56,6 +56,7 @@ public class SheepController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -64,6 +65,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -100,6 +102,7 @@ public class SheepController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +115,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -120,6 +124,7 @@ public class SheepController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -129,6 +134,7 @@ public class SheepController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -141,6 +147,7 @@ public class SheepController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SheepNPC(this); } + return super.getBukkitEntity(); } @@ -159,6 +166,7 @@ public class SheepController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -167,6 +175,7 @@ public class SheepController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 43c0c19be..ea191459c 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 @@ -57,6 +57,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class ShulkerController extends MobEntityController { } else { super.A_(); } + } @Override @@ -102,6 +104,7 @@ public class ShulkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class ShulkerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -131,6 +136,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -143,6 +149,7 @@ public class ShulkerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ShulkerNPC(this); } + return super.getBukkitEntity(); } @@ -161,6 +168,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -176,6 +184,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.n(); } + } @Override @@ -194,6 +203,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 9e82978a6..f9c53f9c7 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 @@ -55,6 +55,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class SilverfishController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class SilverfishController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SilverfishNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class SilverfishController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 625669df8..ae7461274 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 @@ -55,6 +55,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class SkeletonController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class SkeletonController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SkeletonNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class SkeletonController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 5fcdd4ad5..0cf3288ee 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 @@ -55,6 +55,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class SkeletonStrayController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new StrayNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 690dfca55..b7923c76b 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 @@ -55,6 +55,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class SkeletonWitherController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SkeletonWitherNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 df7d5fbae..83a58d554 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 @@ -49,6 +49,7 @@ public class SlimeController extends MobEntityController { setSize(3, true); this.moveController = new PlayerControllerMove(this); } + } @Override @@ -61,6 +62,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -75,6 +77,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -105,6 +108,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +116,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.d(human); } + } @Override @@ -124,6 +129,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -132,6 +138,7 @@ public class SlimeController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -141,6 +148,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -153,6 +161,7 @@ public class SlimeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SlimeNPC(this); } + return super.getBukkitEntity(); } @@ -171,6 +180,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -188,6 +198,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 dec39bd97..e040be4ee 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 @@ -55,6 +55,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class SnowmanController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class SnowmanController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SnowmanNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class SnowmanController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 42c616a8e..6b71ee56c 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 @@ -55,6 +55,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class SpiderController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class SpiderController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SpiderNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class SpiderController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 1003b8e53..6bd8a2948 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 @@ -55,6 +55,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class SquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class SquidController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class SquidController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SquidNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class SquidController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -166,6 +173,7 @@ public class SquidController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 32902263a..a52726db0 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 @@ -44,6 +44,7 @@ public class VexController extends MobEntityController { if (npc != null) { setNoGravity(true); } + } @Override @@ -85,6 +86,7 @@ public class VexController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -98,6 +100,7 @@ public class VexController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -110,6 +113,7 @@ public class VexController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new VexNPC(this); } + return super.getBukkitEntity(); } @@ -128,6 +132,7 @@ public class VexController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -136,6 +141,7 @@ public class VexController extends MobEntityController { if (npc != null) { npc.update(); } + } } 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 46d0c8b35..992eec91b 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 @@ -64,6 +64,7 @@ public class VillagerController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -72,6 +73,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,7 +90,9 @@ public class VillagerController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.a(entityhuman, enumhand); } @@ -120,6 +124,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -133,6 +138,7 @@ public class VillagerController extends MobEntityController { blockingATrade = false; return true; } + return super.dk(); } @@ -141,6 +147,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -149,6 +156,7 @@ public class VillagerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -158,6 +166,7 @@ public class VillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -170,6 +179,7 @@ public class VillagerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new VillagerNPC(this); } + return super.getBukkitEntity(); } @@ -188,6 +198,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -196,6 +207,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -211,6 +223,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } } 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 b09a152c2..70416a7c3 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 @@ -56,6 +56,7 @@ public class VindicatorController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -64,6 +65,7 @@ public class VindicatorController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -100,6 +102,7 @@ public class VindicatorController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +115,7 @@ public class VindicatorController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -120,6 +124,7 @@ public class VindicatorController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -129,6 +134,7 @@ public class VindicatorController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -141,6 +147,7 @@ public class VindicatorController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new VindicatorNPC(this); } + return super.getBukkitEntity(); } @@ -159,6 +166,7 @@ public class VindicatorController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -167,6 +175,7 @@ public class VindicatorController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 344ecf792..1a9aaa445 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 @@ -55,6 +55,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class WitchController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class WitchController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class WitchController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitchNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class WitchController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class WitchController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -175,6 +183,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 3097a6952..0b4b2863a 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 @@ -82,6 +82,7 @@ public class WitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -101,6 +102,7 @@ public class WitherController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -113,6 +115,7 @@ public class WitherController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitherNPC(this); } + return super.getBukkitEntity(); } @@ -131,6 +134,7 @@ public class WitherController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -145,6 +149,7 @@ public class WitherController extends MobEntityController { } else { npc.update(); } + } } 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 948d5e61e..826761bd3 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 @@ -58,6 +58,7 @@ public class WolfController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -66,6 +67,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -102,6 +104,7 @@ public class WolfController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class WolfController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -131,6 +136,7 @@ public class WolfController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -143,6 +149,7 @@ public class WolfController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WolfNPC(this); } + return super.getBukkitEntity(); } @@ -161,6 +168,7 @@ public class WolfController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -169,6 +177,7 @@ public class WolfController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 eaaa9b01c..fd74224fa 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 @@ -55,6 +55,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class ZombieController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class ZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class ZombieController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ZombieNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class ZombieController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 59772c555..296c78ddb 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 @@ -55,6 +55,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class ZombieHuskController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class ZombieHuskController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ZombieHuskNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 1b32deea8..adec55471 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 @@ -55,6 +55,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class ZombieVillagerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -120,6 +124,7 @@ public class ZombieVillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -132,6 +137,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ZombieVillagerNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +156,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -158,6 +165,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 7b1838d9a..6f9ed5951 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 @@ -66,6 +66,7 @@ public class AreaEffectCloudController extends MobEntityController { } else { super.A_(); } + } @Override @@ -76,6 +77,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -89,6 +91,7 @@ public class AreaEffectCloudController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -96,6 +99,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new AreaEffectCloudNPC(this); } + return super.getBukkitEntity(); } 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 da0d445f7..18920c334 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 @@ -67,6 +67,7 @@ public class BoatController extends MobEntityController { } else { super.A_(); } + } @Override @@ -77,6 +78,7 @@ public class BoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class BoatController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -97,6 +100,7 @@ public class BoatController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BoatNPC(this); } + return super.getBukkitEntity(); } @@ -112,6 +116,7 @@ public class BoatController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 79eda0012..e60361d97 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 @@ -67,9 +67,11 @@ public class DragonFireballController extends MobEntityController { if (!npc.isProtected()) { super.A_(); } + } else { super.A_(); } + } @Override @@ -80,6 +82,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -93,6 +96,7 @@ public class DragonFireballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -100,6 +104,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new DragonFireballNPC(this); } + return super.getBukkitEntity(); } @@ -115,6 +120,7 @@ public class DragonFireballController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 697645ed5..80765bc45 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 @@ -82,9 +82,11 @@ public class EggController extends AbstractEntityController { if (!npc.isProtected()) { super.A_(); } + } else { super.A_(); } + } @Override @@ -95,6 +97,7 @@ public class EggController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -108,6 +111,7 @@ public class EggController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -115,6 +119,7 @@ public class EggController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EggNPC(this); } + return super.getBukkitEntity(); } 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 37d5e4bb9..d2a10e1c6 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 @@ -66,6 +66,7 @@ public class EnderCrystalController extends MobEntityController { } else { super.A_(); } + } @Override @@ -76,6 +77,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -89,6 +91,7 @@ public class EnderCrystalController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -96,6 +99,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderCrystalNPC(this); } + return super.getBukkitEntity(); } 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 fd28b49e3..04af34139 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 @@ -66,9 +66,11 @@ public class EnderPearlController extends MobEntityController { if (!npc.isProtected()) { super.A_(); } + } else { super.A_(); } + } @Override @@ -79,6 +81,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -92,6 +95,7 @@ public class EnderPearlController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +103,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderPearlNPC(this); } + return super.getBukkitEntity(); } 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 cd9bff49b..ddeeec8fd 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 @@ -66,6 +66,7 @@ public class EnderSignalController extends MobEntityController { } else { super.A_(); } + } @Override @@ -76,6 +77,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -89,6 +91,7 @@ public class EnderSignalController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -96,6 +99,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderSignalNPC(this); } + return super.getBukkitEntity(); } 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 902b40521..d7b2439e2 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 @@ -67,6 +67,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -77,6 +78,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class EvokerFangsController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -97,6 +100,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EvokerFangsNPC(this); } + return super.getBukkitEntity(); } 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 aa8840f7b..676750e04 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 @@ -52,6 +52,7 @@ public class ExperienceOrbController extends MobEntityController { } else { super.A_(); } + } @Override @@ -62,6 +63,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -75,6 +77,7 @@ public class ExperienceOrbController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +85,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ExperienceOrbNPC(this); } + return super.getBukkitEntity(); } 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 d8692b865..a399ebb73 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 @@ -78,9 +78,11 @@ public class FallingBlockController extends AbstractEntityController { motZ *= 0.98; move(EnumMoveType.SELF, motX, motY, motZ); } + } else { super.A_(); } + } @Override @@ -91,6 +93,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -104,6 +107,7 @@ public class FallingBlockController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -111,6 +115,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FallingBlockNPC(this); } + return super.getBukkitEntity(); } @@ -126,6 +131,7 @@ public class FallingBlockController extends AbstractEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } private static final double EPSILON = 0.001; 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 178fecffe..ec81f3754 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 @@ -52,6 +52,7 @@ public class FireworkController extends MobEntityController { } else { super.A_(); } + } @Override @@ -62,6 +63,7 @@ public class FireworkController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -75,6 +77,7 @@ public class FireworkController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +85,7 @@ public class FireworkController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FireworkNPC(this); } + return super.getBukkitEntity(); } 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 2dc4b0f00..410a32ffb 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 @@ -52,6 +52,7 @@ public class FishingHookController extends MobEntityController { } else { super.A_(); } + } @Override @@ -62,6 +63,7 @@ public class FishingHookController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -75,6 +77,7 @@ public class FishingHookController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +85,7 @@ public class FishingHookController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FishingHookNPC(this); } + return super.getBukkitEntity(); } 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 2af553193..47ac29e6a 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 @@ -65,6 +65,7 @@ public class ItemController extends AbstractEntityController { } else { super.A_(); } + } @Override @@ -75,6 +76,7 @@ public class ItemController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -82,6 +84,7 @@ public class ItemController extends AbstractEntityController { if (npc == null) { super.d(entityhuman); } + } @Override @@ -95,6 +98,7 @@ public class ItemController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -102,6 +106,7 @@ public class ItemController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ItemNPC(this); } + return super.getBukkitEntity(); } 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 35a77364f..a3d24f8b0 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 @@ -65,6 +65,7 @@ public class ItemFrameController extends MobEntityController { } else { super.A_(); } + } @Override @@ -75,6 +76,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -88,6 +90,7 @@ public class ItemFrameController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +98,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ItemFrameNPC(this); } + return super.getBukkitEntity(); } 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 5aea7e6e7..d9129ded0 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 @@ -53,9 +53,11 @@ public class LargeFireballController extends MobEntityController { if (!npc.isProtected()) { super.A_(); } + } else { super.A_(); } + } @Override @@ -66,6 +68,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -79,6 +82,7 @@ public class LargeFireballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -86,6 +90,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LargeFireballNPC(this); } + return super.getBukkitEntity(); } @@ -101,6 +106,7 @@ public class LargeFireballController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 57e197427..90afbb61f 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 @@ -52,6 +52,7 @@ public class LeashController extends MobEntityController { } else { super.A_(); } + } @Override @@ -62,6 +63,7 @@ public class LeashController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -75,6 +77,7 @@ public class LeashController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +85,7 @@ public class LeashController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LeashNPC(this); } + return super.getBukkitEntity(); } 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 e4bd3ff28..2afa2595f 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 @@ -70,9 +70,11 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isProtected()) { super.A_(); } + } else { super.A_(); } + } @Override @@ -83,6 +85,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -96,6 +99,7 @@ public class LlamaSpitController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -103,6 +107,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LlamaSpitNPC(this); } + return super.getBukkitEntity(); } 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 e974a5d08..24b8d97d0 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 @@ -53,6 +53,7 @@ public class MinecartChestController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -63,6 +64,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class MinecartChestController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartChestNPC(this); } + return super.getBukkitEntity(); } 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 cd647c259..6b8bca4e5 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 @@ -53,6 +53,7 @@ public class MinecartCommandController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -63,6 +64,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class MinecartCommandController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartCommandNPC(this); } + return super.getBukkitEntity(); } 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 b3a9a510c..83138e80f 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 @@ -53,6 +53,7 @@ public class MinecartFurnaceController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -63,6 +64,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class MinecartFurnaceController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartFurnaceNPC(this); } + return super.getBukkitEntity(); } 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 fa20e3910..596f65152 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 @@ -49,6 +49,7 @@ public class MinecartHopperController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -59,6 +60,7 @@ public class MinecartHopperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -72,6 +74,7 @@ public class MinecartHopperController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override 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 e20d902ab..aa8058c5c 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 @@ -53,6 +53,7 @@ public class MinecartRideableController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -63,6 +64,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class MinecartRideableController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartRideableNPC(this); } + return super.getBukkitEntity(); } 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 9c30ee637..2d65c35dc 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 @@ -49,6 +49,7 @@ public class MinecartSpawnerController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -59,6 +60,7 @@ public class MinecartSpawnerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -72,6 +74,7 @@ public class MinecartSpawnerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override 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 7a893253e..8fa7faffa 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 @@ -49,6 +49,7 @@ public class MinecartTNTController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -59,6 +60,7 @@ public class MinecartTNTController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -72,6 +74,7 @@ public class MinecartTNTController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override 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 b1415aaca..ab6749a19 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 @@ -52,6 +52,7 @@ public class PaintingController extends MobEntityController { } else { super.A_(); } + } @Override @@ -62,6 +63,7 @@ public class PaintingController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -75,6 +77,7 @@ public class PaintingController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +85,7 @@ public class PaintingController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PaintingNPC(this); } + return super.getBukkitEntity(); } 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 4e4a150e9..b352be8d1 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 @@ -52,6 +52,7 @@ public class ShulkerBulletController extends MobEntityController { } else { super.A_(); } + } @Override @@ -62,6 +63,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -75,6 +77,7 @@ public class ShulkerBulletController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +85,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ShulkerBulletNPC(this); } + return super.getBukkitEntity(); } 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 d5fb82a31..1fa6af532 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 @@ -52,9 +52,11 @@ public class SmallFireballController extends MobEntityController { if (!npc.isProtected()) { super.A_(); } + } else { super.A_(); } + } @Override @@ -65,6 +67,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -78,6 +81,7 @@ public class SmallFireballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -85,6 +89,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SmallFireballNPC(this); } + return super.getBukkitEntity(); } 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 e161521d4..e59c397d2 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 @@ -52,6 +52,7 @@ public class SnowballController extends MobEntityController { } else { super.A_(); } + } @Override @@ -62,6 +63,7 @@ public class SnowballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -75,6 +77,7 @@ public class SnowballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +85,7 @@ public class SnowballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SnowballNPC(this); } + return super.getBukkitEntity(); } 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 7ab82ddd1..bf4469348 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 @@ -52,6 +52,7 @@ public class SpectralArrowController extends MobEntityController { } else { super.A_(); } + } @Override @@ -62,6 +63,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -75,6 +77,7 @@ public class SpectralArrowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +85,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SpectralArrowNPC(this); } + return super.getBukkitEntity(); } 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 ca36f6622..5e11e9279 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 @@ -52,6 +52,7 @@ public class TNTPrimedController extends MobEntityController { } else { super.A_(); } + } @Override @@ -62,6 +63,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -75,6 +77,7 @@ public class TNTPrimedController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +85,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new TNTPrimedNPC(this); } + return super.getBukkitEntity(); } 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 038a8259b..9318b17cf 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 @@ -52,9 +52,11 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isProtected()) { super.A_(); } + } else { super.A_(); } + } @Override @@ -65,6 +67,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -78,6 +81,7 @@ public class ThrownExpBottleController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -85,6 +89,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ThrownExpBottleNPC(this); } + return super.getBukkitEntity(); } 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 7652101a7..83a56cfeb 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 @@ -53,6 +53,7 @@ public class ThrownPotionController extends MobEntityController { } else { super.A_(); } + } @Override @@ -63,6 +64,7 @@ public class ThrownPotionController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class ThrownPotionController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -86,7 +89,9 @@ public class ThrownPotionController extends MobEntityController { } else { bukkitEntity = new SplashThrownPotionNPC(this); } + } + return super.getBukkitEntity(); } 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 baa2d4472..cc1d9fb26 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 @@ -52,6 +52,7 @@ public class TippedArrowController extends MobEntityController { } else { super.A_(); } + } @Override @@ -62,6 +63,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -75,6 +77,7 @@ public class TippedArrowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +85,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new TippedArrowNPC(this); } + return super.getBukkitEntity(); } 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 50943776c..d9b7bbb3b 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 @@ -52,6 +52,7 @@ public class WitherSkullController extends MobEntityController { } else { super.A_(); } + } @Override @@ -62,6 +63,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -75,6 +77,7 @@ public class WitherSkullController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +85,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitherSkullNPC(this); } + return super.getBukkitEntity(); } diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/CitizensBlockBreaker.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/CitizensBlockBreaker.java index f62d2ba82..a8848d027 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/CitizensBlockBreaker.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/CitizensBlockBreaker.java @@ -47,6 +47,7 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { ItemStack current = getCurrentItem(); return current != null ? current.b(block) : false; } + } @Override @@ -64,10 +65,13 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { if (i > 0) { f += i * i + 1; } + } + if (handle.hasEffect(MobEffects.FASTER_DIG)) { f *= 1.0F + (handle.getEffect(MobEffects.FASTER_DIG).getAmplifier() + 1) * 0.2F; } + if (handle.hasEffect(MobEffects.SLOWER_DIG)) { float f1 = 1.0F; switch (handle.getEffect(MobEffects.SLOWER_DIG).getAmplifier()) { @@ -84,15 +88,20 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { default: f1 = 8.1E-4F; } + f *= f1; } + if (handle.a(Material.WATER) && !EnchantmentManager.i(handle)) { f /= 5.0F; } + } + if (!getHandle().onGround) { f /= 5.0F; } + return f; } } \ No newline at end of file diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSImpl.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSImpl.java index 3e1c3df8a..5d3454f06 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSImpl.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSImpl.java @@ -295,6 +295,7 @@ public class NMSImpl implements NMSBridge { } else if (!handle.world.players.contains(handle)) { handle.world.players.add(handle); } + } @Override @@ -307,6 +308,7 @@ public class NMSImpl implements NMSBridge { PlayerAnimation.ARM_SWING.play(humanHandle.getBukkitEntity()); return; } + AttributeInstance attackDamage = handle.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE); float f = (float) (attackDamage == null ? 1 : attackDamage.getValue()); int i = 0; @@ -314,6 +316,7 @@ public class NMSImpl implements NMSBridge { f += EnchantmentManager.a(handle.getItemInMainHand(), target.getMonsterType()); i += EnchantmentManager.a(Enchantments.KNOCKBACK, handle); } + boolean flag = target.damageEntity(DamageSource.mobAttack(handle), f); if (!flag) return; @@ -323,10 +326,12 @@ public class NMSImpl implements NMSBridge { handle.motX *= 0.6D; handle.motZ *= 0.6D; } + int fireAspectLevel = EnchantmentManager.getFireAspectEnchantmentLevel(handle); if (fireAspectLevel > 0) { target.setOnFire(fireAspectLevel * 4); } + } @Override @@ -338,9 +343,11 @@ public class NMSImpl implements NMSBridge { } catch (Throwable t) { t.printStackTrace(); } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getControllerMove().f = false; } + } @Override @@ -373,14 +380,19 @@ public class NMSImpl implements NMSBridge { if (!changed && !ItemStack.matches(old, curr)) { changed = true; } + equipment.put(slot, curr); } + if (changed) { for (EnumItemSlot slot : EnumItemSlot.values()) { agg.send(new PacketPlayOutEntityEquipment(handle.getId(), slot, equipment.get(slot))); } + } + } + tracker.track(Lists.newArrayList(tracker.trackedPlayers)); } @@ -400,7 +412,9 @@ public class NMSImpl implements NMSBridge { if (callback != null) { callback.accept(entity); } + } + tracker.trackedPlayers.clear(); } }; @@ -448,8 +462,10 @@ public class NMSImpl implements NMSBridge { bserver = (BossBattleServer) ENDERDRAGON_BATTLE_BAR_FIELD .get(ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity))); } + } catch (Exception e) { } + if (bserver == null) return null; BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10); @@ -457,6 +473,7 @@ public class NMSImpl implements NMSBridge { CRAFT_BOSSBAR_HANDLE_FIELD.set(ret, bserver); } catch (Exception e) { } + return ret; } @@ -474,6 +491,7 @@ public class NMSImpl implements NMSBridge { if (aabb == null) { aabb = world.getType(pos).d(world, pos); } + return new BoundingBox(aabb.a, aabb.b, aabb.c, aabb.d, aabb.e, aabb.f); } @@ -573,12 +591,15 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { return null; } + } + try { return (GameProfile) SKULL_PROFILE_FIELD.get(meta); } catch (Exception e) { return null; } + } @Override @@ -591,6 +612,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { throw new CommandException(Messages.INVALID_SOUND); } + } @Override @@ -606,6 +628,7 @@ public class NMSImpl implements NMSBridge { EntityLiving handle = NMSImpl.getHandle((LivingEntity) npc.getEntity()); if (handle == null) { } + return DEFAULT_SPEED; // return (float) // handle.getAttributeInstance(GenericAttributes.d).getValue(); @@ -649,7 +672,9 @@ public class NMSImpl implements NMSBridge { } else { ((EntityInsentient) raw).a(PathType.WATER, oldWater + 1F); } + } + navigation.q().b(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; @@ -662,6 +687,7 @@ public class NMSImpl implements NMSBridge { PathPoint pp = navigation.k().a(i); blocks.add(entity.getWorld().getBlockAt(pp.a, pp.b, pp.c)); } + return blocks; } @@ -680,13 +706,16 @@ public class NMSImpl implements NMSBridge { if (params.debug() && navigation.k() != null) { Util.sendBlockChanges(getBlocks(entity, navigation), null); } + if (oldWater >= 0) { if (raw instanceof EntityPlayer) { ((EntityHumanNPC) raw).a(PathType.WATER, oldWater); } else { ((EntityInsentient) raw).a(PathType.WATER, oldWater); } + } + stopNavigation(navigation); } @@ -698,16 +727,20 @@ public class NMSImpl implements NMSBridge { if (handle instanceof EntityHorse) { handle.width = Math.min(0.99f, oldWidth); } + if (!function.apply(navigation)) { reason = CancelReason.STUCK; } + handle.width = oldWidth; // minecraft requires that an entity fit onto both blocks if width >= 1f, // but we'd prefer to make it just fit on 1 so hack around it a bit. lastSpeed = params.speed(); } + if (params.debug() && !NMSImpl.isNavigationFinished(navigation)) { Util.sendBlockChanges(getBlocks(entity, navigation), Material.YELLOW_FLOWER); } + navigation.a(params.speed()); return NMSImpl.isNavigationFinished(navigation); } @@ -889,30 +922,37 @@ public class NMSImpl implements NMSBridge { if (zDiff < 0.0) { yaw += Math.abs(180 - yaw) * 2; } + if (handle instanceof EntityEnderDragon) { yaw = Util.getDragonYaw(handle.getBukkitEntity(), xDiff, zDiff); } else { yaw = yaw - 90; } + if (headOnly) { setHeadYaw(entity, (float) yaw); } else { look(entity, (float) yaw, (float) pitch); } + return; } + if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(to.getX(), to.getY(), to.getZ(), ((EntityInsentient) handle).cL(), ((EntityInsentient) handle).N()); while (((EntityLiving) handle).aP >= 180F) { ((EntityLiving) handle).aP -= 360F; } + while (((EntityLiving) handle).aP < -180F) { ((EntityLiving) handle).aP += 360F; } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -925,18 +965,22 @@ public class NMSImpl implements NMSBridge { } else { look(from, to.getLocation(), false, true); } + } else if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(target, ((EntityInsentient) handle).cL(), ((EntityInsentient) handle).N()); while (((EntityLiving) handle).aP >= 180F) { ((EntityLiving) handle).aP -= 360F; } + while (((EntityLiving) handle).aP < -180F) { ((EntityLiving) handle).aP += 360F; } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -976,7 +1020,9 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return super.getBukkitView(); } + } + return this.bukkitEntity; } }; @@ -1022,6 +1068,7 @@ public class NMSImpl implements NMSBridge { if (entity1.dead || !entity1.w(entity)) { entity.stopRiding(); } + } else { if (!entity.dead) { try { @@ -1032,17 +1079,22 @@ public class NMSImpl implements NMSBridge { entity.appendEntityCrashDetails(crashreportsystemdetails); throw new ReportedException(crashreport); } + } + if (entity.dead) { entity.world.removeEntity(entity); } else if (!removeFromPlayerList) { if (!entity.world.players.contains(entity)) { entity.world.players.add(entity); } + } else { entity.world.players.remove(entity); } + } + }; } @@ -1056,10 +1108,12 @@ public class NMSImpl implements NMSBridge { if (key == null) { continue; } + int code = ENTITY_REGISTRY.a(search); ENTITY_REGISTRY.put(code, key, (Class) clazz); return; } + throw new IllegalArgumentException("unable to find valid entity superclass for class " + clazz.toString()); } @@ -1098,6 +1152,7 @@ public class NMSImpl implements NMSBridge { hook.hooked = null; hook.getBukkitEntity().remove(); } + } @Override @@ -1119,10 +1174,13 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } + if (getHandle(entity) instanceof EntityHumanNPC) { ((EntityHumanNPC) getHandle(entity)).setTracked(); } + } @Override @@ -1132,9 +1190,11 @@ public class NMSImpl implements NMSBridge { if (bodyYaw == null) { bodyYaw = handle.yaw; } + if (pitch == null) { pitch = handle.pitch; } + List> toSend = Lists.newArrayList(); if (position) { EntityTrackerEntry entry = ((WorldServer) handle.world).getTracker().trackedEntities.get(handle.getId()); @@ -1147,15 +1207,18 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + toSend.add(new PacketPlayOutRelEntityMoveLook(handle.getId(), (short) dx, (short) dy, (short) dz, (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); } else { toSend.add(new PacketPlayOutEntityLook(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); } + if (headYaw != null) { toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F))); } + sendPacketsNearby(null, from.getLocation(), toSend, 64); } @@ -1179,6 +1242,7 @@ public class NMSImpl implements NMSBridge { entities[i] = (EntityPlayer) skinnable; i++; } + NMSImpl.sendPacket(recipient, new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, entities)); } @@ -1199,12 +1263,14 @@ public class NMSImpl implements NMSBridge { if (TEAM_FIELD == null) { TEAM_FIELD = NMS.getGetter(team.getClass(), "team"); } + try { ScoreboardTeam nmsTeam = (ScoreboardTeam) TEAM_FIELD.invoke(team); sendPacket(recipient, new PacketPlayOutScoreboardTeam(nmsTeam, mode)); } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1232,6 +1298,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).setMoveDestination(x, y, z, speed); } + } @Override @@ -1256,6 +1323,7 @@ public class NMSImpl implements NMSBridge { if (!(handle instanceof EntityHuman)) { handle.aN = yaw; } + handle.aP = yaw; } @@ -1305,11 +1373,14 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { return; } + } + try { SKULL_PROFILE_FIELD.set(meta, profile); } catch (Exception e) { } + } @Override @@ -1323,6 +1394,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).setShouldJump(); } + } @Override @@ -1340,6 +1412,7 @@ public class NMSImpl implements NMSBridge { if (entity instanceof Player) { ((Player) entity).setSneaking(sneaking); } + } @Override @@ -1372,6 +1445,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + return false; } @@ -1384,6 +1458,7 @@ public class NMSImpl implements NMSBridge { setter.invoke(ENTITY_REGISTRY.get()); } catch (Throwable e) { } + } @Override @@ -1416,6 +1491,7 @@ public class NMSImpl implements NMSBridge { facingByte = (byte) 3; break; } + Location bedLoc = loc.clone().add(0, -loc.getY(), 0); PacketPlayOutBed bed = new PacketPlayOutBed(from, new BlockPosition(bedLoc.getBlockX(), bedLoc.getBlockY(), bedLoc.getBlockZ())); @@ -1434,6 +1510,7 @@ public class NMSImpl implements NMSBridge { list.forEach(packet -> sendPacket(nearby, packet)); meta.set(nearby.getUniqueId(), entity.getUniqueId().toString(), System.currentTimeMillis()); } + } else { PacketPlayOutAnimation packet = new PacketPlayOutAnimation(from, 2); sendPacketNearby(entity, entity.getLocation(), packet, 64); @@ -1441,8 +1518,11 @@ public class NMSImpl implements NMSBridge { if (meta.remove(player.getUniqueId(), entity.getUniqueId().toString())) { sendPacket(player, packet); } + } + } + } @Override @@ -1458,6 +1538,7 @@ public class NMSImpl implements NMSBridge { if (RANDOM.nextFloat() <= 0.85F && (handle.ak() || handle.ao())) { handle.motY += power; } + } @Override @@ -1485,6 +1566,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { Messaging.logTr(Messages.ERROR_UPDATING_NAVIGATION_WORLD, e.getMessage()); } + } @Override @@ -1496,8 +1578,10 @@ public class NMSImpl implements NMSBridge { if (en instanceof EntityHumanNPC) { ((EntityHumanNPC) en).updatePathfindingRange(pathfindingRange); } + return; } + if (PATHFINDING_RANGE == null) return; EntityInsentient handle = (EntityInsentient) en; @@ -1510,6 +1594,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } private static class CitizensInventoryAnvil extends CraftInventoryAnvil implements ForwardingInventory { @@ -1618,6 +1703,7 @@ public class NMSImpl implements NMSBridge { living.setPosition(living.locX - 0.01, living.locY, living.locZ - 0.01); living.setPosition(living.locX + 0.01, living.locY, living.locZ + 0.01); } + } public static void clearGoals(PathfinderGoalSelector... goalSelectors) { @@ -1630,7 +1716,9 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } + } + } private static CompoundTag convertNBT(net.minecraft.server.v1_11_R1.NBTTagCompound tag) { @@ -1640,6 +1728,7 @@ public class NMSImpl implements NMSBridge { for (String key : tag.c()) { tags.put(key, convertNBT(key, tag.get(key))); } + return new CompoundTag("", tags); } @@ -1670,8 +1759,10 @@ public class NMSImpl implements NMSBridge { for (int i = 0; i < list.size(); i++) { converted.add(convertNBT("", list.get(i))); } + return new ListTag(key, tagType, converted); } + } else if (base instanceof net.minecraft.server.v1_11_R1.NBTTagCompound) return convertNBT((net.minecraft.server.v1_11_R1.NBTTagCompound) base); else if (base instanceof net.minecraft.server.v1_11_R1.NBTTagEnd) @@ -1689,13 +1780,16 @@ public class NMSImpl implements NMSBridge { if (f2 > 3.0F) { f2 = 3.0F; } + if (!entity.onGround) { f2 *= 0.5F; } + if (f2 > 0.0F) { f4 += (0.54600006F - f4) * f2 / 3.0F; f3 += (entity.cq() - f3) * f2 / 3.0F; } + entity.a(f, f1, f3); entity.move(EnumMoveType.SELF, entity.motX, entity.motY, entity.motZ); entity.motX *= f4; @@ -1704,10 +1798,12 @@ public class NMSImpl implements NMSBridge { if (!entity.isNoGravity()) { entity.motY -= 0.02D; } + if (entity.positionChanged && entity.c(entity.motX, entity.motY + 0.6000000238418579D - entity.locY + d1, entity.motZ)) { entity.motY = 0.30000001192092896D; } + } else if (entity.ao() && (!(entity instanceof EntityHuman) || !((EntityHuman) entity).abilities.isFlying)) { double d1 = entity.locY; @@ -1719,14 +1815,17 @@ public class NMSImpl implements NMSBridge { if (!entity.isNoGravity()) { entity.motY -= 0.02D; } + if (entity.positionChanged && entity.c(entity.motX, entity.motY + 0.6000000238418579D - entity.locY + d1, entity.motZ)) { entity.motY = 0.30000001192092896D; } + } else if (entity.cH()) { if (entity.motY > -0.5D) { entity.fallDistance = 1.0F; } + Vec3D vec3d = entity.aB(); float f5 = entity.pitch * 0.017453292F; double d0 = Math.sqrt(vec3d.x * vec3d.x + vec3d.z * vec3d.z); @@ -1741,16 +1840,19 @@ public class NMSImpl implements NMSBridge { entity.motX += vec3d.x * d4 / d0; entity.motZ += vec3d.z * d4 / d0; } + if (f5 < 0.0F) { double d4 = d2 * -MathHelper.sin(f5) * 0.04D; entity.motY += d4 * 3.2D; entity.motX -= vec3d.x * d4 / d0; entity.motZ -= vec3d.z * d4 / d0; } + if (d0 > 0.0D) { entity.motX += (vec3d.x / d0 * d2 - entity.motX) * 0.1D; entity.motZ += (vec3d.z / d0 * d2 - entity.motZ) * 0.1D; } + entity.motX *= 0.9900000095367432D; entity.motY *= 0.9800000190734863D; entity.motZ *= 0.9900000095367432D; @@ -1763,11 +1865,14 @@ public class NMSImpl implements NMSBridge { entity.a(entity.e((int) f7), 1.0F, 1.0F); entity.damageEntity(DamageSource.FLY_INTO_WALL, f7); } + } + if (entity.onGround && !entity.world.isClientSide && entity.getFlag(7) && !CraftEventFactory.callToggleGlideEvent(entity, false).isCancelled()) { entity.setFlag(7, false); } + } else { float f8 = 0.91F; BlockPosition.PooledBlockPosition blockposition_pooledblockposition = BlockPosition.PooledBlockPosition @@ -1775,6 +1880,7 @@ public class NMSImpl implements NMSBridge { if (entity.onGround) { f8 = entity.world.getType(blockposition_pooledblockposition).getBlock().frictionFactor * 0.91F; } + float f4 = 0.16277136F / (f8 * f8 * f8); float f3; if (entity.onGround) { @@ -1782,12 +1888,14 @@ public class NMSImpl implements NMSBridge { } else { f3 = entity.aR; } + entity.a(f, f1, f3); f8 = 0.91F; if (entity.onGround) { f8 = entity.world.getType(blockposition_pooledblockposition.e(entity.locX, entity.getBoundingBox().b - 1.0D, entity.locZ)).getBlock().frictionFactor * 0.91F; } + if (entity.m_()) { entity.motX = MathHelper.a(entity.motX, -0.15000000596046448D, 0.15000000596046448D); entity.motZ = MathHelper.a(entity.motZ, -0.15000000596046448D, 0.15000000596046448D); @@ -1795,15 +1903,19 @@ public class NMSImpl implements NMSBridge { if (entity.motY < -0.15D) { entity.motY = -0.15D; } + boolean flag = entity.isSneaking() && entity instanceof EntityHuman; if (flag && entity.motY < 0.0D) { entity.motY = 0.0D; } + } + entity.move(EnumMoveType.SELF, entity.motX, entity.motY, entity.motZ); if (entity.positionChanged && entity.m_()) { entity.motY = 0.2D; } + if (entity.hasEffect(MobEffects.LEVITATION)) { entity.motY += (0.05D * (entity.getEffect(MobEffects.LEVITATION).getAmplifier() + 1) - entity.motY) * 0.2D; @@ -1816,16 +1928,21 @@ public class NMSImpl implements NMSBridge { } else { entity.motY = 0.0D; } + } else if (!entity.isNoGravity()) { entity.motY -= 0.08D; } + } + entity.motY *= 0.9800000190734863D; entity.motX *= f8; entity.motZ *= f8; blockposition_pooledblockposition.t(); } + } + entity.aF = entity.aG; double d1 = entity.locX - entity.lastX; double d0 = entity.locZ - entity.lastZ; @@ -1833,6 +1950,7 @@ public class NMSImpl implements NMSBridge { if (f2 > 1.0F) { f2 = 1.0F; } + entity.aG += (f2 - entity.aG) * 0.4F; entity.aH += entity.aG; } @@ -1863,6 +1981,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + return null; } @@ -1884,6 +2003,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } public static boolean isLeashed(NPC npc, Supplier isLeashed, EntityInsentient entity) { @@ -1906,6 +2026,7 @@ public class NMSImpl implements NMSBridge { if (mat != null) { minecart.setDisplayBlock(Block.getById(mat.getId()).fromLegacyData(data)); } + minecart.setDisplayBlockOffset(offset); } @@ -1933,10 +2054,13 @@ public class NMSImpl implements NMSBridge { || location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) { continue; } + for (Packet packet : packets) { NMSImpl.sendPacket(player, packet); } + } + } public static void sendPacketsNearby(Player from, Location location, Packet... packets) { @@ -1949,6 +2073,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setSize(Entity entity, float f, float f1, boolean justCreated) { @@ -1962,7 +2087,9 @@ public class NMSImpl implements NMSBridge { if (entity.width > f2 && !justCreated && !entity.world.isClientSide) { entity.move(EnumMoveType.SELF, (f2 - entity.width) / 2, 0.0D, (f2 - entity.width) / 2); } + } + } public static void stopNavigation(NavigationAbstract navigation) { @@ -1980,6 +2107,7 @@ public class NMSImpl implements NMSBridge { } else if (entity instanceof EntityHumanNPC) { ((EntityHumanNPC) entity).updateAI(); } + } public static void updateNavigation(NavigationAbstract navigation) { @@ -2032,6 +2160,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage()); } + try { MAKE_REQUEST = YggdrasilAuthenticationService.class.getDeclaredMethod("makeRequest", URL.class, Object.class, Class.class); @@ -2039,6 +2168,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception ex) { ex.printStackTrace(); } + try { ENDERMAN_ANGRY = (DataWatcherObject) NMS.getField(EntityEnderman.class, "bx").get(null); } catch (IllegalArgumentException e) { @@ -2046,5 +2176,6 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } } diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerAnimationImpl.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerAnimationImpl.java index 5757808ae..c8f6e83f4 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerAnimationImpl.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerAnimationImpl.java @@ -21,6 +21,7 @@ public class PlayerAnimationImpl { playDefaultAnimation(player, to, DEFAULTS.get(animation)); return; } + switch (animation) { case START_ELYTRA: player.M(); @@ -51,6 +52,7 @@ public class PlayerAnimationImpl { default: throw new UnsupportedOperationException(); } + } protected static void playDefaultAnimation(EntityPlayer player, Iterable to, int code) { @@ -62,6 +64,7 @@ public class PlayerAnimationImpl { for (Player player : to) { NMSImpl.sendPacket(player, packet); } + } private static EnumMap DEFAULTS = Maps.newEnumMap(PlayerAnimation.class); diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerControllerMove.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerControllerMove.java index e35321fcd..37d9cdf21 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerControllerMove.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerControllerMove.java @@ -50,15 +50,18 @@ public class PlayerControllerMove extends ControllerMove { if (f3 > f2) { f3 = f2; } + if (f3 < -f2) { f3 = -f2; } + float f4 = f + f3; if (f4 < 0.0F) { f4 += 360.0F; } else if (f4 > 360.0F) { f4 -= 360.0F; } + return f4; } @@ -81,6 +84,7 @@ public class PlayerControllerMove extends ControllerMove { this.a.bf = 0.0F; return; } + float f = (float) Math.toDegrees(Math.atan2(d1, d0)) - 90.0F; this.a.yaw = a(this.a.yaw, f, 90.0F); NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw); @@ -98,8 +102,11 @@ public class PlayerControllerMove extends ControllerMove { } else { ((EntityInsentient) this.a).getControllerJump().a(); } + } + } + } protected int cg() { diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerNavigation.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerNavigation.java index 05639e43b..b09d4b14d 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerNavigation.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerNavigation.java @@ -68,22 +68,27 @@ public class PlayerNavigation extends NavigationAbstract { while (localBlockPosition.getY() > 0 && this.b.getType(localBlockPosition).getMaterial() == Material.AIR) { localBlockPosition = localBlockPosition.down(); } + if (localBlockPosition.getY() > 0) return a2(localBlockPosition.up()); while (localBlockPosition.getY() < this.b.getHeight() && this.b.getType(localBlockPosition).getMaterial() == Material.AIR) { localBlockPosition = localBlockPosition.up(); } + paramBlockPosition = localBlockPosition; } + if (this.b.getType(paramBlockPosition).getMaterial().isBuildable()) { localBlockPosition = paramBlockPosition.up(); while (localBlockPosition.getY() < this.b.getHeight() && this.b.getType(localBlockPosition).getMaterial().isBuildable()) { localBlockPosition = localBlockPosition.up(); } + return a2(localBlockPosition); } + return a2(paramBlockPosition); } @@ -137,8 +142,11 @@ public class PlayerNavigation extends NavigationAbstract { || localPathType == PathType.DAMAGE_OTHER) return false; } + } + } + return true; } @@ -148,9 +156,11 @@ public class PlayerNavigation extends NavigationAbstract { this.c = null; return false; } + if (!paramPathEntity.a(this.c)) { this.c = paramPathEntity; } + d(); if (this.c.d() == 0) return false; @@ -167,9 +177,11 @@ public class PlayerNavigation extends NavigationAbstract { if (paramVec3D.distanceSquared(this.i) < 2.25D) { o(); } + this.h = this.g; this.i = paramVec3D; } + if (this.c != null && !this.c.b()) { Vec3D localVec3D = this.c.f(); if (localVec3D.equals(this.j)) { @@ -179,14 +191,17 @@ public class PlayerNavigation extends NavigationAbstract { double d1 = paramVec3D.f(this.j); this.m = this.a.cq() > 0.0F ? d1 / this.a.cq() * 1000.0D : 0.0D; } + if (this.m > 0.0D && this.k > this.m * 3.0D) { this.j = Vec3D.a; this.k = 0L; this.m = 0.0D; o(); } + this.l = System.currentTimeMillis(); } + } @Override @@ -214,9 +229,11 @@ public class PlayerNavigation extends NavigationAbstract { if (d1 >= 0.0D) { d7 += 1.0D; } + if (d2 >= 0.0D) { d8 += 1.0D; } + d7 /= d1; d8 /= d2; int k = d1 < 0.0D ? -1 : 1; @@ -235,9 +252,11 @@ public class PlayerNavigation extends NavigationAbstract { j += m; i3 = i1 - j; } + if (!a(i, (int) paramVec3D1.y, j, paramInt1, paramInt2, paramInt3, paramVec3D1, d1, d2)) return false; } + return true; } @@ -301,7 +320,9 @@ public class PlayerNavigation extends NavigationAbstract { if (!localBlock.b(this.b, localBlockPosition)) return false; } + } + return true; } @@ -329,8 +350,11 @@ public class PlayerNavigation extends NavigationAbstract { this.c.a(i + 1, ((PathPoint) localObject).a(((PathPoint) localObject).a, localPathPoint.b + 1, ((PathPoint) localObject).c)); } + } + } + if (this.f2) { if (this.b.h(new BlockPosition(MathHelper.floor(this.a.locX), (int) (this.a.getBoundingBox().b + 0.5D), MathHelper.floor(this.a.locZ)))) @@ -341,8 +365,11 @@ public class PlayerNavigation extends NavigationAbstract { this.c.b(i - 1); return; } + } + } + } public void d(boolean paramBoolean) { @@ -376,9 +403,11 @@ public class PlayerNavigation extends NavigationAbstract { this.p = this.b.getTime(); this.o = false; } + } else { this.o = true; } + } @Override @@ -392,6 +421,7 @@ public class PlayerNavigation extends NavigationAbstract { if (this.o) { j(); } + if (n()) return; if (b()) { @@ -404,7 +434,9 @@ public class PlayerNavigation extends NavigationAbstract { && MathHelper.floor(localVec3D.z) == MathHelper.floor(localObject.z)) { this.c.c(this.c.e() + 1); } + } + if (n()) return; Vec3D localVec3D = this.c.a(this.a); @@ -426,7 +458,9 @@ public class PlayerNavigation extends NavigationAbstract { i1 = i2; break; } + } + this.n = this.a.width > 0.75F ? this.a.width / 2.0F : 0.75F - this.a.width / 2.0F; Vec3D localVec3D2 = this.c.f(); if (MathHelper.e((float) (this.a.locX - (localVec3D2.x + 0.5D))) < this.n @@ -434,6 +468,7 @@ public class PlayerNavigation extends NavigationAbstract { && Math.abs(this.a.locY - localVec3D2.y) < 1.0D) { this.c.c(this.c.e() + 1); } + int i3 = MathHelper.f(this.a.width); int i4 = MathHelper.f(this.a.length); int i5 = i3; @@ -442,7 +477,9 @@ public class PlayerNavigation extends NavigationAbstract { this.c.c(i6); break; } + } + a(localVec3D1); } @@ -482,6 +519,7 @@ public class PlayerNavigation extends NavigationAbstract { if (j > 16) return (int) this.a.getBoundingBox().b; } + return i; } diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerPathfinder.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerPathfinder.java index b2bee4023..03775cb25 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerPathfinder.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerPathfinder.java @@ -51,6 +51,7 @@ public class PlayerPathfinder { i++; localPathPoint = localPathPoint.h; } + PathPoint[] arrayOfPathPoint = new PathPoint[i]; localPathPoint = paramPathPoint2; arrayOfPathPoint[--i] = localPathPoint; @@ -58,6 +59,7 @@ public class PlayerPathfinder { localPathPoint = localPathPoint.h; arrayOfPathPoint[--i] = localPathPoint; } + return new PathEntity(arrayOfPathPoint); } @@ -75,14 +77,17 @@ public class PlayerPathfinder { if (i >= 2000) { break; } + PathPoint localObject2 = this.a.c(); if (localObject2.equals(paramPathPoint2)) { localObject1 = paramPathPoint2; break; } + if (localObject2.c(paramPathPoint2) < ((PathPoint) localObject1).c(paramPathPoint2)) { localObject1 = localObject2; } + localObject2.i = true; int j = this.d.a(this.c, localObject2, paramPathPoint2, paramFloat); for (int k = 0; k < j; k++) { @@ -101,9 +106,13 @@ public class PlayerPathfinder { localPathPoint.g = localPathPoint.e + localPathPoint.f; this.a.a(localPathPoint); } + } + } + } + if (localObject1 == paramPathPoint1) return null; Object localObject2 = a(paramPathPoint1, (PathPoint) localObject1); diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerPathfinderAbstract.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerPathfinderAbstract.java index 148c38ec2..b0660f242 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerPathfinderAbstract.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerPathfinderAbstract.java @@ -56,6 +56,7 @@ public abstract class PlayerPathfinderAbstract extends PathfinderAbstract { localPathPoint = new PathPoint(paramInt1, paramInt2, paramInt3); this.c.a(j, localPathPoint); } + return localPathPoint; } diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerPathfinderNormal.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerPathfinderNormal.java index 613c87709..be4276a46 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerPathfinderNormal.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerPathfinderNormal.java @@ -61,10 +61,13 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localPathType2 == PathType.DAMAGE_FIRE || localObject == Blocks.df) { localPathType1 = PathType.DAMAGE_FIRE; } + if (localPathType2 == PathType.DAMAGE_CACTUS) { localPathType1 = PathType.DAMAGE_CACTUS; } + } + Object localObject = BlockPosition.PooledBlockPosition.s(); if (localPathType1 == PathType.WALKABLE) { for (int i = -1; i <= 1; i++) { @@ -77,10 +80,15 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { } else if (localBlock == Blocks.FIRE) { localPathType1 = PathType.DANGER_FIRE; } + } + } + } + } + ((BlockPosition.PooledBlockPosition) localObject).t(); return localPathType1; } @@ -102,9 +110,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localPathType2 == PathType.DOOR_WOOD_CLOSED && paramBoolean1 && paramBoolean2) { localPathType2 = PathType.WALKABLE; } + if (localPathType2 == PathType.DOOR_OPEN && !paramBoolean2) { localPathType2 = PathType.BLOCKED; } + if (localPathType2 == PathType.RAIL && !(paramIBlockAccess.getType(localBlockPosition) .getBlock() instanceof BlockMinecartTrackAbstract) @@ -112,13 +122,18 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { .getBlock() instanceof BlockMinecartTrackAbstract)) { localPathType2 = PathType.FENCE; } + if (i == 0 && k == 0 && m == 0) { localObject1 = localPathType2; } + localEnumSet.add(localPathType2); } + } + } + if (localEnumSet.contains(PathType.FENCE)) return PathType.FENCE; PathType localObject2 = PathType.BLOCKED; @@ -128,7 +143,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (paramEntityInsentient.a(localPathType1) >= paramEntityInsentient.a(localObject2)) { localObject2 = localPathType1; } + } + if (localObject1 == PathType.OPEN && paramEntityInsentient.a(localObject2) == 0.0F) return PathType.OPEN; return localObject2; @@ -151,9 +168,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localPathType2 == PathType.DOOR_WOOD_CLOSED && paramBoolean1 && paramBoolean2) { localPathType2 = PathType.WALKABLE; } + if (localPathType2 == PathType.DOOR_OPEN && !paramBoolean2) { localPathType2 = PathType.BLOCKED; } + if (localPathType2 == PathType.RAIL && !(paramIBlockAccess.getType(localBlockPosition) .getBlock() instanceof BlockMinecartTrackAbstract) @@ -161,13 +180,18 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { .getBlock() instanceof BlockMinecartTrackAbstract)) { localPathType2 = PathType.FENCE; } + if (i == 0 && k == 0 && m == 0) { localObject1 = localPathType2; } + localEnumSet.add(localPathType2); } + } + } + if (localEnumSet.contains(PathType.FENCE)) return PathType.FENCE; PathType localObject2 = PathType.BLOCKED; @@ -177,7 +201,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (paramEntityInsentient.a(localPathType1) >= paramEntityInsentient.a(localObject2)) { localObject2 = localPathType1; } + } + if (localObject1 == PathType.OPEN && paramEntityInsentient.a(localObject2) == 0.0F) return PathType.OPEN; return localObject2; @@ -199,6 +225,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { localPathPoint.m = localPathType1; localPathPoint.l = Math.max(localPathPoint.l, f); } + if (localPathType1 == PathType.WALKABLE) return localPathPoint; if (localPathPoint == null && paramInt4 > 0 && localPathType1 != PathType.FENCE @@ -215,8 +242,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (this.b.world.b(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); @@ -230,7 +260,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { localPathPoint.l = Math.max(localPathPoint.l, f); return localPathPoint; } + } + int i = 0; while (paramInt2 > 0 && localPathType1 == PathType.OPEN) { paramInt2--; @@ -244,8 +276,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { localPathPoint.l = Math.max(localPathPoint.l, f); } else if (f < 0.0F) return null; + } + } + return localPathPoint; } @@ -258,6 +293,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (this.b.a(localPathType) >= 0.0F) { k = MathHelper.d(Math.max(1.0F, this.b.P)); } + BlockPosition localBlockPosition = new BlockPosition(paramPathPoint1.a, paramPathPoint1.b, paramPathPoint1.c) .down(); double d = paramPathPoint1.b - (1.0D - this.a.getType(localBlockPosition).d(this.a, localBlockPosition).e); @@ -272,15 +308,19 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localPathPoint1 != null && !localPathPoint1.i && localPathPoint1.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint1; } + if (localPathPoint2 != null && !localPathPoint2.i && localPathPoint2.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint2; } + if (localPathPoint3 != null && !localPathPoint3.i && localPathPoint3.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint3; } + if (localPathPoint4 != null && !localPathPoint4.i && localPathPoint4.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint4; } + int m = localPathPoint4 == null || localPathPoint4.m == PathType.OPEN || localPathPoint4.l != 0.0F ? 1 : 0; int n = localPathPoint1 == null || localPathPoint1.m == PathType.OPEN || localPathPoint1.l != 0.0F ? 1 : 0; int i1 = localPathPoint3 == null || localPathPoint3.m == PathType.OPEN || localPathPoint3.l != 0.0F ? 1 : 0; @@ -292,28 +332,36 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localPathPoint5 != null && !localPathPoint5.i && localPathPoint5.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint5; } + } + if (m != 0 && i1 != 0) { localPathPoint5 = a(paramPathPoint1.a + 1, paramPathPoint1.b, paramPathPoint1.c - 1, k, d, EnumDirection.NORTH); if (localPathPoint5 != null && !localPathPoint5.i && localPathPoint5.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint5; } + } + if (n != 0 && i2 != 0) { localPathPoint5 = a(paramPathPoint1.a - 1, paramPathPoint1.b, paramPathPoint1.c + 1, k, d, EnumDirection.SOUTH); if (localPathPoint5 != null && !localPathPoint5.i && localPathPoint5.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint5; } + } + if (n != 0 && i1 != 0) { localPathPoint5 = a(paramPathPoint1.a + 1, paramPathPoint1.b, paramPathPoint1.c + 1, k, d, EnumDirection.SOUTH); if (localPathPoint5 != null && !localPathPoint5.i && localPathPoint5.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint5; } + } + return i; } @@ -332,6 +380,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { MathHelper.floor(this.b.locZ)); localObject2 = this.a.getType(localObject1).getBlock(); } + } else if (this.b.onGround) { i = MathHelper.floor(this.b.getBoundingBox().b + 0.5D); } else { @@ -340,8 +389,10 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { || this.a.getType(localObject1).getBlock().b(this.a, localObject1)) && localObject1.getY() > 0) { localObject1 = localObject1.down(); } + i = localObject1.up().getY(); } + localObject1 = new BlockPosition(this.b); Object localObject2 = a(this.b, localObject1.getX(), i, localObject1.getZ()); if (this.b.a((PathType) localObject2) < 0.0F) { @@ -355,7 +406,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (this.b.a(localPathType) >= 0.0F) return a(localBlockPosition.getX(), localBlockPosition.getY(), localBlockPosition.getZ()); } + } + return a(localObject1.getX(), i, localObject1.getZ()); } diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerlistTrackerEntry.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerlistTrackerEntry.java index ae9a9fff2..04f48b90f 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerlistTrackerEntry.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerlistTrackerEntry.java @@ -42,12 +42,14 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { if (res == null) { updateLastPlayer(player); } + return res; } }); } catch (Throwable e) { e.printStackTrace(); } + } else { try { Set delegate = super.trackedPlayers; @@ -58,6 +60,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { if (res) { updateLastPlayer(player); } + return res; } @@ -69,7 +72,9 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (Throwable e) { e.printStackTrace(); } + } + } public PlayerlistTrackerEntry(EntityTrackerEntry entry) { @@ -85,6 +90,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { Bukkit.getPluginManager().callEvent( new NPCLinkToPlayerEvent(((NPCHolder) tracker).getNPC(), lastUpdatedPlayer.getBukkitEntity())); } + } @Override @@ -114,6 +120,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return 0; } @@ -125,6 +132,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return 0; } @@ -136,6 +144,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return 0; } @@ -147,6 +156,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return null; } @@ -158,6 +168,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return false; } @@ -180,7 +191,9 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { TRACKING_MAP_SETTER = NMS.getFirstSetter(EntityTrackerEntry.class, Map.class); TRACKING_MAP_GETTER = NMS.getFirstGetter(EntityTrackerEntry.class, Map.class); } + } catch (Exception e) { } + } } diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ArmorStandController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ArmorStandController.java index 24ad3426e..9101904bb 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ArmorStandController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/ArmorStandController.java @@ -81,6 +81,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -91,6 +92,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -104,6 +106,7 @@ public class ArmorStandController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -111,6 +114,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ArmorStandNPC(this); } + return super.getBukkitEntity(); } 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 9d1d02f51..93470e58d 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 @@ -60,6 +60,7 @@ public class BatController extends MobEntityController { if (npc != null) { setAsleep(false); } + } @Override @@ -91,6 +92,7 @@ public class BatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +116,7 @@ public class BatController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -126,6 +129,7 @@ public class BatController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BatNPC(this); } + return super.getBukkitEntity(); } @@ -149,6 +153,7 @@ public class BatController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -159,6 +164,7 @@ public class BatController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } } } \ No newline at end of file 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 d867af809..d5d3ac50c 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 @@ -88,6 +88,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -111,6 +112,7 @@ public class BlazeController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -123,6 +125,7 @@ public class BlazeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BlazeNPC(this); } + return super.getBukkitEntity(); } @@ -146,6 +149,7 @@ public class BlazeController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -153,6 +157,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { npc.update(); } + } } } \ No newline at end of file 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 5ca534cd9..6c6ab7983 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 @@ -71,6 +71,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -86,6 +87,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -106,6 +108,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -128,6 +131,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -136,6 +140,7 @@ public class CaveSpiderController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -148,6 +153,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CaveSpiderNPC(this); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -179,6 +186,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -196,6 +204,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 418a694e0..06562f8ed 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 @@ -72,6 +72,7 @@ public class ChickenController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -80,6 +81,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -95,6 +97,7 @@ public class ChickenController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -115,6 +118,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -137,6 +141,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -145,6 +150,7 @@ public class ChickenController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -157,6 +163,7 @@ public class ChickenController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ChickenNPC(this); } + return super.getBukkitEntity(); } @@ -180,6 +187,7 @@ public class ChickenController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -188,6 +196,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -203,6 +212,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { this.bC = 100; // egg timer } + super.n(); } } 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 b77b1645a..49438aef8 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 @@ -76,6 +76,7 @@ public class CowController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -84,6 +85,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -109,6 +111,7 @@ public class CowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -129,6 +132,7 @@ public class CowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -151,6 +155,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -159,6 +164,7 @@ public class CowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -171,6 +177,7 @@ public class CowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CowNPC(this); } + return super.getBukkitEntity(); } @@ -194,6 +201,7 @@ public class CowController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -202,6 +210,7 @@ public class CowController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 2d54b0737..1355b72c9 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 @@ -74,6 +74,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -89,6 +90,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -109,6 +111,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -131,6 +134,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isProtected()) { super.do_(); } + } @Override @@ -138,6 +142,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -146,6 +151,7 @@ public class CreeperController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -158,6 +164,7 @@ public class CreeperController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CreeperNPC(this); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class CreeperController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -189,6 +197,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -204,6 +213,7 @@ public class CreeperController extends MobEntityController { if (npc == null || allowPowered) { super.onLightningStrike(entitylightning); } + } public void setAllowPowered(boolean allowPowered) { @@ -217,6 +227,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 d41a56fd7..e20dc31f4 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 @@ -94,6 +94,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -123,6 +124,7 @@ public class EnderDragonController extends MobEntityController { motY = old.y; motZ = old.z; } + return res; } @@ -132,6 +134,7 @@ public class EnderDragonController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +147,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderDragonNPC(this); } + return super.getBukkitEntity(); } @@ -167,6 +171,7 @@ public class EnderDragonController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -174,16 +179,19 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { npc.update(); } + if (npc != null) { if (getDragonControllerManager().a().getControllerPhase() == DragonControllerPhase.j) { setHealth(0F); return; } + if (this.c < 0) { for (int i = 0; i < this.b.length; ++i) { this.b[i][0] = this.yaw; this.b[i][1] = this.locY; } + } if (++this.c == this.b.length) { @@ -206,6 +214,7 @@ public class EnderDragonController extends MobEntityController { if (getBukkitEntity().getPassenger() != null) { yaw = getBukkitEntity().getPassenger().getLocation().getYaw() - 180; } + if (motX != 0 || motY != 0 || motZ != 0) { motX *= 0.98; motY *= 0.98; @@ -213,6 +222,7 @@ public class EnderDragonController extends MobEntityController { if (getBukkitEntity().getPassenger() == null) { yaw = Util.getDragonYaw(getBukkitEntity(), motX, motZ); } + setPosition(locX + motX, locY + motY, locZ + motZ); } @@ -225,8 +235,11 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + } + } + if (npc.data().get(NPC.Metadata.COLLIDABLE, false)) { try { KNOCKBACK.invoke(this, this.world.getEntities(this, @@ -240,10 +253,13 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable t) { t.printStackTrace(); } + } + } else { super.n(); } + } private static final MethodHandle HURT = NMS.getMethodHandle(EntityEnderDragon.class, "b", true, 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 61437135f..27f7f01cc 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 @@ -71,6 +71,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -86,6 +87,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -106,6 +108,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -128,6 +131,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -136,6 +140,7 @@ public class EndermanController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -148,6 +153,7 @@ public class EndermanController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EndermanNPC(this); } + return super.getBukkitEntity(); } @@ -178,6 +184,7 @@ public class EndermanController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -186,6 +193,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -203,6 +211,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 4b7a44eb9..815f8c4b9 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 @@ -71,6 +71,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -86,6 +87,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -106,6 +108,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -128,6 +131,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -136,6 +140,7 @@ public class EndermiteController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -148,6 +153,7 @@ public class EndermiteController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EndermiteNPC(this); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class EndermiteController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -179,6 +186,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -196,6 +204,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java index ddb94f694..1bbc3602e 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java @@ -89,6 +89,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { skinTracker = null; } + } @Override @@ -96,6 +97,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -112,6 +114,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } public float a(PathType pathtype) { @@ -147,6 +150,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -164,6 +168,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable velocityChanged = false; Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), () -> EntityHumanNPC.this.velocityChanged = true); } + return damaged; } @@ -180,7 +185,14 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (dead) return; super.die(damagesource); - Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), () -> world.removeEntity(EntityHumanNPC.this), 35); // give enough time for death and smoke animation + Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), () -> world.removeEntity(EntityHumanNPC.this), 35); // give + // enough + // time + // for + // death + // and + // smoke + // animation } @Override @@ -188,6 +200,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -196,6 +209,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +217,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PlayerNPC(this); } + return super.getBukkitEntity(); } @@ -236,6 +251,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (skinName == null) { skinName = npc.getName(); } + return skinName.toLowerCase(); } @@ -259,10 +275,12 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } catch (IOException e) { // swallow } + AttributeInstance range = getAttributeInstance(GenericAttributes.FOLLOW_RANGE); if (range == null) { range = getAttributeMap().b(GenericAttributes.FOLLOW_RANGE); } + range.setValue(Setting.DEFAULT_PATHFINDING_RANGE.asDouble()); controllerJump = new PlayerControllerJump(this); controllerMove = new PlayerControllerMove(this); @@ -277,6 +295,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -304,9 +323,11 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable cu(); jumpTicks = 10; } + } else { jumpTicks = 0; } + be *= 0.98F; bg *= 0.98F; bh *= 0.9F; @@ -315,6 +336,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (jumpTicks > 0) { jumpTicks--; } + } private void moveWithFallDamage(float mx, float my, float mz) { @@ -323,6 +345,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (!npc.isProtected()) { a(this.locY - y, onGround); } + } @Override @@ -331,6 +354,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable super.playerTick(); return; } + Y(); boolean navigating = npc.getNavigator().isNavigating(); if (!navigating && getBukkitEntity() != null @@ -339,15 +363,19 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable && (!npc.isProtected() || SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld()))) { moveWithFallDamage(0, 0, 0); } + if (Math.abs(motX) < EPSILON && Math.abs(motY) < EPSILON && Math.abs(motZ) < EPSILON) { motX = motY = motZ = 0; } + if (navigating) { if (!NMSImpl.isNavigationFinished(navigation)) { NMSImpl.updateNavigation(navigation); } + moveOnCurrentHeading(); } + updateAI(); cB(); if (npc.data().get(NPC.Metadata.PICKUP_ITEMS, false)) { @@ -357,12 +385,16 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { axisalignedbb = this.getBoundingBox().grow(1.0, 0.5, 1.0); } + for (Entity entity : this.world.getEntities(this, axisalignedbb)) { if (!entity.dead) { entity.d(this); } + } + } + } public void setMoveDestination(double x, double y, double z, double speed) { @@ -422,9 +454,12 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (equipment != null && !equipment.isEmpty()) { this.getAttributeMap().b(equipment.a(slot)); } + } + equipmentCache.put(slot, equipment); } + if (!itemChanged) return; Location current = getBukkitEntity().getLocation(packetLocationCache); @@ -433,6 +468,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable for (EnumItemSlot slot : EnumItemSlot.values()) { packets[i++] = new PacketPlayOutEntityEquipment(getId(), slot, getEquipment(slot)); } + NMSImpl.sendPacketsNearby(getBukkitEntity(), current, packets); } 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 66f00a024..44d7a5bc6 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 @@ -57,6 +57,7 @@ public class EvokerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class EvokerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class EvokerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class EvokerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class EvokerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class EvokerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EvokerNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class EvokerController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class EvokerController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 4f6e355a8..c2b592741 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 @@ -79,6 +79,7 @@ public class GhastController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -102,6 +103,7 @@ public class GhastController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -114,6 +116,7 @@ public class GhastController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GhastNPC(this); } + return super.getBukkitEntity(); } @@ -137,6 +140,7 @@ public class GhastController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -144,6 +148,7 @@ public class GhastController extends MobEntityController { if (npc != null) { npc.update(); } + super.M(); } } 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 5ac9ee55e..fa076e848 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 @@ -57,6 +57,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class GiantController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class GiantController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class GiantController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GiantNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class GiantController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class GiantController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -182,6 +190,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 8af08eee6..25cb61cda 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 @@ -57,6 +57,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class GuardianController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class GuardianController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class GuardianController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GuardianNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class GuardianController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -175,6 +182,7 @@ public class GuardianController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } @Override @@ -184,6 +192,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 228eb9f72..703855867 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 @@ -57,6 +57,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class GuardianElderController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GuardianElderNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -175,6 +182,7 @@ public class GuardianElderController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } @Override @@ -184,6 +192,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 cf72bc442..797a461d5 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 @@ -62,6 +62,7 @@ public class HorseController extends MobEntityController { ((Horse) getBukkitEntity()).setDomestication(((Horse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -75,6 +76,7 @@ public class HorseController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -83,6 +85,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -98,6 +101,7 @@ public class HorseController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -118,6 +122,7 @@ public class HorseController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -155,6 +161,7 @@ public class HorseController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -167,6 +174,7 @@ public class HorseController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseNPC(this); } + return super.getBukkitEntity(); } @@ -190,6 +198,7 @@ public class HorseController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -203,12 +212,15 @@ public class HorseController extends MobEntityController { } else { riding = false; } + if (riding) { c(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 115647b68..999e5f044 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 @@ -62,6 +62,7 @@ public class HorseDonkeyController extends MobEntityController { ((Donkey) getBukkitEntity()).setDomestication(((Donkey) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -75,6 +76,7 @@ public class HorseDonkeyController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -83,6 +85,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -98,6 +101,7 @@ public class HorseDonkeyController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -118,6 +122,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -155,6 +161,7 @@ public class HorseDonkeyController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -167,6 +174,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseDonkeyNPC(this); } + return super.getBukkitEntity(); } @@ -190,6 +198,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -203,12 +212,15 @@ public class HorseDonkeyController extends MobEntityController { } else { riding = false; } + if (riding) { c(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 ec525b57c..a6bf5869e 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 @@ -62,6 +62,7 @@ public class HorseMuleController extends MobEntityController { ((Mule) getBukkitEntity()).setDomestication(((Mule) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -75,6 +76,7 @@ public class HorseMuleController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -83,6 +85,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -98,6 +101,7 @@ public class HorseMuleController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -118,6 +122,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -155,6 +161,7 @@ public class HorseMuleController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -167,6 +174,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseMuleNPC(this); } + return super.getBukkitEntity(); } @@ -190,6 +198,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -203,12 +212,15 @@ public class HorseMuleController extends MobEntityController { } else { riding = false; } + if (riding) { c(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 c5a76d18b..14fae33a0 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 @@ -63,6 +63,7 @@ public class HorseSkeletonController extends MobEntityController { .setDomestication(((SkeletonHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -76,6 +77,7 @@ public class HorseSkeletonController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -84,6 +86,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -99,6 +102,7 @@ public class HorseSkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -119,6 +123,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -148,6 +153,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -156,6 +162,7 @@ public class HorseSkeletonController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -168,6 +175,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseSkeletonNPC(this); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -204,12 +213,15 @@ public class HorseSkeletonController extends MobEntityController { } else { riding = false; } + if (riding) { c(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 d9509182b..eecfc5a80 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 @@ -63,6 +63,7 @@ public class HorseZombieController extends MobEntityController { .setDomestication(((ZombieHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -76,6 +77,7 @@ public class HorseZombieController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -84,6 +86,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -99,6 +102,7 @@ public class HorseZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -119,6 +123,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -148,6 +153,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -156,6 +162,7 @@ public class HorseZombieController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -168,6 +175,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseZombieNPC(this); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -204,12 +213,15 @@ public class HorseZombieController extends MobEntityController { } else { riding = false; } + if (riding) { c(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HumanController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HumanController.java index 30ffae8c8..38c0d49e7 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HumanController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HumanController.java @@ -35,9 +35,11 @@ public class HumanController extends AbstractEntityController { if (npc.requiresNameHologram()) { name = teamName; } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } + final GameProfile profile = new GameProfile(uuid, name); final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile, new PlayerInteractManager(nmsWorld), npc); @@ -45,6 +47,7 @@ public class HumanController extends AbstractEntityController { if (skin != null) { skin.apply(handle); } + Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> { if (getBukkitEntity() == null || !getBukkitEntity().isValid() || getBukkitEntity() != handle.getBukkitEntity()) 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 3f95ee6dc..e8dc515d9 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 @@ -57,6 +57,7 @@ public class IllusionerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class IllusionerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class IllusionerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class IllusionerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class IllusionerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class IllusionerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new IllusionerNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class IllusionerController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class IllusionerController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 e06550047..66e50b874 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 @@ -57,6 +57,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class IronGolemController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class IronGolemController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new IronGolemNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class IronGolemController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -182,6 +190,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 95cd15337..c64cbb0d0 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 @@ -63,6 +63,7 @@ public class LlamaController extends MobEntityController { ((Llama) getBukkitEntity()).setDomestication(((Llama) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -76,6 +77,7 @@ public class LlamaController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -84,6 +86,7 @@ public class LlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -99,6 +102,7 @@ public class LlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -119,6 +123,7 @@ public class LlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -148,6 +153,7 @@ public class LlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -156,6 +162,7 @@ public class LlamaController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -168,6 +175,7 @@ public class LlamaController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LlamaNPC(this); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class LlamaController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -204,12 +213,15 @@ public class LlamaController extends MobEntityController { } else { riding = false; } + if (riding) { c(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 282cef22b..a59638b27 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 @@ -51,6 +51,7 @@ public class MagmaCubeController extends MobEntityController { setSize(3, true); this.moveController = new PlayerControllerMove(this); } + } @Override @@ -63,6 +64,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -78,6 +80,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -86,6 +89,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -106,6 +110,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -123,6 +128,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.d(human); } + } @Override @@ -135,6 +141,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -143,6 +150,7 @@ public class MagmaCubeController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -155,6 +163,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MagmaCubeNPC(this); } + return super.getBukkitEntity(); } @@ -178,6 +187,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -195,6 +205,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MobEntityController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MobEntityController.java index 68fb585b6..f1ebfccfa 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MobEntityController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MobEntityController.java @@ -34,6 +34,7 @@ public abstract class MobEntityController extends AbstractEntityController { if (entity instanceof EntityInsentient) { NMSImpl.clearGoals(((EntityInsentient) entity).goalSelector, ((EntityInsentient) entity).targetSelector); } + entity.setPositionRotation(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch()); if (npc != null) { // entity.onGround isn't updated right away - we approximate here so @@ -42,15 +43,19 @@ public abstract class MobEntityController extends AbstractEntityController { if (beneath.isSolid()) { entity.onGround = true; } + try { UUID_FIELD.invoke(entity, npc.getUniqueId()); } catch (Throwable e) { e.printStackTrace(); } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } + } + return entity.getBukkitEntity(); } @@ -61,6 +66,7 @@ public abstract class MobEntityController extends AbstractEntityController { ex.printStackTrace(); return null; } + } private static Constructor getConstructor(Class clazz) { @@ -73,6 +79,7 @@ public abstract class MobEntityController extends AbstractEntityController { } catch (Exception ex) { throw new IllegalStateException("unable to find an entity constructor"); } + } private static final Map, Constructor> CONSTRUCTOR_CACHE = new WeakHashMap<>(); 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 17bf1f384..108be1e09 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 @@ -60,6 +60,7 @@ public class MushroomCowController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -68,6 +69,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class MushroomCowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -110,6 +113,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -132,6 +136,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -140,6 +145,7 @@ public class MushroomCowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -152,6 +158,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MushroomCowNPC(this); } + return super.getBukkitEntity(); } @@ -175,6 +182,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -183,6 +191,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 5fb6e3606..031c0e8ed 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 @@ -58,6 +58,7 @@ public class OcelotController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -66,6 +67,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +83,7 @@ public class OcelotController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -101,6 +104,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -123,6 +127,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.dm(); } + } @Override @@ -130,6 +135,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -138,6 +144,7 @@ public class OcelotController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -150,6 +157,7 @@ public class OcelotController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new OcelotNPC(this); } + return super.getBukkitEntity(); } @@ -173,6 +181,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -181,6 +190,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 7c4ebfccc..34fa913c0 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 @@ -84,6 +84,7 @@ public class ParrotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +108,7 @@ public class ParrotController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -119,6 +121,7 @@ public class ParrotController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ParrotNPC(this); } + return super.getBukkitEntity(); } @@ -142,6 +145,7 @@ public class ParrotController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -152,6 +156,7 @@ public class ParrotController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } } 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 5b8f721dc..6e2f0b10d 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 @@ -59,6 +59,7 @@ public class PigController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -67,6 +68,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -82,6 +84,7 @@ public class PigController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -102,6 +105,7 @@ public class PigController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -138,6 +143,7 @@ public class PigController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -150,6 +156,7 @@ public class PigController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PigNPC(this); } + return super.getBukkitEntity(); } @@ -173,6 +180,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -181,6 +189,7 @@ public class PigController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -196,6 +205,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } } 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 8c8dcc6eb..a1f05b75c 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 @@ -57,6 +57,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class PigZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class PigZombieController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class PigZombieController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PigZombieNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class PigZombieController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 58f7e221d..52e5bfe52 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 @@ -56,6 +56,7 @@ public class PolarBearController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -83,6 +84,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -106,6 +108,7 @@ public class PolarBearController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -118,6 +121,7 @@ public class PolarBearController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PolarBearNPC(this); } + return super.getBukkitEntity(); } @@ -141,6 +145,7 @@ public class PolarBearController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -149,6 +154,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { npc.update(); } + } } 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 8eae5cf31..74460b983 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 @@ -59,6 +59,7 @@ public class RabbitController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -67,6 +68,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -82,6 +84,7 @@ public class RabbitController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -102,6 +105,7 @@ public class RabbitController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -124,6 +128,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -132,6 +137,7 @@ public class RabbitController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +150,7 @@ public class RabbitController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new RabbitNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class RabbitController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -183,6 +191,7 @@ public class RabbitController extends MobEntityController { } else { super.M(); } + } @Override @@ -201,6 +210,7 @@ public class RabbitController extends MobEntityController { this.datawatcher.set(NMSImpl.getRabbitTypeField(), i); return; } + super.setRabbitType(i); } } 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 9465217a1..9a27b2570 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 @@ -58,6 +58,7 @@ public class SheepController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -66,6 +67,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +83,7 @@ public class SheepController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -101,6 +104,7 @@ public class SheepController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -123,6 +127,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -131,6 +136,7 @@ public class SheepController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -143,6 +149,7 @@ public class SheepController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SheepNPC(this); } + return super.getBukkitEntity(); } @@ -166,6 +173,7 @@ public class SheepController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -174,6 +182,7 @@ public class SheepController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 1caaca15c..19a0f9070 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 @@ -58,6 +58,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -73,6 +74,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -82,6 +84,7 @@ public class ShulkerController extends MobEntityController { } else { super.B_(); } + } @Override @@ -102,6 +105,7 @@ public class ShulkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -124,6 +128,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -132,6 +137,7 @@ public class ShulkerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +150,7 @@ public class ShulkerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ShulkerNPC(this); } + return super.getBukkitEntity(); } @@ -167,6 +174,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -182,6 +190,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.n(); } + } @Override @@ -196,6 +205,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 99fcb0d8c..d8cc8ab49 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 @@ -57,6 +57,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class SilverfishController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class SilverfishController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SilverfishNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class SilverfishController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -182,6 +190,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 e7342d92f..5cb2a34fa 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 @@ -57,6 +57,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class SkeletonController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class SkeletonController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SkeletonNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class SkeletonController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -182,6 +190,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 6d42ed0da..94973ac28 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 @@ -57,6 +57,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class SkeletonStrayController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new StrayNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -182,6 +190,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 e25a9611c..04d38cbbc 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 @@ -57,6 +57,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class SkeletonWitherController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SkeletonWitherNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -182,6 +190,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 d786ba6a4..420bdc892 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 @@ -51,6 +51,7 @@ public class SlimeController extends MobEntityController { setSize(3, true); this.moveController = new PlayerControllerMove(this); } + } @Override @@ -63,6 +64,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -78,6 +80,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -86,6 +89,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -106,6 +110,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -123,6 +128,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.d(human); } + } @Override @@ -135,6 +141,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -143,6 +150,7 @@ public class SlimeController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -155,6 +163,7 @@ public class SlimeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SlimeNPC(this); } + return super.getBukkitEntity(); } @@ -178,6 +187,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -195,6 +205,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 14ff9ce21..5fbfb5f96 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 @@ -57,6 +57,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class SnowmanController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class SnowmanController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SnowmanNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class SnowmanController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -182,6 +190,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 b4ad056dd..0b074805a 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 @@ -57,6 +57,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class SpiderController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class SpiderController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SpiderNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class SpiderController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -182,6 +190,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 657fef702..823c631f7 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 @@ -57,6 +57,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class SquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class SquidController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class SquidController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SquidNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class SquidController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -173,6 +180,7 @@ public class SquidController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -182,6 +190,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 6a19fac9c..e7212ce01 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 @@ -46,6 +46,7 @@ public class VexController extends MobEntityController { if (npc != null) { setNoGravity(true); } + } @Override @@ -77,6 +78,7 @@ public class VexController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -100,6 +102,7 @@ public class VexController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +115,7 @@ public class VexController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new VexNPC(this); } + return super.getBukkitEntity(); } @@ -135,6 +139,7 @@ public class VexController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -143,6 +148,7 @@ public class VexController extends MobEntityController { if (npc != null) { npc.update(); } + } } 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 02cbb487e..7b0964569 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 @@ -66,6 +66,7 @@ public class VillagerController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -74,6 +75,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -90,7 +92,9 @@ public class VillagerController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.a(entityhuman, enumhand); } @@ -101,6 +105,7 @@ public class VillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -121,6 +126,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -144,6 +150,7 @@ public class VillagerController extends MobEntityController { blockingATrade = false; return true; } + return super.do_(); } @@ -152,6 +159,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -160,6 +168,7 @@ public class VillagerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -172,6 +181,7 @@ public class VillagerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new VillagerNPC(this); } + return super.getBukkitEntity(); } @@ -195,6 +205,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -203,6 +214,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -218,6 +230,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } } 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 8a986746a..53353295c 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 @@ -58,6 +58,7 @@ public class VindicatorController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -66,6 +67,7 @@ public class VindicatorController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +83,7 @@ public class VindicatorController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -101,6 +104,7 @@ public class VindicatorController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -123,6 +127,7 @@ public class VindicatorController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -131,6 +136,7 @@ public class VindicatorController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -143,6 +149,7 @@ public class VindicatorController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new VindicatorNPC(this); } + return super.getBukkitEntity(); } @@ -166,6 +173,7 @@ public class VindicatorController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -174,6 +182,7 @@ public class VindicatorController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 4a1e383a5..0cf3c2055 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 @@ -57,6 +57,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class WitchController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class WitchController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class WitchController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitchNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class WitchController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class WitchController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -182,6 +190,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 55e5a73df..ff18bf65e 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 @@ -74,6 +74,7 @@ public class WitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +104,7 @@ public class WitherController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -115,6 +117,7 @@ public class WitherController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitherNPC(this); } + return super.getBukkitEntity(); } @@ -138,6 +141,7 @@ public class WitherController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -152,6 +156,7 @@ public class WitherController extends MobEntityController { } else { npc.update(); } + } } 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 8aaefc43a..68eeac9ed 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 @@ -60,6 +60,7 @@ public class WolfController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -68,6 +69,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -83,6 +85,7 @@ public class WolfController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -103,6 +106,7 @@ public class WolfController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -125,6 +129,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -133,6 +138,7 @@ public class WolfController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -145,6 +151,7 @@ public class WolfController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WolfNPC(this); } + return super.getBukkitEntity(); } @@ -168,6 +175,7 @@ public class WolfController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -176,6 +184,7 @@ public class WolfController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 c3371c171..657991e36 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 @@ -57,6 +57,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class ZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class ZombieController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class ZombieController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ZombieNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class ZombieController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 54aeb88ca..77b0e5d7e 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 @@ -57,6 +57,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class ZombieHuskController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class ZombieHuskController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ZombieHuskNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 ab75feaf8..4c10b2974 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 @@ -57,6 +57,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -72,6 +73,7 @@ public class ZombieVillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -92,6 +94,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class ZombieVillagerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +139,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ZombieVillagerNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +163,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null) { super.L(); } + } @Override @@ -165,6 +172,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 86138623b..b8f15847f 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 @@ -67,6 +67,7 @@ public class AreaEffectCloudController extends MobEntityController { } else { super.B_(); } + } @Override @@ -77,6 +78,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class AreaEffectCloudController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -97,6 +100,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new AreaEffectCloudNPC(this); } + return super.getBukkitEntity(); } 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 026d63090..084a4a38e 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 @@ -68,6 +68,7 @@ public class BoatController extends MobEntityController { } else { super.B_(); } + } @Override @@ -78,6 +79,7 @@ public class BoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -91,6 +93,7 @@ public class BoatController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -98,6 +101,7 @@ public class BoatController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BoatNPC(this); } + return super.getBukkitEntity(); } @@ -118,6 +122,7 @@ public class BoatController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 c2ec529cd..8cc08f1a9 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 @@ -68,9 +68,11 @@ public class DragonFireballController extends MobEntityController { if (!npc.isProtected()) { super.B_(); } + } else { super.B_(); } + } @Override @@ -81,6 +83,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -94,6 +97,7 @@ public class DragonFireballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -101,6 +105,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new DragonFireballNPC(this); } + return super.getBukkitEntity(); } @@ -121,6 +126,7 @@ public class DragonFireballController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } } \ No newline at end of file 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 465bd5116..0c909af26 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 @@ -83,9 +83,11 @@ public class EggController extends AbstractEntityController { if (!npc.isProtected()) { super.B_(); } + } else { super.B_(); } + } @Override @@ -96,6 +98,7 @@ public class EggController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -109,6 +112,7 @@ public class EggController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -116,6 +120,7 @@ public class EggController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EggNPC(this); } + return super.getBukkitEntity(); } 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 8b565cfc2..cf3305a05 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 @@ -67,6 +67,7 @@ public class EnderCrystalController extends MobEntityController { } else { super.B_(); } + } @Override @@ -77,6 +78,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class EnderCrystalController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -97,6 +100,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderCrystalNPC(this); } + return super.getBukkitEntity(); } 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 434401b75..82dd10d31 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 @@ -67,9 +67,11 @@ public class EnderPearlController extends MobEntityController { if (!npc.isProtected()) { super.B_(); } + } else { super.B_(); } + } @Override @@ -80,6 +82,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -93,6 +96,7 @@ public class EnderPearlController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -100,6 +104,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderPearlNPC(this); } + return super.getBukkitEntity(); } 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 ff8a0587a..a0e71b8ce 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 @@ -67,6 +67,7 @@ public class EnderSignalController extends MobEntityController { } else { super.B_(); } + } @Override @@ -77,6 +78,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class EnderSignalController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -97,6 +100,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderSignalNPC(this); } + return super.getBukkitEntity(); } 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 f84a77664..1fc06cb45 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 @@ -68,6 +68,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -78,6 +79,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -91,6 +93,7 @@ public class EvokerFangsController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -98,6 +101,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EvokerFangsNPC(this); } + return super.getBukkitEntity(); } 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 32ff9c159..30672b6ea 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 @@ -53,6 +53,7 @@ public class ExperienceOrbController extends MobEntityController { } else { super.B_(); } + } @Override @@ -63,6 +64,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class ExperienceOrbController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ExperienceOrbNPC(this); } + return super.getBukkitEntity(); } 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 d8815820e..4e0d639be 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 @@ -79,9 +79,11 @@ public class FallingBlockController extends AbstractEntityController { motZ *= 0.98; move(EnumMoveType.SELF, motX, motY, motZ); } + } else { super.B_(); } + } @Override @@ -92,6 +94,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -105,6 +108,7 @@ public class FallingBlockController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FallingBlockNPC(this); } + return super.getBukkitEntity(); } @@ -132,6 +137,7 @@ public class FallingBlockController extends AbstractEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } private static final double EPSILON = 0.001; 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 3ddd71236..3e863cab0 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 @@ -53,6 +53,7 @@ public class FireworkController extends MobEntityController { } else { super.B_(); } + } @Override @@ -63,6 +64,7 @@ public class FireworkController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class FireworkController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class FireworkController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FireworkNPC(this); } + return super.getBukkitEntity(); } 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 d9101be6f..01d2b9175 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 @@ -53,6 +53,7 @@ public class FishingHookController extends MobEntityController { } else { super.B_(); } + } @Override @@ -63,6 +64,7 @@ public class FishingHookController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class FishingHookController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class FishingHookController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FishingHookNPC(this); } + return super.getBukkitEntity(); } 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 cdf69497a..14dc9f038 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 @@ -66,6 +66,7 @@ public class ItemController extends AbstractEntityController { } else { super.B_(); } + } @Override @@ -76,6 +77,7 @@ public class ItemController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -83,6 +85,7 @@ public class ItemController extends AbstractEntityController { if (npc == null) { super.d(entityhuman); } + } @Override @@ -96,6 +99,7 @@ public class ItemController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -103,6 +107,7 @@ public class ItemController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ItemNPC(this); } + return super.getBukkitEntity(); } 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 32f3c8634..732945941 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 @@ -66,6 +66,7 @@ public class ItemFrameController extends MobEntityController { } else { super.B_(); } + } @Override @@ -76,6 +77,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -89,6 +91,7 @@ public class ItemFrameController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -96,6 +99,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ItemFrameNPC(this); } + return super.getBukkitEntity(); } 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 a10540344..f2b5dc71a 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 @@ -54,9 +54,11 @@ public class LargeFireballController extends MobEntityController { if (!npc.isProtected()) { super.B_(); } + } else { super.B_(); } + } @Override @@ -67,6 +69,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -80,6 +83,7 @@ public class LargeFireballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -87,6 +91,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LargeFireballNPC(this); } + return super.getBukkitEntity(); } @@ -107,6 +112,7 @@ public class LargeFireballController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } } 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 dfac5f3cc..63cc41aa1 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 @@ -53,6 +53,7 @@ public class LeashController extends MobEntityController { } else { super.B_(); } + } @Override @@ -63,6 +64,7 @@ public class LeashController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class LeashController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class LeashController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LeashNPC(this); } + return super.getBukkitEntity(); } 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 e6547ecc2..c9a5064f7 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 @@ -71,9 +71,11 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isProtected()) { super.B_(); } + } else { super.B_(); } + } @Override @@ -84,6 +86,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -97,6 +100,7 @@ public class LlamaSpitController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -104,6 +108,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LlamaSpitNPC(this); } + return super.getBukkitEntity(); } 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 28285fa16..5928ba1c6 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 @@ -54,6 +54,7 @@ public class MinecartChestController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -64,6 +65,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -77,6 +79,7 @@ public class MinecartChestController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -84,6 +87,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartChestNPC(this); } + return super.getBukkitEntity(); } 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 de5a99306..333710a38 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 @@ -54,6 +54,7 @@ public class MinecartCommandController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -64,6 +65,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -77,6 +79,7 @@ public class MinecartCommandController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -84,6 +87,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartCommandNPC(this); } + return super.getBukkitEntity(); } 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 e7a7569d7..44f77457c 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 @@ -54,6 +54,7 @@ public class MinecartFurnaceController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -64,6 +65,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -77,6 +79,7 @@ public class MinecartFurnaceController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -84,6 +87,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartFurnaceNPC(this); } + return super.getBukkitEntity(); } 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 71db073a7..5e77ffa8d 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 @@ -50,6 +50,7 @@ public class MinecartHopperController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -60,6 +61,7 @@ public class MinecartHopperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -73,6 +75,7 @@ public class MinecartHopperController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override 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 191202dd9..ea436f062 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 @@ -54,6 +54,7 @@ public class MinecartRideableController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -64,6 +65,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -77,6 +79,7 @@ public class MinecartRideableController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -84,6 +87,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartRideableNPC(this); } + return super.getBukkitEntity(); } 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 83e99c911..59ec3646a 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 @@ -50,6 +50,7 @@ public class MinecartSpawnerController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -60,6 +61,7 @@ public class MinecartSpawnerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -73,6 +75,7 @@ public class MinecartSpawnerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override 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 c4e857ef2..7d80cf42d 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 @@ -50,6 +50,7 @@ public class MinecartTNTController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -60,6 +61,7 @@ public class MinecartTNTController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -73,6 +75,7 @@ public class MinecartTNTController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override 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 adf849104..5cfdd2af8 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 @@ -53,6 +53,7 @@ public class PaintingController extends MobEntityController { } else { super.B_(); } + } @Override @@ -63,6 +64,7 @@ public class PaintingController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class PaintingController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class PaintingController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PaintingNPC(this); } + return super.getBukkitEntity(); } 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 d672a45cf..dee6937ce 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 @@ -53,6 +53,7 @@ public class ShulkerBulletController extends MobEntityController { } else { super.B_(); } + } @Override @@ -63,6 +64,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class ShulkerBulletController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ShulkerBulletNPC(this); } + return super.getBukkitEntity(); } 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 1efc4fb4b..d37fb4c28 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 @@ -53,9 +53,11 @@ public class SmallFireballController extends MobEntityController { if (!npc.isProtected()) { super.B_(); } + } else { super.B_(); } + } @Override @@ -66,6 +68,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -79,6 +82,7 @@ public class SmallFireballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -86,6 +90,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SmallFireballNPC(this); } + return super.getBukkitEntity(); } 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 29d423a2c..b331b6f81 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 @@ -53,6 +53,7 @@ public class SnowballController extends MobEntityController { } else { super.B_(); } + } @Override @@ -63,6 +64,7 @@ public class SnowballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class SnowballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class SnowballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SnowballNPC(this); } + return super.getBukkitEntity(); } 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 59616fe82..4b5c2ed01 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 @@ -53,6 +53,7 @@ public class SpectralArrowController extends MobEntityController { } else { super.B_(); } + } @Override @@ -63,6 +64,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class SpectralArrowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SpectralArrowNPC(this); } + return super.getBukkitEntity(); } 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 a30f46d13..38b25a65f 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 @@ -53,6 +53,7 @@ public class TNTPrimedController extends MobEntityController { } else { super.B_(); } + } @Override @@ -63,6 +64,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class TNTPrimedController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new TNTPrimedNPC(this); } + return super.getBukkitEntity(); } 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 a2daf278b..0f9bdc0d3 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 @@ -53,9 +53,11 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isProtected()) { super.B_(); } + } else { super.B_(); } + } @Override @@ -66,6 +68,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -79,6 +82,7 @@ public class ThrownExpBottleController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -86,6 +90,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ThrownExpBottleNPC(this); } + return super.getBukkitEntity(); } 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 e9b70ba0c..84411ccc7 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 @@ -54,6 +54,7 @@ public class ThrownPotionController extends MobEntityController { } else { super.B_(); } + } @Override @@ -64,6 +65,7 @@ public class ThrownPotionController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -77,6 +79,7 @@ public class ThrownPotionController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -87,7 +90,9 @@ public class ThrownPotionController extends MobEntityController { } else { bukkitEntity = new SplashThrownPotionNPC(this); } + } + return super.getBukkitEntity(); } 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 89ce9edf8..d7f2ed646 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 @@ -53,6 +53,7 @@ public class TippedArrowController extends MobEntityController { } else { super.B_(); } + } @Override @@ -63,6 +64,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class TippedArrowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new TippedArrowNPC(this); } + return super.getBukkitEntity(); } 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 7b07ac2c9..60de38c2f 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 @@ -53,6 +53,7 @@ public class WitherSkullController extends MobEntityController { } else { super.B_(); } + } @Override @@ -63,6 +64,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -76,6 +78,7 @@ public class WitherSkullController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -83,6 +86,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitherSkullNPC(this); } + return super.getBukkitEntity(); } diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/CitizensBlockBreaker.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/CitizensBlockBreaker.java index f303ca03f..115c54abc 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/CitizensBlockBreaker.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/CitizensBlockBreaker.java @@ -47,6 +47,7 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { ItemStack current = getCurrentItem(); return current != null ? current.b(block) : false; } + } @Override @@ -64,10 +65,13 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { if (i > 0) { f += i * i + 1; } + } + if (handle.hasEffect(MobEffects.FASTER_DIG)) { f *= 1.0F + (handle.getEffect(MobEffects.FASTER_DIG).getAmplifier() + 1) * 0.2F; } + if (handle.hasEffect(MobEffects.SLOWER_DIG)) { float f1 = 1.0F; switch (handle.getEffect(MobEffects.SLOWER_DIG).getAmplifier()) { @@ -84,15 +88,20 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { default: f1 = 8.1E-4F; } + f *= f1; } + if (handle.a(Material.WATER) && !EnchantmentManager.i(handle)) { f /= 5.0F; } + } + if (!getHandle().onGround) { f /= 5.0F; } + return f; } } \ No newline at end of file diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/EmptyAdvancementDataPlayer.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/EmptyAdvancementDataPlayer.java index e8a90db92..198752d9a 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/EmptyAdvancementDataPlayer.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/EmptyAdvancementDataPlayer.java @@ -66,6 +66,7 @@ public class EmptyAdvancementDataPlayer extends AdvancementDataPlayer { } catch (IllegalAccessException e) { e.printStackTrace(); } + } private static final Field G = NMS.getField(AdvancementDataPlayer.class, "g"); diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSImpl.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSImpl.java index b83b34363..92b1d36d4 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSImpl.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSImpl.java @@ -300,6 +300,7 @@ public class NMSImpl implements NMSBridge { } else if (!handle.world.players.contains(handle)) { handle.world.players.add(handle); } + } @Override @@ -312,6 +313,7 @@ public class NMSImpl implements NMSBridge { PlayerAnimation.ARM_SWING.play(humanHandle.getBukkitEntity()); return; } + AttributeInstance attackDamage = handle.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE); float f = (float) (attackDamage == null ? 1 : attackDamage.getValue()); int i = 0; @@ -319,6 +321,7 @@ public class NMSImpl implements NMSBridge { f += EnchantmentManager.a(handle.getItemInMainHand(), target.getMonsterType()); i += EnchantmentManager.a(Enchantments.KNOCKBACK, handle); } + boolean flag = target.damageEntity(DamageSource.mobAttack(handle), f); if (!flag) return; @@ -328,10 +331,12 @@ public class NMSImpl implements NMSBridge { handle.motX *= 0.6D; handle.motZ *= 0.6D; } + int fireAspectLevel = EnchantmentManager.getFireAspectEnchantmentLevel(handle); if (fireAspectLevel > 0) { target.setOnFire(fireAspectLevel * 4); } + } @Override @@ -343,9 +348,11 @@ public class NMSImpl implements NMSBridge { } catch (Throwable t) { t.printStackTrace(); } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getControllerMove().f = false; } + } @Override @@ -378,14 +385,19 @@ public class NMSImpl implements NMSBridge { if (!changed && !ItemStack.matches(old, curr)) { changed = true; } + equipment.put(slot, curr); } + if (changed) { for (EnumItemSlot slot : EnumItemSlot.values()) { agg.send(new PacketPlayOutEntityEquipment(handle.getId(), slot, equipment.get(slot))); } + } + } + tracker.track(Lists.newArrayList(tracker.trackedPlayers)); } @@ -405,7 +417,9 @@ public class NMSImpl implements NMSBridge { if (callback != null) { callback.accept(entity); } + } + tracker.trackedPlayers.clear(); } }; @@ -453,8 +467,10 @@ public class NMSImpl implements NMSBridge { bserver = (BossBattleServer) ENDERDRAGON_BATTLE_BAR_FIELD .get(ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity))); } + } catch (Exception e) { } + if (bserver == null) return null; BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10); @@ -462,6 +478,7 @@ public class NMSImpl implements NMSBridge { CRAFT_BOSSBAR_HANDLE_FIELD.set(ret, bserver); } catch (Exception e) { } + return ret; } @@ -479,6 +496,7 @@ public class NMSImpl implements NMSBridge { if (aabb == null) { aabb = world.getType(pos).e(world, pos); } + return new BoundingBox(aabb.a, aabb.b, aabb.c, aabb.d, aabb.e, aabb.f); } @@ -578,12 +596,15 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { return null; } + } + try { return (GameProfile) SKULL_PROFILE_FIELD.get(meta); } catch (Exception e) { return null; } + } @Override @@ -596,6 +617,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { throw new CommandException(Messages.INVALID_SOUND); } + } @Override @@ -611,6 +633,7 @@ public class NMSImpl implements NMSBridge { EntityLiving handle = NMSImpl.getHandle((LivingEntity) npc.getEntity()); if (handle == null) { } + return DEFAULT_SPEED; // return (float) // handle.getAttributeInstance(GenericAttributes.d).getValue(); @@ -654,7 +677,9 @@ public class NMSImpl implements NMSBridge { } else { ((EntityInsentient) raw).a(PathType.WATER, oldWater + 1F); } + } + navigation.r().b(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; @@ -667,6 +692,7 @@ public class NMSImpl implements NMSBridge { PathPoint pp = navigation.l().a(i); blocks.add(entity.getWorld().getBlockAt(pp.a, pp.b, pp.c)); } + return blocks; } @@ -686,13 +712,16 @@ public class NMSImpl implements NMSBridge { List blocks = getBlocks(entity, navigation); Util.sendBlockChanges(blocks, null); } + if (oldWater >= 0) { if (raw instanceof EntityPlayer) { ((EntityHumanNPC) raw).a(PathType.WATER, oldWater); } else { ((EntityInsentient) raw).a(PathType.WATER, oldWater); } + } + stopNavigation(navigation); } @@ -704,16 +733,20 @@ public class NMSImpl implements NMSBridge { if (handle instanceof EntityHorse) { handle.width = Math.min(0.99f, oldWidth); } + if (!function.apply(navigation)) { reason = CancelReason.STUCK; } + handle.width = oldWidth; // minecraft requires that an entity fit onto both blocks if width >= 1f, // but we'd prefer to make it just fit on 1 so hack around it a bit. lastSpeed = params.speed(); } + if (params.debug() && !NMSImpl.isNavigationFinished(navigation)) { Util.sendBlockChanges(getBlocks(entity, navigation), Material.YELLOW_FLOWER); } + navigation.a(params.speed()); return NMSImpl.isNavigationFinished(navigation); } @@ -898,30 +931,37 @@ public class NMSImpl implements NMSBridge { if (zDiff < 0.0) { yaw += Math.abs(180 - yaw) * 2; } + if (handle instanceof EntityEnderDragon) { yaw = Util.getDragonYaw(handle.getBukkitEntity(), xDiff, zDiff); } else { yaw = yaw - 90; } + if (headOnly) { setHeadYaw(entity, (float) yaw); } else { look(entity, (float) yaw, (float) pitch); } + return; } + if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(to.getX(), to.getY(), to.getZ(), ((EntityInsentient) handle).O(), ((EntityInsentient) handle).N()); while (((EntityLiving) handle).aP >= 180F) { ((EntityLiving) handle).aP -= 360F; } + while (((EntityLiving) handle).aP < -180F) { ((EntityLiving) handle).aP += 360F; } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -935,18 +975,22 @@ public class NMSImpl implements NMSBridge { } else { look(from, to.getLocation(), false, true); } + } else if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(target, ((EntityInsentient) handle).O(), ((EntityInsentient) handle).N()); while (((EntityLiving) handle).aP >= 180F) { ((EntityLiving) handle).aP -= 360F; } + while (((EntityLiving) handle).aP < -180F) { ((EntityLiving) handle).aP += 360F; } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -988,7 +1032,9 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return super.getBukkitView(); } + } + return this.bukkitEntity; } }; @@ -1034,6 +1080,7 @@ public class NMSImpl implements NMSBridge { if (entity1.dead || !entity1.w(entity)) { entity.stopRiding(); } + } else { if (!entity.dead) { try { @@ -1044,17 +1091,22 @@ public class NMSImpl implements NMSBridge { entity.appendEntityCrashDetails(crashreportsystemdetails); throw new ReportedException(crashreport); } + } + if (entity.dead) { entity.world.removeEntity(entity); } else if (!removeFromPlayerList) { if (!entity.world.players.contains(entity)) { entity.world.players.add(entity); } + } else { entity.world.players.remove(entity); } + } + }; } @@ -1068,10 +1120,12 @@ public class NMSImpl implements NMSBridge { if (key == null) { continue; } + int code = ENTITY_REGISTRY.a(search); ENTITY_REGISTRY.put(code, key, (Class) clazz); return; } + throw new IllegalArgumentException("unable to find valid entity superclass for class " + clazz.toString()); } @@ -1110,6 +1164,7 @@ public class NMSImpl implements NMSBridge { hook.hooked = null; hook.getBukkitEntity().remove(); } + } @Override @@ -1131,10 +1186,13 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } + if (getHandle(entity) instanceof EntityHumanNPC) { ((EntityHumanNPC) getHandle(entity)).setTracked(replace); } + } @Override @@ -1144,9 +1202,11 @@ public class NMSImpl implements NMSBridge { if (bodyYaw == null) { bodyYaw = handle.yaw; } + if (pitch == null) { pitch = handle.pitch; } + List> toSend = Lists.newArrayList(); if (position) { EntityTrackerEntry entry = ((WorldServer) handle.world).getTracker().trackedEntities.get(handle.getId()); @@ -1159,15 +1219,18 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + toSend.add(new PacketPlayOutRelEntityMoveLook(handle.getId(), (short) dx, (short) dy, (short) dz, (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); } else { toSend.add(new PacketPlayOutEntityLook(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); } + if (headYaw != null) { toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F))); } + sendPacketsNearby(null, from.getLocation(), toSend, 64); } @@ -1191,6 +1254,7 @@ public class NMSImpl implements NMSBridge { entities[i] = (EntityPlayer) skinnable; i++; } + NMSImpl.sendPacket(recipient, new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, entities)); } @@ -1211,12 +1275,14 @@ public class NMSImpl implements NMSBridge { if (TEAM_FIELD == null) { TEAM_FIELD = NMS.getGetter(team.getClass(), "team"); } + try { ScoreboardTeam nmsTeam = (ScoreboardTeam) TEAM_FIELD.invoke(team); sendPacket(recipient, new PacketPlayOutScoreboardTeam(nmsTeam, mode)); } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1244,6 +1310,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).setMoveDestination(x, y, z, speed); } + } @Override @@ -1268,6 +1335,7 @@ public class NMSImpl implements NMSBridge { if (!(handle instanceof EntityHuman)) { handle.aN = yaw; } + handle.aP = yaw; } @@ -1317,11 +1385,14 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { return; } + } + try { SKULL_PROFILE_FIELD.set(meta, profile); } catch (Exception e) { } + } @Override @@ -1335,6 +1406,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).setShouldJump(); } + } @Override @@ -1352,6 +1424,7 @@ public class NMSImpl implements NMSBridge { if (entity instanceof Player) { ((Player) entity).setSneaking(sneaking); } + } @Override @@ -1384,6 +1457,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + return false; } @@ -1396,6 +1470,7 @@ public class NMSImpl implements NMSBridge { setter.invoke(ENTITY_REGISTRY.get()); } catch (Throwable e) { } + } @Override @@ -1428,6 +1503,7 @@ public class NMSImpl implements NMSBridge { facingByte = (byte) 3; break; } + Location bedLoc = loc.clone().add(0, -loc.getY(), 0); PacketPlayOutBed bed = new PacketPlayOutBed(from, new BlockPosition(bedLoc.getBlockX(), bedLoc.getBlockY(), bedLoc.getBlockZ())); @@ -1446,6 +1522,7 @@ public class NMSImpl implements NMSBridge { list.forEach(packet -> sendPacket(nearby, packet)); meta.set(nearby.getUniqueId(), entity.getUniqueId().toString(), System.currentTimeMillis()); } + } else { PacketPlayOutAnimation packet = new PacketPlayOutAnimation(from, 2); sendPacketNearby(entity, entity.getLocation(), packet, 64); @@ -1453,8 +1530,11 @@ public class NMSImpl implements NMSBridge { if (meta.remove(player.getUniqueId(), entity.getUniqueId().toString())) { sendPacket(player, packet); } + } + } + } @Override @@ -1470,6 +1550,7 @@ public class NMSImpl implements NMSBridge { if (RANDOM.nextFloat() <= 0.85F && (handle.aq() || handle.au())) { handle.motY += power; } + } @Override @@ -1497,6 +1578,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { Messaging.logTr(Messages.ERROR_UPDATING_NAVIGATION_WORLD, e.getMessage()); } + } @Override @@ -1508,8 +1590,10 @@ public class NMSImpl implements NMSBridge { if (en instanceof EntityHumanNPC) { ((EntityHumanNPC) en).updatePathfindingRange(pathfindingRange); } + return; } + if (PATHFINDING_RANGE == null) return; EntityInsentient handle = (EntityInsentient) en; @@ -1522,6 +1606,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } private static class CitizensInventoryAnvil extends CraftInventoryAnvil implements ForwardingInventory { @@ -1630,6 +1715,7 @@ public class NMSImpl implements NMSBridge { living.setPosition(living.locX - 0.01, living.locY, living.locZ - 0.01); living.setPosition(living.locX + 0.01, living.locY, living.locZ + 0.01); } + } public static void clearGoals(PathfinderGoalSelector... goalSelectors) { @@ -1642,7 +1728,9 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } + } + } private static CompoundTag convertNBT(net.minecraft.server.v1_12_R1.NBTTagCompound tag) { @@ -1652,6 +1740,7 @@ public class NMSImpl implements NMSBridge { for (String key : tag.c()) { tags.put(key, convertNBT(key, tag.get(key))); } + return new CompoundTag("", tags); } @@ -1682,8 +1771,10 @@ public class NMSImpl implements NMSBridge { for (int i = 0; i < list.size(); i++) { converted.add(convertNBT("", list.get(i))); } + return new ListTag(key, tagType, converted); } + } else if (base instanceof net.minecraft.server.v1_12_R1.NBTTagCompound) return convertNBT((net.minecraft.server.v1_12_R1.NBTTagCompound) base); else if (base instanceof net.minecraft.server.v1_12_R1.NBTTagEnd) @@ -1701,13 +1792,16 @@ public class NMSImpl implements NMSBridge { if (f5 > 3.0F) { f5 = 3.0F; } + if (!entity.onGround) { f5 *= 0.5F; } + if (f5 > 0.0F) { f4 += (0.54600006F - f4) * f5 / 3.0F; f3 += (entity.cy() - f3) * f5 / 3.0F; } + entity.b(f, f1, f2, f3); entity.move(EnumMoveType.SELF, entity.motX, entity.motY, entity.motZ); entity.motX *= f4; @@ -1716,10 +1810,12 @@ public class NMSImpl implements NMSBridge { if (!entity.isNoGravity()) { entity.motY -= 0.02D; } + if (entity.positionChanged && entity.c(entity.motX, entity.motY + 0.6000000238418579D - entity.locY + d2, entity.motZ)) { entity.motY = 0.30000001192092896D; } + } else if (entity.au()) { double d2 = entity.locY; entity.b(f, f1, f2, 0.02F); @@ -1730,14 +1826,17 @@ public class NMSImpl implements NMSBridge { if (!entity.isNoGravity()) { entity.motY -= 0.02D; } + if (entity.positionChanged && entity.c(entity.motX, entity.motY + 0.6000000238418579D - entity.locY + d2, entity.motZ)) { entity.motY = 0.30000001192092896D; } + } else if (entity.cP()) { if (entity.motY > -0.5D) { entity.fallDistance = 1.0F; } + Vec3D vec3d = entity.aJ(); float f6 = entity.pitch * 0.017453292F; double d0 = Math.sqrt(vec3d.x * vec3d.x + vec3d.z * vec3d.z); @@ -1752,16 +1851,19 @@ public class NMSImpl implements NMSBridge { entity.motX += vec3d.x * d4 / d0; entity.motZ += vec3d.z * d4 / d0; } + if (f6 < 0.0F) { double d4 = d1 * -MathHelper.sin(f6) * 0.04D; entity.motY += d4 * 3.2D; entity.motX -= vec3d.x * d4 / d0; entity.motZ -= vec3d.z * d4 / d0; } + if (d0 > 0.0D) { entity.motX += (vec3d.x / d0 * d1 - entity.motX) * 0.1D; entity.motZ += (vec3d.z / d0 * d1 - entity.motZ) * 0.1D; } + entity.motX *= 0.9900000095367432D; entity.motY *= 0.9800000190734863D; entity.motZ *= 0.9900000095367432D; @@ -1774,11 +1876,14 @@ public class NMSImpl implements NMSBridge { entity.a(f8 > 4 ? SoundEffects.bQ : SoundEffects.bY, 1.0F, 1.0F); entity.damageEntity(DamageSource.FLY_INTO_WALL, f8); } + } + if (entity.onGround && !entity.world.isClientSide && entity.getFlag(7) && !CraftEventFactory.callToggleGlideEvent(entity, false).isCancelled()) { entity.setFlag(7, false); } + } else { float f9 = 0.91F; BlockPosition.PooledBlockPosition blockposition_pooledblockposition = BlockPosition.PooledBlockPosition @@ -1786,6 +1891,7 @@ public class NMSImpl implements NMSBridge { if (entity.onGround) { f9 = entity.world.getType(blockposition_pooledblockposition).getBlock().frictionFactor * 0.91F; } + float f4 = 0.16277136F / (f9 * f9 * f9); float f3; if (entity.onGround) { @@ -1793,12 +1899,14 @@ public class NMSImpl implements NMSBridge { } else { f3 = entity.aR; } + entity.b(f, f1, f2, f3); f9 = 0.91F; if (entity.onGround) { f9 = entity.world.getType(blockposition_pooledblockposition.e(entity.locX, entity.getBoundingBox().b - 1.0D, entity.locZ)).getBlock().frictionFactor * 0.91F; } + if (entity.m_()) { entity.motX = MathHelper.a(entity.motX, -0.15000000596046448D, 0.15000000596046448D); entity.motZ = MathHelper.a(entity.motZ, -0.15000000596046448D, 0.15000000596046448D); @@ -1806,15 +1914,19 @@ public class NMSImpl implements NMSBridge { if (entity.motY < -0.15D) { entity.motY = -0.15D; } + boolean flag = entity.isSneaking(); if (flag && entity.motY < 0.0D) { entity.motY = 0.0D; } + } + entity.move(EnumMoveType.SELF, entity.motX, entity.motY, entity.motZ); if (entity.positionChanged && entity.m_()) { entity.motY = 0.2D; } + if (entity.hasEffect(MobEffects.LEVITATION)) { entity.motY += (0.05D * (entity.getEffect(MobEffects.LEVITATION).getAmplifier() + 1) - entity.motY) * 0.2D; @@ -1827,16 +1939,21 @@ public class NMSImpl implements NMSBridge { } else { entity.motY = 0.0D; } + } else if (!entity.isNoGravity()) { entity.motY -= 0.08D; } + } + entity.motY *= 0.9800000190734863D; entity.motX *= f9; entity.motZ *= f9; blockposition_pooledblockposition.t(); } + } + entity.aF = entity.aG; double d2 = entity.locX - entity.lastX; double d0 = entity.locZ - entity.lastZ; @@ -1845,6 +1962,7 @@ public class NMSImpl implements NMSBridge { if (f10 > 1.0F) { f10 = 1.0F; } + entity.aG += (f10 - entity.aG) * 0.4F; entity.aH += entity.aG; } @@ -1875,6 +1993,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + return null; } @@ -1896,6 +2015,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } public static boolean isLeashed(NPC npc, Supplier isLeashed, EntityInsentient entity) { @@ -1918,6 +2038,7 @@ public class NMSImpl implements NMSBridge { if (mat != null) { minecart.setDisplayBlock(Block.getById(mat.getId()).fromLegacyData(data)); } + minecart.setDisplayBlockOffset(offset); } @@ -1945,10 +2066,13 @@ public class NMSImpl implements NMSBridge { || location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) { continue; } + for (Packet packet : packets) { NMSImpl.sendPacket(player, packet); } + } + } public static void sendPacketsNearby(Player from, Location location, Packet... packets) { @@ -1961,6 +2085,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setSize(Entity entity, float f, float f1, boolean justCreated) { @@ -1974,7 +2099,9 @@ public class NMSImpl implements NMSBridge { if (entity.width > f2 && !justCreated && !entity.world.isClientSide) { entity.move(EnumMoveType.SELF, (f2 - entity.width) / 2, 0.0D, (f2 - entity.width) / 2); } + } + } public static void stopNavigation(NavigationAbstract navigation) { @@ -1992,6 +2119,7 @@ public class NMSImpl implements NMSBridge { } else if (entity instanceof EntityHumanNPC) { ((EntityHumanNPC) entity).updateAI(); } + } public static void updateNavigation(NavigationAbstract navigation) { @@ -2044,6 +2172,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage()); } + try { MAKE_REQUEST = YggdrasilAuthenticationService.class.getDeclaredMethod("makeRequest", URL.class, Object.class, Class.class); @@ -2051,6 +2180,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception ex) { ex.printStackTrace(); } + try { ENDERMAN_ANGRY = (DataWatcherObject) NMS.getField(EntityEnderman.class, "by").get(null); } catch (IllegalArgumentException e) { @@ -2058,5 +2188,6 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } } diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerAnimationImpl.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerAnimationImpl.java index 129a72f92..1ef2b2e21 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerAnimationImpl.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerAnimationImpl.java @@ -21,6 +21,7 @@ public class PlayerAnimationImpl { playDefaultAnimation(player, to, DEFAULTS.get(animation)); return; } + switch (animation) { case SNEAK: player.getBukkitEntity().setSneaking(true); @@ -51,6 +52,7 @@ public class PlayerAnimationImpl { default: throw new UnsupportedOperationException(); } + } protected static void playDefaultAnimation(EntityPlayer player, Iterable to, int code) { @@ -62,6 +64,7 @@ public class PlayerAnimationImpl { for (Player player : to) { NMSImpl.sendPacket(player, packet); } + } private static EnumMap DEFAULTS = Maps.newEnumMap(PlayerAnimation.class); diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerControllerMove.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerControllerMove.java index 6faaec417..17e4a0c84 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerControllerMove.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerControllerMove.java @@ -44,6 +44,7 @@ public class PlayerControllerMove extends ControllerMove { this.a.bf = 0.0F; return; } + float f = (float) Math.toDegrees(Math.atan2(d1, d0)) - 90.0F; this.a.yaw = a(this.a.yaw, f, 90.0F); NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw); @@ -61,8 +62,11 @@ public class PlayerControllerMove extends ControllerMove { } else { ((EntityInsentient) this.a).getControllerJump().a(); } + } + } + } @Override @@ -80,15 +84,18 @@ public class PlayerControllerMove extends ControllerMove { if (f3 > f2) { f3 = f2; } + if (f3 < -f2) { f3 = -f2; } + float f4 = f + f3; if (f4 < 0.0F) { f4 += 360.0F; } else if (f4 > 360.0F) { f4 -= 360.0F; } + return f4; } diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerNavigation.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerNavigation.java index fc8e65255..ff71763c6 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerNavigation.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerNavigation.java @@ -114,8 +114,11 @@ public class PlayerNavigation extends NavigationAbstract { || localPathType == PathType.DAMAGE_OTHER) return false; } + } + } + return true; } @@ -125,9 +128,11 @@ public class PlayerNavigation extends NavigationAbstract { this.c = null; return false; } + if (!paramPathEntity.a(this.c)) { this.c = paramPathEntity; } + q_(); if (this.c.d() <= 0) return false; @@ -144,9 +149,11 @@ public class PlayerNavigation extends NavigationAbstract { if (paramVec3D.distanceSquared(this.k) < 2.25D) { p(); } + this.j = this.e; this.k = paramVec3D; } + if (this.c != null && !this.c.b()) { Vec3D localVec3D = this.c.f(); if (localVec3D.equals(this.l)) { @@ -156,14 +163,17 @@ public class PlayerNavigation extends NavigationAbstract { double d1 = paramVec3D.f(this.l); this.o = this.a.cy() > 0.0F ? d1 / this.a.cy() * 1000.0D : 0.0D; } + if (this.o > 0.0D && this.m > this.o * 3.0D) { this.l = Vec3D.a; this.m = 0L; this.o = 0.0D; p(); } + this.n = System.currentTimeMillis(); } + } @Override @@ -191,9 +201,11 @@ public class PlayerNavigation extends NavigationAbstract { if (d1 >= 0.0D) { d7 += 1.0D; } + if (d2 >= 0.0D) { d8 += 1.0D; } + d7 /= d1; d8 /= d2; int m = d1 < 0.0D ? -1 : 1; @@ -212,9 +224,11 @@ public class PlayerNavigation extends NavigationAbstract { k += n; i4 = i2 - k; } + if (!a(j, (int) paramVec3D1.y, k, paramInt1, paramInt2, paramInt3, paramVec3D1, d1, d2)) return false; } + return true; } @@ -231,22 +245,27 @@ public class PlayerNavigation extends NavigationAbstract { while (localBlockPosition.getY() > 0 && this.b.getType(localBlockPosition).getMaterial() == Material.AIR) { localBlockPosition = localBlockPosition.down(); } + if (localBlockPosition.getY() > 0) return b2(localBlockPosition.up()); while (localBlockPosition.getY() < this.b.getHeight() && this.b.getType(localBlockPosition).getMaterial() == Material.AIR) { localBlockPosition = localBlockPosition.up(); } + paramBlockPosition = localBlockPosition; } + if (this.b.getType(paramBlockPosition).getMaterial().isBuildable()) { localBlockPosition = paramBlockPosition.up(); while (localBlockPosition.getY() < this.b.getHeight() && this.b.getType(localBlockPosition).getMaterial().isBuildable()) { localBlockPosition = localBlockPosition.up(); } + return b2(localBlockPosition); } + return b2(paramBlockPosition); } @@ -265,7 +284,9 @@ public class PlayerNavigation extends NavigationAbstract { if (!localBlock.b(this.b, localBlockPosition)) return false; } + } + return true; } @@ -301,6 +322,7 @@ public class PlayerNavigation extends NavigationAbstract { if (this.g) { k(); } + if (o()) return; if (b()) { @@ -313,7 +335,9 @@ public class PlayerNavigation extends NavigationAbstract { && MathHelper.floor(localVec3D.z) == MathHelper.floor(localObject.z)) { this.c.c(this.c.e() + 1); } + } + m(); if (o()) return; @@ -356,9 +380,11 @@ public class PlayerNavigation extends NavigationAbstract { this.p = this.b.getTime(); this.g = false; } + } else { this.g = true; } + } @Override @@ -379,7 +405,9 @@ public class PlayerNavigation extends NavigationAbstract { i1 = i2; break; } + } + this.f = this.a.width > 0.75F ? this.a.width / 2.0F : 0.75F - this.a.width / 2.0F; Vec3D localVec3D2 = this.c.f(); if (MathHelper.e((float) (this.a.locX - (localVec3D2.x + 0.5D))) < this.f @@ -387,6 +415,7 @@ public class PlayerNavigation extends NavigationAbstract { && Math.abs(this.a.locY - localVec3D2.y) < 1.0D) { this.c.c(this.c.e() + 1); } + int i3 = MathHelper.f(this.a.width); int i4 = MathHelper.f(this.a.length); int i5 = i3; @@ -395,7 +424,9 @@ public class PlayerNavigation extends NavigationAbstract { this.c.c(i6); break; } + } + a(localVec3D1); } @@ -427,8 +458,11 @@ public class PlayerNavigation extends NavigationAbstract { this.c.b(j - 1); return; } + } + } + } @Override @@ -452,6 +486,7 @@ public class PlayerNavigation extends NavigationAbstract { if (k > 16) return (int) this.a.getBoundingBox().b; } + return j; } 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 2648aa536..00e23bbed 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 @@ -54,6 +54,7 @@ public class PlayerPathfinder extends Pathfinder { i++; localPathPoint = localPathPoint.h; } + PathPoint[] arrayOfPathPoint = new PathPoint[i]; localPathPoint = paramPathPoint2; arrayOfPathPoint[--i] = localPathPoint; @@ -61,6 +62,7 @@ public class PlayerPathfinder extends Pathfinder { localPathPoint = localPathPoint.h; arrayOfPathPoint[--i] = localPathPoint; } + return new PathEntity(arrayOfPathPoint); } @@ -78,14 +80,17 @@ public class PlayerPathfinder extends Pathfinder { if (i >= 200) { break; } + PathPoint localObject2 = this.a.c(); if (localObject2.equals(paramPathPoint2)) { localObject1 = paramPathPoint2; break; } + if (localObject2.c(paramPathPoint2) < ((PathPoint) localObject1).c(paramPathPoint2)) { localObject1 = localObject2; } + localObject2.i = true; int j = this.d.a(this.c, localObject2, paramPathPoint2, paramFloat); for (int k = 0; k < j; k++) { @@ -104,9 +109,13 @@ public class PlayerPathfinder extends Pathfinder { localPathPoint.g = localPathPoint.e + localPathPoint.f; this.a.a(localPathPoint); } + } + } + } + if (localObject1 == paramPathPoint1) return null; Object localObject2 = pa(paramPathPoint1, (PathPoint) localObject1); diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerPathfinderAbstract.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerPathfinderAbstract.java index 9197b7367..33d576c6d 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerPathfinderAbstract.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerPathfinderAbstract.java @@ -40,6 +40,7 @@ public abstract class PlayerPathfinderAbstract extends PathfinderAbstract { localPathPoint = new PathPoint(paramInt1, paramInt2, paramInt3); this.c.a(j, localPathPoint); } + return localPathPoint; } 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 be5f5600f..aa41eee88 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 @@ -59,10 +59,13 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localPathType2 == PathType.DAMAGE_FIRE || localBlock == Blocks.df) { localPathType1 = PathType.DAMAGE_FIRE; } + if (localPathType2 == PathType.DAMAGE_CACTUS) { localPathType1 = PathType.DAMAGE_CACTUS; } + } + localPathType1 = a(paramIBlockAccess, paramInt1, paramInt2, paramInt3, localPathType1); return localPathType1; } @@ -84,7 +87,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (paramEntityInsentient.a(localPathType2) >= paramEntityInsentient.a((PathType) localObject)) { localObject = localPathType2; } + } + if (localPathType1 == PathType.OPEN && paramEntityInsentient.a((PathType) localObject) == 0.0F) return PathType.OPEN; return (PathType) localObject; @@ -108,7 +113,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (paramEntityInsentient.a(localPathType2) >= paramEntityInsentient.a((PathType) localObject)) { localObject = localPathType2; } + } + if (localPathType1 == PathType.OPEN && paramEntityInsentient.a((PathType) localObject) == 0.0F) return PathType.OPEN; return (PathType) localObject; @@ -127,9 +134,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localPathType == PathType.DOOR_WOOD_CLOSED && paramBoolean1 && paramBoolean2) { localPathType = PathType.WALKABLE; } + if (localPathType == PathType.DOOR_OPEN && !paramBoolean2) { localPathType = PathType.BLOCKED; } + if (localPathType == PathType.RAIL && !(paramIBlockAccess.getType(paramBlockPosition) .getBlock() instanceof BlockMinecartTrackAbstract) @@ -137,13 +146,18 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { .getBlock() instanceof BlockMinecartTrackAbstract)) { localPathType = PathType.FENCE; } + if (i == 0 && k == 0 && m == 0) { paramPathType = localPathType; } + paramEnumSet.add(localPathType); } + } + } + return paramPathType; } @@ -162,10 +176,15 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { } else if (localBlock == Blocks.FIRE) { paramPathType = PathType.DANGER_FIRE; } + } + } + } + } + localPooledBlockPosition.t(); return paramPathType; } @@ -179,6 +198,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (this.b.a(localPathType) >= 0.0F) { k = MathHelper.d(Math.max(1.0F, this.b.P)); } + BlockPosition localBlockPosition = new BlockPosition(paramPathPoint1.a, paramPathPoint1.b, paramPathPoint1.c) .down(); double d = paramPathPoint1.b - (1.0D - this.a.getType(localBlockPosition).e(this.a, localBlockPosition).e); @@ -193,15 +213,19 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localPathPoint1 != null && !localPathPoint1.i && localPathPoint1.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint1; } + if (localPathPoint2 != null && !localPathPoint2.i && localPathPoint2.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint2; } + if (localPathPoint3 != null && !localPathPoint3.i && localPathPoint3.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint3; } + if (localPathPoint4 != null && !localPathPoint4.i && localPathPoint4.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint4; } + int m = localPathPoint4 == null || localPathPoint4.m == PathType.OPEN || localPathPoint4.l != 0.0F ? 1 : 0; int n = localPathPoint1 == null || localPathPoint1.m == PathType.OPEN || localPathPoint1.l != 0.0F ? 1 : 0; int i1 = localPathPoint3 == null || localPathPoint3.m == PathType.OPEN || localPathPoint3.l != 0.0F ? 1 : 0; @@ -213,28 +237,36 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localPathPoint5 != null && !localPathPoint5.i && localPathPoint5.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint5; } + } + if (m != 0 && i1 != 0) { localPathPoint5 = pa(paramPathPoint1.a + 1, paramPathPoint1.b, paramPathPoint1.c - 1, k, d, EnumDirection.NORTH); if (localPathPoint5 != null && !localPathPoint5.i && localPathPoint5.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint5; } + } + if (n != 0 && i2 != 0) { localPathPoint5 = pa(paramPathPoint1.a - 1, paramPathPoint1.b, paramPathPoint1.c + 1, k, d, EnumDirection.SOUTH); if (localPathPoint5 != null && !localPathPoint5.i && localPathPoint5.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint5; } + } + if (n != 0 && i1 != 0) { localPathPoint5 = pa(paramPathPoint1.a + 1, paramPathPoint1.b, paramPathPoint1.c + 1, k, d, EnumDirection.SOUTH); if (localPathPoint5 != null && !localPathPoint5.i && localPathPoint5.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[i++] = localPathPoint5; } + } + return i; } @@ -253,6 +285,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { MathHelper.floor(this.b.locZ)); localObject2 = this.a.getType(localObject1).getBlock(); } + } else if (this.b.onGround) { i = MathHelper.floor(this.b.getBoundingBox().b + 0.5D); } else { @@ -261,8 +294,10 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { || this.a.getType(localObject1).getBlock().b(this.a, localObject1)) && localObject1.getY() > 0) { localObject1 = localObject1.down(); } + i = localObject1.up().getY(); } + localObject1 = new BlockPosition(this.b); Object localObject2 = pa(this.b, localObject1.getX(), i, localObject1.getZ()); if (this.b.a((PathType) localObject2) < 0.0F) { @@ -276,7 +311,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (this.b.a(localPathType) >= 0.0F) return a(localBlockPosition.getX(), localBlockPosition.getY(), localBlockPosition.getZ()); } + } + return a(localObject1.getX(), i, localObject1.getZ()); } @@ -305,6 +342,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { localPathPoint.m = localPathType1; localPathPoint.l = Math.max(localPathPoint.l, f); } + if (localPathType1 == PathType.WALKABLE) return localPathPoint; if (localPathPoint == null && paramInt4 > 0 && localPathType1 != PathType.FENCE @@ -321,8 +359,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { 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); @@ -336,7 +377,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { localPathPoint.l = Math.max(localPathPoint.l, f); return localPathPoint; } + } + int i = 0; while (paramInt2 > 0 && localPathType1 == PathType.OPEN) { paramInt2--; @@ -350,8 +393,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { localPathPoint.l = Math.max(localPathPoint.l, f); } else if (f < 0.0F) return null; + } + } + return localPathPoint; } diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerlistTrackerEntry.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerlistTrackerEntry.java index 003d3a83a..57d45199c 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerlistTrackerEntry.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerlistTrackerEntry.java @@ -43,12 +43,14 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { if (res == null) { updateLastPlayer(player); } + return res; } }); } catch (Throwable e) { e.printStackTrace(); } + } else { try { Set delegate = super.trackedPlayers; @@ -59,6 +61,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { if (res) { updateLastPlayer(player); } + return res; } @@ -70,7 +73,9 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (Throwable e) { e.printStackTrace(); } + } + } public PlayerlistTrackerEntry(EntityTrackerEntry entry) { @@ -86,6 +91,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { Bukkit.getPluginManager().callEvent( new NPCLinkToPlayerEvent(((NPCHolder) tracker).getNPC(), lastUpdatedPlayer.getBukkitEntity())); } + } @Override @@ -109,7 +115,9 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (Throwable e) { e.printStackTrace(); } + } + } super.updatePlayer(entityplayer); @@ -123,6 +131,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return 0; } @@ -134,6 +143,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return 0; } @@ -145,6 +155,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return 0; } @@ -156,6 +167,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return null; } @@ -167,6 +179,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return false; } @@ -188,7 +201,9 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { TRACKING_MAP_SETTER = NMS.getFirstSetter(EntityTrackerEntry.class, Map.class); TRACKING_MAP_GETTER = NMS.getFirstGetter(EntityTrackerEntry.class, Map.class); } + } catch (Exception e) { } + } } diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ArmorStandController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ArmorStandController.java index 8e70625b1..11bfc9163 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ArmorStandController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/ArmorStandController.java @@ -90,6 +90,7 @@ public class ArmorStandController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -101,6 +102,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +116,7 @@ public class ArmorStandController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -121,6 +124,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ArmorStandNPC(this); } + return super.getBukkitEntity(); } @@ -140,6 +144,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { npc.update(); } + } } } \ No newline at end of file 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 992524804..c09d1d432 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 @@ -64,6 +64,7 @@ public class BatController extends MobEntityController { if (npc != null) { setAsleep(false); } + } @Override @@ -90,6 +91,7 @@ public class BatController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -111,6 +113,7 @@ public class BatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -139,6 +142,7 @@ public class BatController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -146,6 +150,7 @@ public class BatController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BatNPC(this); } + return super.getBukkitEntity(); } @@ -164,6 +169,7 @@ public class BatController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -179,6 +185,7 @@ public class BatController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } @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 08e49e9e3..e91fa8eb7 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 @@ -87,6 +87,7 @@ public class BlazeController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -108,6 +109,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -136,6 +138,7 @@ public class BlazeController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -143,6 +146,7 @@ public class BlazeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BlazeNPC(this); } + return super.getBukkitEntity(); } @@ -161,6 +165,7 @@ public class BlazeController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -173,6 +178,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 f8447639a..f419ef72d 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 @@ -75,6 +75,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -90,6 +91,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -105,6 +107,7 @@ public class CaveSpiderController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -118,6 +121,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -133,6 +137,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -161,6 +166,7 @@ public class CaveSpiderController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -168,6 +174,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CaveSpiderNPC(this); } + return super.getBukkitEntity(); } @@ -186,6 +193,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -199,6 +207,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -215,6 +224,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 a45ae317d..77a60760e 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 @@ -78,6 +78,7 @@ public class ChickenController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -86,6 +87,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -101,6 +103,7 @@ public class ChickenController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -116,6 +119,7 @@ public class ChickenController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -129,6 +133,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -144,6 +149,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -172,6 +178,7 @@ public class ChickenController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +186,7 @@ public class ChickenController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ChickenNPC(this); } + return super.getBukkitEntity(); } @@ -197,6 +205,7 @@ public class ChickenController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -210,6 +219,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -217,6 +227,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { this.bI = 100; // egg timer } + try { super.movementTick(); } catch (NoSuchMethodError ex) { @@ -225,7 +236,9 @@ public class ChickenController extends MobEntityController { } catch (Throwable ex2) { ex2.printStackTrace(); } + } + } @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 83888c45a..9a96d68ce 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 @@ -71,6 +71,7 @@ public class CodController extends MobEntityController { if (npc != null) { this.moveController = new ControllerMove(this); } + } @Override @@ -83,6 +84,7 @@ public class CodController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -107,9 +109,11 @@ public class CodController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, f, f1, f2)) { super.a(f, f1, f2); } + } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -125,6 +129,7 @@ public class CodController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -138,6 +143,7 @@ public class CodController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -153,6 +159,7 @@ public class CodController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -181,6 +188,7 @@ public class CodController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -188,6 +196,7 @@ public class CodController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CodNPC(this); } + return super.getBukkitEntity(); } @@ -206,6 +215,7 @@ public class CodController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -218,10 +228,12 @@ public class CodController extends MobEntityController { if (npc != null) { NMSImpl.setNotInSchool(this); } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -230,10 +242,12 @@ public class CodController extends MobEntityController { if (npc != null) { this.C = false; } + super.movementTick(); if (npc != null) { this.C = lastInWater; } + } @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 71bb093e2..df0f9c6fd 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 @@ -80,6 +80,7 @@ public class CowController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -88,6 +89,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -113,6 +115,7 @@ public class CowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -128,6 +131,7 @@ public class CowController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -141,6 +145,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -156,6 +161,7 @@ public class CowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -184,6 +190,7 @@ public class CowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -191,6 +198,7 @@ public class CowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CowNPC(this); } + return super.getBukkitEntity(); } @@ -209,6 +217,7 @@ public class CowController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -222,6 +231,7 @@ public class CowController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 5e456be52..4cf193206 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 @@ -78,6 +78,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -93,6 +94,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -108,6 +110,7 @@ public class CreeperController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -121,6 +124,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -136,6 +140,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -163,6 +168,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isProtected()) { super.dB(); } + } @Override @@ -171,6 +177,7 @@ public class CreeperController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -178,6 +185,7 @@ public class CreeperController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CreeperNPC(this); } + return super.getBukkitEntity(); } @@ -196,6 +204,7 @@ public class CreeperController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -209,6 +218,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -223,6 +233,7 @@ public class CreeperController extends MobEntityController { if (npc == null || allowPowered) { super.onLightningStrike(entitylightning); } + } public void setAllowPowered(boolean allowPowered) { @@ -236,6 +247,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 986ceb6ca..429d88a97 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 @@ -71,6 +71,7 @@ public class DolphinController extends MobEntityController { this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED) .setValue(this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue() / 10); } + } @Override @@ -83,6 +84,7 @@ public class DolphinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -97,9 +99,11 @@ public class DolphinController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, f, f1, f2, cK())) { super.a(f, f1, f2); } + } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -120,6 +124,7 @@ public class DolphinController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -133,6 +138,7 @@ public class DolphinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -148,6 +154,7 @@ public class DolphinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -176,6 +183,7 @@ public class DolphinController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -183,6 +191,7 @@ public class DolphinController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new DolphinNPC(this); } + return super.getBukkitEntity(); } @@ -201,6 +210,7 @@ public class DolphinController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -220,11 +230,13 @@ public class DolphinController extends MobEntityController { if (npc != null && npc.isProtected()) { inProtectedTick = true; } + super.tick(); inProtectedTick = false; if (npc != null) { npc.update(); } + } @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 73132890c..7d5ea72b7 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 @@ -75,6 +75,7 @@ public class DrownedController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -90,6 +91,7 @@ public class DrownedController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -105,6 +107,7 @@ public class DrownedController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -118,6 +121,7 @@ public class DrownedController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -133,6 +137,7 @@ public class DrownedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -161,6 +166,7 @@ public class DrownedController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -168,6 +174,7 @@ public class DrownedController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new DrownedNPC(this); } + return super.getBukkitEntity(); } @@ -186,6 +193,7 @@ public class DrownedController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -199,6 +207,7 @@ public class DrownedController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 dc3641a79..fc7915ae3 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 @@ -94,6 +94,7 @@ public class EnderDragonController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -115,6 +116,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -149,6 +151,7 @@ public class EnderDragonController extends MobEntityController { motY = old.y; motZ = old.z; } + return res; } @@ -158,6 +161,7 @@ public class EnderDragonController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -165,6 +169,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderDragonNPC(this); } + return super.getBukkitEntity(); } @@ -183,6 +188,7 @@ public class EnderDragonController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -195,16 +201,19 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { npc.update(); } + if (npc != null) { if (getDragonControllerManager().a().getControllerPhase() == DragonControllerPhase.DYING) { setHealth(0F); return; } + if (this.c < 0) { for (int i = 0; i < this.b.length; ++i) { this.b[i][0] = this.yaw; this.b[i][1] = this.locY; } + } if (++this.c == this.b.length) { @@ -227,6 +236,7 @@ public class EnderDragonController extends MobEntityController { if (getBukkitEntity().getPassenger() != null) { yaw = getBukkitEntity().getPassenger().getLocation().getYaw() - 180; } + if (motX != 0 || motY != 0 || motZ != 0) { motX *= 0.98; motY *= 0.98; @@ -234,6 +244,7 @@ public class EnderDragonController extends MobEntityController { if (getBukkitEntity().getPassenger() == null) { yaw = Util.getDragonYaw(getBukkitEntity(), motX, motZ); } + setPosition(locX + motX, locY + motY, locZ + motZ); } @@ -246,8 +257,11 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + } + } + if (npc.data().get(NPC.Metadata.COLLIDABLE, false)) { try { KNOCKBACK.invoke(this, this.world.getEntities(this, @@ -261,7 +275,9 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable t) { t.printStackTrace(); } + } + } else { try { super.movementTick(); @@ -271,8 +287,11 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable ex2) { ex2.printStackTrace(); } + } + } + } @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 4f052a256..0251fcb01 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 @@ -75,6 +75,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -90,6 +91,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -105,6 +107,7 @@ public class EndermanController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -118,6 +121,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -133,6 +137,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -161,6 +166,7 @@ public class EndermanController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -168,6 +174,7 @@ public class EndermanController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EndermanNPC(this); } + return super.getBukkitEntity(); } @@ -186,6 +193,7 @@ public class EndermanController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -206,6 +214,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -222,6 +231,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 6140bd2ab..68c8d9ee2 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 @@ -75,6 +75,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -90,6 +91,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -105,6 +107,7 @@ public class EndermiteController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -118,6 +121,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -133,6 +137,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -161,6 +166,7 @@ public class EndermiteController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -168,6 +174,7 @@ public class EndermiteController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EndermiteNPC(this); } + return super.getBukkitEntity(); } @@ -186,6 +193,7 @@ public class EndermiteController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -199,6 +207,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -215,6 +224,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java index 68847453c..615551fb7 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java @@ -90,6 +90,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { skinTracker = null; } + } @Override @@ -97,6 +98,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -113,6 +115,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } public float a(PathType pathtype) { @@ -128,6 +131,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -138,6 +142,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -158,8 +163,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable boolean damaged = super.damageEntity(damagesource, f); if (damaged && velocityChanged) { velocityChanged = false; - Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), (Runnable) () -> EntityHumanNPC.this.velocityChanged = true); + Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), + (Runnable) () -> EntityHumanNPC.this.velocityChanged = true); } + return damaged; } @@ -176,7 +183,9 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (dead) return; super.die(damagesource); - Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), (Runnable) () -> world.removeEntity(EntityHumanNPC.this), 35); // give enough time for death and smoke animation + Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), + (Runnable) () -> world.removeEntity(EntityHumanNPC.this), 35); // give enough time for death and smoke + // animation } @Override @@ -185,6 +194,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -192,6 +202,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PlayerNPC(this); } + return super.getBukkitEntity(); } @@ -225,6 +236,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (skinName == null) { skinName = npc.getName(); } + return skinName.toLowerCase(); } @@ -247,10 +259,12 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable conn.setPacketListener(playerConnection); } catch (IOException e) { } + AttributeInstance range = getAttributeInstance(GenericAttributes.FOLLOW_RANGE); if (range == null) { range = getAttributeMap().b(GenericAttributes.FOLLOW_RANGE); } + range.setValue(Setting.DEFAULT_PATHFINDING_RANGE.asDouble()); controllerJump = new PlayerControllerJump(this); controllerMove = new PlayerControllerMove(this); @@ -265,6 +279,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -284,9 +299,11 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable cH(); jumpTicks = 10; } + } else { jumpTicks = 0; } + bh *= 0.98F; bj *= 0.98F; bk *= 0.9F; @@ -295,6 +312,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (jumpTicks > 0) { jumpTicks--; } + } private void moveWithFallDamage(float mx, float my, float mz) { @@ -303,6 +321,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (!npc.isProtected()) { a(this.locY - y, onGround); } + } @Override @@ -311,6 +330,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable super.playerTick(); return; } + W(); boolean navigating = npc.getNavigator().isNavigating() || controllerMove.b(); if (!navigating && getBukkitEntity() != null @@ -319,15 +339,19 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable && (!npc.isProtected() || SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld()))) { moveWithFallDamage(0, 0, 0); } + if (Math.abs(motX) < EPSILON && Math.abs(motY) < EPSILON && Math.abs(motZ) < EPSILON) { motX = motY = motZ = 0; } + if (navigating) { if (!NMSImpl.isNavigationFinished(navigation)) { NMSImpl.updateNavigation(navigation); } + moveOnCurrentHeading(); } + updateAI(); cN(); if (npc.data().get(NPC.Metadata.PICKUP_ITEMS, false)) { @@ -337,12 +361,16 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { axisalignedbb = this.getBoundingBox().grow(1.0, 0.5, 1.0); } + for (Entity entity : this.world.getEntities(this, axisalignedbb)) { if (!entity.dead) { entity.d(this); } + } + } + } public void setMoveDestination(double x, double y, double z, double speed) { @@ -414,9 +442,12 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (equipment != null && !equipment.isEmpty()) { this.getAttributeMap().b(equipment.a(slot)); } + } + equipmentCache.put(slot, equipment); } + if (!itemChanged) return; Location current = getBukkitEntity().getLocation(packetLocationCache); @@ -425,6 +456,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable for (EnumItemSlot slot : EnumItemSlot.values()) { packets[i++] = new PacketPlayOutEntityEquipment(getId(), slot, getEquipment(slot)); } + NMSImpl.sendPacketsNearby(getBukkitEntity(), current, packets); } 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 f435c91a9..562c65ee0 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 @@ -61,6 +61,7 @@ public class EvokerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class EvokerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class EvokerController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class EvokerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class EvokerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class EvokerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class EvokerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EvokerNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class EvokerController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class EvokerController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 9830708ec..6618a84ce 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 @@ -73,6 +73,7 @@ public class GhastController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -94,6 +95,7 @@ public class GhastController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -122,6 +124,7 @@ public class GhastController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -129,6 +132,7 @@ public class GhastController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GhastNPC(this); } + return super.getBukkitEntity(); } @@ -147,6 +151,7 @@ public class GhastController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -164,6 +169,7 @@ public class GhastController extends MobEntityController { if (npc != null) { npc.update(); } + super.mobTick(); } 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 7b11d485d..c3e82c0de 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 @@ -61,6 +61,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class GiantController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class GiantController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class GiantController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class GiantController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GiantNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class GiantController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class GiantController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -201,6 +210,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 df36233bb..6eb2c11cc 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 @@ -63,6 +63,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -78,6 +79,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -93,6 +95,7 @@ public class GuardianController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -106,6 +109,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -121,6 +125,7 @@ public class GuardianController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -149,6 +154,7 @@ public class GuardianController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -156,6 +162,7 @@ public class GuardianController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GuardianNPC(this); } + return super.getBukkitEntity(); } @@ -174,6 +181,7 @@ public class GuardianController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -192,11 +200,14 @@ public class GuardianController extends MobEntityController { } catch (Throwable ex2) { ex2.printStackTrace(); } + } + } else { NMSImpl.updateAI(this); npc.update(); } + } @Override @@ -213,6 +224,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 e1ed97b55..4f7ea679b 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 @@ -63,6 +63,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -78,6 +79,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -93,6 +95,7 @@ public class GuardianElderController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -106,6 +109,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -121,6 +125,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -149,6 +154,7 @@ public class GuardianElderController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -156,6 +162,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GuardianElderNPC(this); } + return super.getBukkitEntity(); } @@ -174,6 +181,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -192,11 +200,14 @@ public class GuardianElderController extends MobEntityController { } catch (Throwable ex2) { ex2.printStackTrace(); } + } + } else { NMSImpl.updateAI(this); npc.update(); } + } @Override @@ -213,6 +224,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 e9e9a6dcf..05283bfcb 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 @@ -67,6 +67,7 @@ public class HorseController extends MobEntityController { ((Horse) getBukkitEntity()).setDomestication(((Horse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -80,6 +81,7 @@ public class HorseController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -88,6 +90,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -103,6 +106,7 @@ public class HorseController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -118,6 +122,7 @@ public class HorseController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -138,6 +143,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -153,6 +159,7 @@ public class HorseController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -181,6 +188,7 @@ public class HorseController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -188,6 +196,7 @@ public class HorseController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseNPC(this); } + return super.getBukkitEntity(); } @@ -206,6 +215,7 @@ public class HorseController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -224,12 +234,15 @@ public class HorseController extends MobEntityController { } else { riding = false; } + if (riding) { d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 808aa791a..18b5dd699 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 @@ -67,6 +67,7 @@ public class HorseDonkeyController extends MobEntityController { ((Donkey) getBukkitEntity()).setDomestication(((Donkey) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -80,6 +81,7 @@ public class HorseDonkeyController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -88,6 +90,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -103,6 +106,7 @@ public class HorseDonkeyController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -118,6 +122,7 @@ public class HorseDonkeyController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -138,6 +143,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -153,6 +159,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -181,6 +188,7 @@ public class HorseDonkeyController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -188,6 +196,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseDonkeyNPC(this); } + return super.getBukkitEntity(); } @@ -206,6 +215,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -224,12 +234,15 @@ public class HorseDonkeyController extends MobEntityController { } else { riding = false; } + if (riding) { d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 bcbd945ed..0efebddd0 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 @@ -67,6 +67,7 @@ public class HorseMuleController extends MobEntityController { ((Mule) getBukkitEntity()).setDomestication(((Mule) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -80,6 +81,7 @@ public class HorseMuleController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -88,6 +90,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -103,6 +106,7 @@ public class HorseMuleController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -118,6 +122,7 @@ public class HorseMuleController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -138,6 +143,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -153,6 +159,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -181,6 +188,7 @@ public class HorseMuleController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -188,6 +196,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseMuleNPC(this); } + return super.getBukkitEntity(); } @@ -206,6 +215,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -224,12 +234,15 @@ public class HorseMuleController extends MobEntityController { } else { riding = false; } + if (riding) { d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 82b1b79b8..ed074a4c8 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 @@ -68,6 +68,7 @@ public class HorseSkeletonController extends MobEntityController { .setDomestication(((SkeletonHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -81,6 +82,7 @@ public class HorseSkeletonController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -89,6 +91,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -104,6 +107,7 @@ public class HorseSkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -119,6 +123,7 @@ public class HorseSkeletonController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -139,6 +144,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -154,6 +160,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -182,6 +189,7 @@ public class HorseSkeletonController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +197,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseSkeletonNPC(this); } + return super.getBukkitEntity(); } @@ -207,6 +216,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -225,12 +235,15 @@ public class HorseSkeletonController extends MobEntityController { } else { riding = false; } + if (riding) { d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 35d114aeb..e37bcb848 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 @@ -68,6 +68,7 @@ public class HorseZombieController extends MobEntityController { .setDomestication(((ZombieHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -81,6 +82,7 @@ public class HorseZombieController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -89,6 +91,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -104,6 +107,7 @@ public class HorseZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -119,6 +123,7 @@ public class HorseZombieController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -139,6 +144,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -154,6 +160,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -182,6 +189,7 @@ public class HorseZombieController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +197,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseZombieNPC(this); } + return super.getBukkitEntity(); } @@ -207,6 +216,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -225,12 +235,15 @@ public class HorseZombieController extends MobEntityController { } else { riding = false; } + if (riding) { d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HumanController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HumanController.java index afdea3aca..af1d5ae63 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HumanController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HumanController.java @@ -35,9 +35,11 @@ public class HumanController extends AbstractEntityController { if (npc.requiresNameHologram()) { name = teamName; } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } + final GameProfile profile = new GameProfile(uuid, name); final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile, new PlayerInteractManager(nmsWorld), npc); @@ -45,6 +47,7 @@ public class HumanController extends AbstractEntityController { if (skin != null) { skin.apply(handle); } + Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> { if (getBukkitEntity() == null || !getBukkitEntity().isValid() || getBukkitEntity() != handle.getBukkitEntity()) 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 d8b546468..98b023c6e 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 @@ -61,6 +61,7 @@ public class IllusionerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class IllusionerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class IllusionerController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class IllusionerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class IllusionerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class IllusionerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class IllusionerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new IllusionerNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class IllusionerController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class IllusionerController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 5fac05aa3..d1c631505 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 @@ -61,6 +61,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class IronGolemController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class IronGolemController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class IronGolemController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new IronGolemNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class IronGolemController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -201,6 +210,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 1bb57e1d0..a62630492 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 @@ -67,6 +67,7 @@ public class LlamaController extends MobEntityController { ((Llama) getBukkitEntity()).setDomestication(((Llama) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -80,6 +81,7 @@ public class LlamaController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -88,6 +90,7 @@ public class LlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -103,6 +106,7 @@ public class LlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -118,6 +122,7 @@ public class LlamaController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -138,6 +143,7 @@ public class LlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -153,6 +159,7 @@ public class LlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -181,6 +188,7 @@ public class LlamaController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -188,6 +196,7 @@ public class LlamaController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LlamaNPC(this); } + return super.getBukkitEntity(); } @@ -206,6 +215,7 @@ public class LlamaController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -224,12 +234,15 @@ public class LlamaController extends MobEntityController { } else { riding = false; } + if (riding) { d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 7707c8dbe..6fe4ad7fd 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 @@ -55,6 +55,7 @@ public class MagmaCubeController extends MobEntityController { setSize(3, true); this.moveController = new PlayerControllerMove(this); } + } @Override @@ -67,6 +68,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -82,6 +84,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -97,6 +100,7 @@ public class MagmaCubeController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -110,6 +114,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -125,6 +130,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -142,6 +148,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.d(human); } + } @Override @@ -160,6 +167,7 @@ public class MagmaCubeController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -167,6 +175,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MagmaCubeNPC(this); } + return super.getBukkitEntity(); } @@ -185,6 +194,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -206,6 +216,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @Override @@ -214,6 +225,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MobEntityController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MobEntityController.java index 11ee8c777..13ca9c336 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MobEntityController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MobEntityController.java @@ -34,6 +34,7 @@ public abstract class MobEntityController extends AbstractEntityController { if (entity instanceof EntityInsentient) { NMSImpl.clearGoals(((EntityInsentient) entity).goalSelector, ((EntityInsentient) entity).targetSelector); } + entity.setPositionRotation(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch()); if (npc != null) { // entity.onGround isn't updated right away - we approximate here so @@ -42,15 +43,19 @@ public abstract class MobEntityController extends AbstractEntityController { if (beneath.isSolid()) { entity.onGround = true; } + try { UUID_FIELD.invoke(entity, npc.getUniqueId()); } catch (Throwable e) { e.printStackTrace(); } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } + } + return entity.getBukkitEntity(); } @@ -61,6 +66,7 @@ public abstract class MobEntityController extends AbstractEntityController { ex.printStackTrace(); return null; } + } private static Constructor getConstructor(Class clazz) { @@ -73,6 +79,7 @@ public abstract class MobEntityController extends AbstractEntityController { } catch (Exception ex) { throw new IllegalStateException("unable to find an entity constructor"); } + } private static final Map, Constructor> CONSTRUCTOR_CACHE = new WeakHashMap<>(); 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 dc64a109c..cded389a2 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 @@ -64,6 +64,7 @@ public class MushroomCowController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -72,6 +73,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -94,6 +96,7 @@ public class MushroomCowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -109,6 +112,7 @@ public class MushroomCowController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -122,6 +126,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -137,6 +142,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -165,6 +171,7 @@ public class MushroomCowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -172,6 +179,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MushroomCowNPC(this); } + return super.getBukkitEntity(); } @@ -190,6 +198,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -203,6 +212,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 c33c2970e..e127ce249 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 @@ -62,6 +62,7 @@ public class OcelotController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -70,6 +71,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -85,6 +87,7 @@ public class OcelotController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -100,6 +103,7 @@ public class OcelotController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -113,6 +117,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -128,6 +133,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -155,6 +161,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.dz(); } + } @Override @@ -163,6 +170,7 @@ public class OcelotController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -170,6 +178,7 @@ public class OcelotController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new OcelotNPC(this); } + return super.getBukkitEntity(); } @@ -188,6 +197,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -201,6 +211,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 d217a87ef..b10a3effb 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 @@ -83,6 +83,7 @@ public class ParrotController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +105,7 @@ public class ParrotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -132,6 +134,7 @@ public class ParrotController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -139,6 +142,7 @@ public class ParrotController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ParrotNPC(this); } + return super.getBukkitEntity(); } @@ -157,6 +161,7 @@ public class ParrotController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -172,6 +177,7 @@ public class ParrotController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } @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 db2f7cdd2..cd52a00b2 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 @@ -60,6 +60,7 @@ public class PhantomController extends MobEntityController { this.lookController = new ControllerLook(this); // TODO: phantom pitch reversed } + } @Override @@ -72,6 +73,7 @@ public class PhantomController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -87,6 +89,7 @@ public class PhantomController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -102,6 +105,7 @@ public class PhantomController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -115,6 +119,7 @@ public class PhantomController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -130,6 +135,7 @@ public class PhantomController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -165,6 +171,7 @@ public class PhantomController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -172,6 +179,7 @@ public class PhantomController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PhantomNPC(this); } + return super.getBukkitEntity(); } @@ -190,6 +198,7 @@ public class PhantomController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -207,13 +216,17 @@ public class PhantomController extends MobEntityController { } catch (Throwable ex2) { ex2.printStackTrace(); } + } + if (npc != null) { if (npc.isProtected()) { this.setOnFire(0); } + npc.update(); } + } @Override @@ -230,10 +243,12 @@ public class PhantomController extends MobEntityController { if (npc != null && resetDifficulty) { this.world.getWorldData().setDifficulty(EnumDifficulty.NORMAL); } + super.tick(); if (npc != null && resetDifficulty) { this.world.getWorldData().setDifficulty(EnumDifficulty.PEACEFUL); } + } @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 956bfa874..3f783c975 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 @@ -63,6 +63,7 @@ public class PigController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -71,6 +72,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -86,6 +88,7 @@ public class PigController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -101,6 +104,7 @@ public class PigController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -114,6 +118,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -129,6 +134,7 @@ public class PigController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -163,6 +169,7 @@ public class PigController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -170,6 +177,7 @@ public class PigController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PigNPC(this); } + return super.getBukkitEntity(); } @@ -188,6 +196,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -201,6 +210,7 @@ public class PigController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -215,6 +225,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } @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 ddc70b4dd..6ff392981 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 @@ -61,6 +61,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class PigZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class PigZombieController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class PigZombieController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class PigZombieController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PigZombieNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class PigZombieController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 064278ecb..de7aa9ffb 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 @@ -60,6 +60,7 @@ public class PolarBearController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -82,6 +83,7 @@ public class PolarBearController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -103,6 +105,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -131,6 +134,7 @@ public class PolarBearController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -138,6 +142,7 @@ public class PolarBearController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PolarBearNPC(this); } + return super.getBukkitEntity(); } @@ -156,6 +161,7 @@ public class PolarBearController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -169,6 +175,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 560d31067..18acbb6bc 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 @@ -58,6 +58,7 @@ public class PufferFishController extends MobEntityController { if (npc != null) { this.moveController = new ControllerMove(this); } + } @Override @@ -70,6 +71,7 @@ public class PufferFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -94,9 +96,11 @@ public class PufferFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, f, f1, f2)) { super.a(f, f1, f2); } + } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -112,6 +116,7 @@ public class PufferFishController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -125,6 +130,7 @@ public class PufferFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -140,6 +146,7 @@ public class PufferFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -168,6 +175,7 @@ public class PufferFishController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -175,6 +183,7 @@ public class PufferFishController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PufferFishNPC(this); } + return super.getBukkitEntity(); } @@ -193,6 +202,7 @@ public class PufferFishController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -208,7 +218,9 @@ public class PufferFishController extends MobEntityController { if (npc.hasTrait(PufferFishTrait.class)) { setPuffState(npc.getOrAddTrait(PufferFishTrait.class).getPuffState()); } + } + } @Override @@ -217,10 +229,12 @@ public class PufferFishController extends MobEntityController { if (npc != null) { this.C = false; } + super.movementTick(); if (npc != null) { this.C = lastInWater; } + } @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 f8df37ca7..3000abba7 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 @@ -63,6 +63,7 @@ public class RabbitController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -71,6 +72,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -86,6 +88,7 @@ public class RabbitController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -101,6 +104,7 @@ public class RabbitController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -114,6 +118,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -129,6 +134,7 @@ public class RabbitController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -157,6 +163,7 @@ public class RabbitController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -164,6 +171,7 @@ public class RabbitController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new RabbitNPC(this); } + return super.getBukkitEntity(); } @@ -187,6 +195,7 @@ public class RabbitController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -201,10 +210,12 @@ public class RabbitController extends MobEntityController { if (npc.getNavigator().isNavigating()) { NMS.setShouldJump(getBukkitEntity()); } + npc.update(); } else { super.mobTick(); } + } @Override @@ -222,6 +233,7 @@ public class RabbitController extends MobEntityController { this.datawatcher.set(NMSImpl.getRabbitTypeField(), i); return; } + super.setRabbitType(i); } 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 1735bb506..4d3bb5f21 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 @@ -57,6 +57,7 @@ public class SalmonController extends MobEntityController { if (npc != null) { this.moveController = new ControllerMove(this); } + } @Override @@ -69,6 +70,7 @@ public class SalmonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -93,9 +95,11 @@ public class SalmonController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, f, f1, f2)) { super.a(f, f1, f2); } + } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -111,6 +115,7 @@ public class SalmonController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -124,6 +129,7 @@ public class SalmonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -139,6 +145,7 @@ public class SalmonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -167,6 +174,7 @@ public class SalmonController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -174,6 +182,7 @@ public class SalmonController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SalmonNPC(this); } + return super.getBukkitEntity(); } @@ -192,6 +201,7 @@ public class SalmonController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -204,10 +214,12 @@ public class SalmonController extends MobEntityController { if (npc != null) { NMSImpl.setNotInSchool(this); } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -216,10 +228,12 @@ public class SalmonController extends MobEntityController { if (npc != null) { this.C = false; } + super.movementTick(); if (npc != null) { this.C = lastInWater; } + } @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 b1598c929..74609204d 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 @@ -62,6 +62,7 @@ public class SheepController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -70,6 +71,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -85,6 +87,7 @@ public class SheepController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -100,6 +103,7 @@ public class SheepController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -113,6 +117,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -128,6 +133,7 @@ public class SheepController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -156,6 +162,7 @@ public class SheepController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -163,6 +170,7 @@ public class SheepController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SheepNPC(this); } + return super.getBukkitEntity(); } @@ -181,6 +189,7 @@ public class SheepController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -194,6 +203,7 @@ public class SheepController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 7934c0102..17d27bead 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 @@ -64,6 +64,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -79,6 +80,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -94,6 +96,7 @@ public class ShulkerController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -107,6 +110,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class ShulkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -150,6 +155,7 @@ public class ShulkerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -157,6 +163,7 @@ public class ShulkerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ShulkerNPC(this); } + return super.getBukkitEntity(); } @@ -175,6 +182,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -193,8 +201,11 @@ public class ShulkerController extends MobEntityController { } catch (Throwable ex2) { ex2.printStackTrace(); } + } + } + } @Override @@ -216,6 +227,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @Override @@ -225,6 +237,7 @@ public class ShulkerController extends MobEntityController { } else { super.tick(); } + } @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 0a9be55f2..81be94089 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 @@ -61,6 +61,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class SilverfishController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class SilverfishController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class SilverfishController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SilverfishNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class SilverfishController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -201,6 +210,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 f354e62df..9d5c73775 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 @@ -61,6 +61,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class SkeletonController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class SkeletonController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class SkeletonController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SkeletonNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class SkeletonController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -201,6 +210,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 7337aa73a..ce2cf5150 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 @@ -61,6 +61,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class SkeletonStrayController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class SkeletonStrayController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new StrayNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -201,6 +210,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 1d5590f3f..8bffc70bc 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 @@ -61,6 +61,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class SkeletonWitherController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class SkeletonWitherController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SkeletonWitherNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -201,6 +210,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 19ae276aa..f91a3734b 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 @@ -55,6 +55,7 @@ public class SlimeController extends MobEntityController { setSize(3, true); this.moveController = new PlayerControllerMove(this); } + } @Override @@ -67,6 +68,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -82,6 +84,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -97,6 +100,7 @@ public class SlimeController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -110,6 +114,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -125,6 +130,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -142,6 +148,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.d(human); } + } @Override @@ -160,6 +167,7 @@ public class SlimeController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -167,6 +175,7 @@ public class SlimeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SlimeNPC(this); } + return super.getBukkitEntity(); } @@ -185,6 +194,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -206,6 +216,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @Override @@ -214,6 +225,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 aec5ac19d..3f719cb54 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 @@ -61,6 +61,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class SnowmanController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class SnowmanController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class SnowmanController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SnowmanNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class SnowmanController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -201,6 +210,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 ffd2854bf..a61161986 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 @@ -61,6 +61,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class SpiderController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class SpiderController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class SpiderController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SpiderNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class SpiderController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -201,6 +210,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 62c6d95b6..a39f2a4df 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 @@ -61,6 +61,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class SquidController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class SquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class SquidController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class SquidController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SquidNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class SquidController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class SquidController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -201,6 +210,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 d097988da..b8cd09cc6 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 @@ -57,6 +57,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { this.moveController = new ControllerMove(this); } + } @Override @@ -69,6 +70,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -93,9 +95,11 @@ public class TropicalFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, f, f1, f2)) { super.a(f, f1, f2); } + } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -111,6 +115,7 @@ public class TropicalFishController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -124,6 +129,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -139,6 +145,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -167,6 +174,7 @@ public class TropicalFishController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -174,6 +182,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new TropicalFishNPC(this); } + return super.getBukkitEntity(); } @@ -192,6 +201,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -204,10 +214,12 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { NMSImpl.setNotInSchool(this); } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -216,10 +228,12 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { this.C = false; } + super.movementTick(); if (npc != null) { this.C = lastInWater; } + } @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 347986690..2b8c6a5b6 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 @@ -56,6 +56,7 @@ public class TurtleController extends MobEntityController { this.moveController = new ControllerMove(this); this.h = new EmptyControllerJump(this); } + } @Override @@ -68,6 +69,7 @@ public class TurtleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -82,9 +84,11 @@ public class TurtleController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, f, f1, f2)) { super.a(f, f1, f2); } + } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -100,6 +104,7 @@ public class TurtleController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -113,6 +118,7 @@ public class TurtleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -128,6 +134,7 @@ public class TurtleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -156,6 +163,7 @@ public class TurtleController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -163,6 +171,7 @@ public class TurtleController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new TurtleNPC(this); } + return super.getBukkitEntity(); } @@ -181,6 +190,7 @@ public class TurtleController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -194,6 +204,7 @@ public class TurtleController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 e51049ddb..4f5abf90f 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 @@ -50,6 +50,7 @@ public class VexController extends MobEntityController { if (npc != null) { setNoGravity(true); } + } @Override @@ -76,6 +77,7 @@ public class VexController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -97,6 +99,7 @@ public class VexController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -125,6 +128,7 @@ public class VexController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -132,6 +136,7 @@ public class VexController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new VexNPC(this); } + return super.getBukkitEntity(); } @@ -150,6 +155,7 @@ public class VexController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -163,6 +169,7 @@ public class VexController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 cc89d8cbb..9bc1cf4ad 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 @@ -70,6 +70,7 @@ public class VillagerController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -78,6 +79,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -94,7 +96,9 @@ public class VillagerController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.a(entityhuman, enumhand); } @@ -105,6 +109,7 @@ public class VillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -120,6 +125,7 @@ public class VillagerController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -133,6 +139,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -148,6 +155,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -176,6 +184,7 @@ public class VillagerController extends MobEntityController { blockingATrade = false; return true; } + return super.dB(); } @@ -185,6 +194,7 @@ public class VillagerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -192,6 +202,7 @@ public class VillagerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new VillagerNPC(this); } + return super.getBukkitEntity(); } @@ -210,6 +221,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -223,6 +235,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -237,6 +250,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } @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 53ac2a31f..f5dcf4fc0 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 @@ -62,6 +62,7 @@ public class VindicatorController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -70,6 +71,7 @@ public class VindicatorController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -85,6 +87,7 @@ public class VindicatorController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -100,6 +103,7 @@ public class VindicatorController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -113,6 +117,7 @@ public class VindicatorController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -128,6 +133,7 @@ public class VindicatorController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -156,6 +162,7 @@ public class VindicatorController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -163,6 +170,7 @@ public class VindicatorController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new VindicatorNPC(this); } + return super.getBukkitEntity(); } @@ -181,6 +189,7 @@ public class VindicatorController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -194,6 +203,7 @@ public class VindicatorController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 cc106aa38..51fa2f4d3 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 @@ -61,6 +61,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class WitchController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class WitchController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class WitchController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class WitchController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitchNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class WitchController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class WitchController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -201,6 +210,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 3e4dafd39..950b8b75b 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 @@ -73,6 +73,7 @@ public class WitherController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -94,6 +95,7 @@ public class WitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -128,6 +130,7 @@ public class WitherController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -135,6 +138,7 @@ public class WitherController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitherNPC(this); } + return super.getBukkitEntity(); } @@ -153,6 +157,7 @@ public class WitherController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -172,6 +177,7 @@ public class WitherController extends MobEntityController { } else { npc.update(); } + } @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 bc0d9d74d..ef56c2e2a 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 @@ -64,6 +64,7 @@ public class WolfController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -72,6 +73,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -87,6 +89,7 @@ public class WolfController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -102,6 +105,7 @@ public class WolfController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -115,6 +119,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -130,6 +135,7 @@ public class WolfController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -158,6 +164,7 @@ public class WolfController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -165,6 +172,7 @@ public class WolfController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WolfNPC(this); } + return super.getBukkitEntity(); } @@ -183,6 +191,7 @@ public class WolfController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -196,6 +205,7 @@ public class WolfController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 26a892864..462ec22be 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 @@ -61,6 +61,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class ZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class ZombieController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class ZombieController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class ZombieController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ZombieNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class ZombieController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 522d52414..05b169297 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 @@ -61,6 +61,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class ZombieHuskController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class ZombieHuskController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class ZombieHuskController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ZombieHuskNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 29b09d14c..490c0b8bc 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 @@ -61,6 +61,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class ZombieVillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1, f2); } + } @Override @@ -91,6 +93,7 @@ public class ZombieVillagerController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -104,6 +107,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.c(f, f1); } + } @Override @@ -119,6 +123,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class ZombieVillagerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +160,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ZombieVillagerNPC(this); } + return super.getBukkitEntity(); } @@ -172,6 +179,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null) { super.I(); } + } @Override @@ -185,6 +193,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 9189b7e54..3ac9ea4e8 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 @@ -75,6 +75,7 @@ public class AreaEffectCloudController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -86,6 +87,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -99,6 +101,7 @@ public class AreaEffectCloudController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -106,6 +109,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new AreaEffectCloudNPC(this); } + return super.getBukkitEntity(); } @@ -126,6 +130,7 @@ public class AreaEffectCloudController extends MobEntityController { } else { super.tick(); } + } } } \ No newline at end of file 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 307879dba..e7dcf0ac2 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 @@ -76,6 +76,7 @@ public class BoatController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -87,6 +88,7 @@ public class BoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -100,6 +102,7 @@ public class BoatController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -107,6 +110,7 @@ public class BoatController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BoatNPC(this); } + return super.getBukkitEntity(); } @@ -127,6 +131,7 @@ public class BoatController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @Override @@ -136,6 +141,7 @@ public class BoatController extends MobEntityController { } else { super.tick(); } + } } } \ No newline at end of file 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 78c9e51b6..ed80a4830 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 @@ -76,6 +76,7 @@ public class DragonFireballController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -87,6 +88,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -100,6 +102,7 @@ public class DragonFireballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -107,6 +110,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new DragonFireballNPC(this); } + return super.getBukkitEntity(); } @@ -127,6 +131,7 @@ public class DragonFireballController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @Override @@ -136,9 +141,11 @@ public class DragonFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } } \ No newline at end of file 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 4a21d449e..4283d58a1 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 @@ -91,6 +91,7 @@ public class EggController extends AbstractEntityController { motY = my; motZ = mz; } + return res; } @@ -102,6 +103,7 @@ public class EggController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +117,7 @@ public class EggController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -122,6 +125,7 @@ public class EggController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EggNPC(this); } + return super.getBukkitEntity(); } @@ -142,9 +146,11 @@ public class EggController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } } \ No newline at end of file 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 b03041c91..980422c37 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 @@ -75,6 +75,7 @@ public class EnderCrystalController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -86,6 +87,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -99,6 +101,7 @@ public class EnderCrystalController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -106,6 +109,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderCrystalNPC(this); } + return super.getBukkitEntity(); } @@ -126,6 +130,7 @@ public class EnderCrystalController extends MobEntityController { } else { super.tick(); } + } } } \ No newline at end of file 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 27cb51e1d..708e41542 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 @@ -75,6 +75,7 @@ public class EnderPearlController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -86,6 +87,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -99,6 +101,7 @@ public class EnderPearlController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -106,6 +109,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderPearlNPC(this); } + return super.getBukkitEntity(); } @@ -126,9 +130,11 @@ public class EnderPearlController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } } \ No newline at end of file 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 567ab17c4..f09882011 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 @@ -75,6 +75,7 @@ public class EnderSignalController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -86,6 +87,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -99,6 +101,7 @@ public class EnderSignalController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -106,6 +109,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderSignalNPC(this); } + return super.getBukkitEntity(); } @@ -126,6 +130,7 @@ public class EnderSignalController extends MobEntityController { } else { super.tick(); } + } } } \ No newline at end of file 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 9731c22e8..4c68683e3 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 @@ -77,6 +77,7 @@ public class EvokerFangsController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -88,6 +89,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -101,6 +103,7 @@ public class EvokerFangsController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -108,6 +111,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EvokerFangsNPC(this); } + return super.getBukkitEntity(); } @@ -127,6 +131,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { npc.update(); } + } } 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 ed5fd569c..46c64ecf6 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 @@ -61,6 +61,7 @@ public class ExperienceOrbController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -72,6 +73,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -85,6 +87,7 @@ public class ExperienceOrbController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +95,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ExperienceOrbNPC(this); } + return super.getBukkitEntity(); } @@ -112,6 +116,7 @@ public class ExperienceOrbController extends MobEntityController { } else { super.tick(); } + } } 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 e7f3df52c..8206c51ba 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 @@ -84,6 +84,7 @@ public class FallingBlockController extends AbstractEntityController { motY = my; motZ = mz; } + return res; } @@ -95,6 +96,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -108,6 +110,7 @@ public class FallingBlockController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -115,6 +118,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FallingBlockNPC(this); } + return super.getBukkitEntity(); } @@ -135,6 +139,7 @@ public class FallingBlockController extends AbstractEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @Override @@ -147,9 +152,11 @@ public class FallingBlockController extends AbstractEntityController { motZ *= 0.98; move(EnumMoveType.SELF, motX, motY, motZ); } + } else { super.tick(); } + } private static final double EPSILON = 0.001; 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 89df02d76..e3bd6c7da 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 @@ -61,6 +61,7 @@ public class FireworkController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -72,6 +73,7 @@ public class FireworkController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -85,6 +87,7 @@ public class FireworkController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +95,7 @@ public class FireworkController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FireworkNPC(this); } + return super.getBukkitEntity(); } @@ -112,6 +116,7 @@ public class FireworkController extends MobEntityController { } else { super.tick(); } + } } 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 dfc988d1f..8a8631e5e 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 @@ -70,6 +70,7 @@ public class FishingHookController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -81,6 +82,7 @@ public class FishingHookController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -94,6 +96,7 @@ public class FishingHookController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -101,6 +104,7 @@ public class FishingHookController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FishingHookNPC(this); } + return super.getBukkitEntity(); } @@ -121,6 +125,7 @@ public class FishingHookController extends MobEntityController { } else { super.tick(); } + } } 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 cb11d5864..7a18636d9 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 @@ -74,6 +74,7 @@ public class ItemController extends AbstractEntityController { motY = my; motZ = mz; } + return res; } @@ -85,6 +86,7 @@ public class ItemController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -92,6 +94,7 @@ public class ItemController extends AbstractEntityController { if (npc == null) { super.d(entityhuman); } + } @Override @@ -105,6 +108,7 @@ public class ItemController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class ItemController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ItemNPC(this); } + return super.getBukkitEntity(); } @@ -132,6 +137,7 @@ public class ItemController extends AbstractEntityController { } else { super.tick(); } + } } 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 41f250596..b37291086 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 @@ -74,6 +74,7 @@ public class ItemFrameController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -85,6 +86,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -98,6 +100,7 @@ public class ItemFrameController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -105,6 +108,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ItemFrameNPC(this); } + return super.getBukkitEntity(); } @@ -130,6 +134,7 @@ public class ItemFrameController extends MobEntityController { } else { super.tick(); } + } } 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 301ea6c55..f05595a08 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 @@ -62,6 +62,7 @@ public class LargeFireballController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -73,6 +74,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -86,6 +88,7 @@ public class LargeFireballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +96,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LargeFireballNPC(this); } + return super.getBukkitEntity(); } @@ -113,6 +117,7 @@ public class LargeFireballController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @Override @@ -122,9 +127,11 @@ public class LargeFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } 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 2fe75a5c7..e06e8e04d 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 @@ -61,6 +61,7 @@ public class LeashController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -72,6 +73,7 @@ public class LeashController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -85,6 +87,7 @@ public class LeashController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +95,7 @@ public class LeashController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LeashNPC(this); } + return super.getBukkitEntity(); } @@ -117,6 +121,7 @@ public class LeashController extends MobEntityController { } else { super.tick(); } + } } 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 e2cb1cab6..a467899c3 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 @@ -79,6 +79,7 @@ public class LlamaSpitController extends AbstractEntityController { motY = my; motZ = mz; } + return res; } @@ -90,6 +91,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class LlamaSpitController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -110,6 +113,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LlamaSpitNPC(this); } + return super.getBukkitEntity(); } @@ -130,9 +134,11 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } 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 565177843..8ae618479 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 @@ -62,6 +62,7 @@ public class MinecartChestController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -73,6 +74,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -86,6 +88,7 @@ public class MinecartChestController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +96,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartChestNPC(this); } + return super.getBukkitEntity(); } @@ -113,6 +117,7 @@ public class MinecartChestController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 70399a7bf..eee2c5196 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 @@ -62,6 +62,7 @@ public class MinecartCommandController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -73,6 +74,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -86,6 +88,7 @@ public class MinecartCommandController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +96,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartCommandNPC(this); } + return super.getBukkitEntity(); } @@ -113,6 +117,7 @@ public class MinecartCommandController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 bd157a8f5..1c559eabc 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 @@ -62,6 +62,7 @@ public class MinecartFurnaceController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -73,6 +74,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -86,6 +88,7 @@ public class MinecartFurnaceController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +96,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartFurnaceNPC(this); } + return super.getBukkitEntity(); } @@ -113,6 +117,7 @@ public class MinecartFurnaceController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 dad2c9cdd..e5bcf2a78 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 @@ -58,6 +58,7 @@ public class MinecartHopperController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -69,6 +70,7 @@ public class MinecartHopperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -82,6 +84,7 @@ public class MinecartHopperController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -101,6 +104,7 @@ public class MinecartHopperController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 182ef50df..aef871672 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 @@ -62,6 +62,7 @@ public class MinecartRideableController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -73,6 +74,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -86,6 +88,7 @@ public class MinecartRideableController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +96,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartRideableNPC(this); } + return super.getBukkitEntity(); } @@ -113,6 +117,7 @@ public class MinecartRideableController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 db7b07545..15c72940d 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 @@ -58,6 +58,7 @@ public class MinecartSpawnerController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -69,6 +70,7 @@ public class MinecartSpawnerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -82,6 +84,7 @@ public class MinecartSpawnerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -101,6 +104,7 @@ public class MinecartSpawnerController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 969d6887c..7c66fae5e 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 @@ -58,6 +58,7 @@ public class MinecartTNTController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -69,6 +70,7 @@ public class MinecartTNTController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -82,6 +84,7 @@ public class MinecartTNTController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -101,6 +104,7 @@ public class MinecartTNTController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 28e03d795..de27f2ffd 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 @@ -61,6 +61,7 @@ public class PaintingController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -72,6 +73,7 @@ public class PaintingController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -85,6 +87,7 @@ public class PaintingController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +95,7 @@ public class PaintingController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PaintingNPC(this); } + return super.getBukkitEntity(); } @@ -117,6 +121,7 @@ public class PaintingController extends MobEntityController { } else { super.tick(); } + } } 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 3338734ba..d888ab3be 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 @@ -61,6 +61,7 @@ public class ShulkerBulletController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -72,6 +73,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -85,6 +87,7 @@ public class ShulkerBulletController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +95,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ShulkerBulletNPC(this); } + return super.getBukkitEntity(); } @@ -112,6 +116,7 @@ public class ShulkerBulletController extends MobEntityController { } else { super.tick(); } + } } 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 d1f68a1c6..320fe2112 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 @@ -61,6 +61,7 @@ public class SmallFireballController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -72,6 +73,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -85,6 +87,7 @@ public class SmallFireballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +95,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SmallFireballNPC(this); } + return super.getBukkitEntity(); } @@ -112,9 +116,11 @@ public class SmallFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } 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 1edb285e7..0941c8a1f 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 @@ -61,6 +61,7 @@ public class SnowballController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -72,6 +73,7 @@ public class SnowballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -85,6 +87,7 @@ public class SnowballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +95,7 @@ public class SnowballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SnowballNPC(this); } + return super.getBukkitEntity(); } @@ -112,6 +116,7 @@ public class SnowballController extends MobEntityController { } else { super.tick(); } + } } 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 0203b7a4b..84cbb4a70 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 @@ -61,6 +61,7 @@ public class SpectralArrowController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -72,6 +73,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -85,6 +87,7 @@ public class SpectralArrowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +95,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SpectralArrowNPC(this); } + return super.getBukkitEntity(); } @@ -112,6 +116,7 @@ public class SpectralArrowController extends MobEntityController { } else { super.tick(); } + } } 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 ab3d89bf3..e0232fa6f 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 @@ -61,6 +61,7 @@ public class TNTPrimedController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -72,6 +73,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -85,6 +87,7 @@ public class TNTPrimedController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +95,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new TNTPrimedNPC(this); } + return super.getBukkitEntity(); } @@ -112,6 +116,7 @@ public class TNTPrimedController extends MobEntityController { } else { super.tick(); } + } } 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 d6e749d17..7b80b9364 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 @@ -61,6 +61,7 @@ public class ThrownExpBottleController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -72,6 +73,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -85,6 +87,7 @@ public class ThrownExpBottleController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +95,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ThrownExpBottleNPC(this); } + return super.getBukkitEntity(); } @@ -112,9 +116,11 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } 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 8513268d0..ffe2cefbe 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 @@ -62,6 +62,7 @@ public class ThrownPotionController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -73,6 +74,7 @@ public class ThrownPotionController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -86,6 +88,7 @@ public class ThrownPotionController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -96,7 +99,9 @@ public class ThrownPotionController extends MobEntityController { } else { bukkitEntity = new SplashThrownPotionNPC(this); } + } + return super.getBukkitEntity(); } @@ -117,6 +122,7 @@ public class ThrownPotionController extends MobEntityController { } else { super.tick(); } + } } 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 2d716eeeb..39cc4b26e 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 @@ -61,6 +61,7 @@ public class ThrownTridentController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -72,6 +73,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -85,6 +87,7 @@ public class ThrownTridentController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +95,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ThrownTridentNPC(this); } + return super.getBukkitEntity(); } @@ -112,6 +116,7 @@ public class ThrownTridentController extends MobEntityController { } else { super.tick(); } + } } 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 f61c0c44a..f24f96648 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 @@ -61,6 +61,7 @@ public class TippedArrowController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -72,6 +73,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -85,6 +87,7 @@ public class TippedArrowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +95,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new TippedArrowNPC(this); } + return super.getBukkitEntity(); } @@ -112,6 +116,7 @@ public class TippedArrowController extends MobEntityController { } else { super.tick(); } + } } 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 06a5d2db1..411bc569e 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 @@ -61,6 +61,7 @@ public class WitherSkullController extends MobEntityController { motY = my; motZ = mz; } + return res; } @@ -72,6 +73,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -85,6 +87,7 @@ public class WitherSkullController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +95,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitherSkullNPC(this); } + return super.getBukkitEntity(); } @@ -112,6 +116,7 @@ public class WitherSkullController extends MobEntityController { } else { super.tick(); } + } } diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/CitizensBlockBreaker.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/CitizensBlockBreaker.java index 6a6a9b4ad..6266fcee1 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/CitizensBlockBreaker.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/CitizensBlockBreaker.java @@ -47,6 +47,7 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { ItemStack current = getCurrentItem(); return current != null ? current.b(block) : false; } + } @Override @@ -64,10 +65,13 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { if (i > 0) { f += i * i + 1; } + } + if (handle.hasEffect(MobEffects.FASTER_DIG)) { f *= 1.0F + (handle.getEffect(MobEffects.FASTER_DIG).getAmplifier() + 1) * 0.2F; } + if (handle.hasEffect(MobEffects.SLOWER_DIG)) { float f1 = 1.0F; switch (handle.getEffect(MobEffects.SLOWER_DIG).getAmplifier()) { @@ -84,15 +88,20 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { default: f1 = 8.1E-4F; } + f *= f1; } + if (handle.a(TagsFluid.WATER) && !EnchantmentManager.h(handle)) { f /= 5.0F; } + } + if (!getHandle().onGround) { f /= 5.0F; } + return f; } } \ No newline at end of file diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/CustomEntityRegistry.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/CustomEntityRegistry.java index f9bdc82f6..72b977220 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/CustomEntityRegistry.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/CustomEntityRegistry.java @@ -47,6 +47,7 @@ public class CustomEntityRegistry extends RegistryMaterials implements Supplier< if (((EntityTypes) type).c() == search) return (EntityTypes) type; } + return null; } diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/EmptyAdvancementDataPlayer.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/EmptyAdvancementDataPlayer.java index f59fe8ffc..3e7db0ca5 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/EmptyAdvancementDataPlayer.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/EmptyAdvancementDataPlayer.java @@ -66,6 +66,7 @@ public class EmptyAdvancementDataPlayer extends AdvancementDataPlayer { } catch (IllegalAccessException e) { e.printStackTrace(); } + } private static final Field G = NMS.getField(AdvancementDataPlayer.class, "g"); 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 5bb074cae..0bc791ad3 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 @@ -41,7 +41,9 @@ public class NMSBoundingBox { } catch (Exception ex2) { ex.printStackTrace(); } + } + return new BoundingBox(minX, minY, minZ, maxX, maxY, maxZ); } diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSImpl.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSImpl.java index 20ee4eacd..43294a740 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSImpl.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSImpl.java @@ -319,6 +319,7 @@ public class NMSImpl implements NMSBridge { } else if (!handle.world.players.contains(handle)) { handle.world.players.add(handle); } + } @Override @@ -331,6 +332,7 @@ public class NMSImpl implements NMSBridge { PlayerAnimation.ARM_SWING.play(humanHandle.getBukkitEntity()); return; } + AttributeInstance attackDamage = handle.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE); float f = (float) (attackDamage == null ? 1 : attackDamage.getValue()); int i = 0; @@ -338,6 +340,7 @@ public class NMSImpl implements NMSBridge { f += EnchantmentManager.a(handle.getItemInMainHand(), target.getMonsterType()); i += EnchantmentManager.a(Enchantments.KNOCKBACK, handle); } + boolean flag = target.damageEntity(DamageSource.mobAttack(handle), f); if (!flag) return; @@ -347,10 +350,12 @@ public class NMSImpl implements NMSBridge { handle.motX *= 0.6D; handle.motZ *= 0.6D; } + int fireAspectLevel = EnchantmentManager.getFireAspectEnchantmentLevel(handle); if (fireAspectLevel > 0) { target.setOnFire(fireAspectLevel * 4); } + } @Override @@ -362,9 +367,11 @@ public class NMSImpl implements NMSBridge { } catch (Throwable t) { t.printStackTrace(); } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getControllerMove().f = false; } + } @Override @@ -398,14 +405,19 @@ public class NMSImpl implements NMSBridge { if (!changed && !ItemStack.matches(old, curr)) { changed = true; } + equipment.put(slot, curr); } + if (changed) { for (EnumItemSlot slot : EnumItemSlot.values()) { agg.send(new PacketPlayOutEntityEquipment(handle.getId(), slot, equipment.get(slot))); } + } + } + tracker.track(Lists.newArrayList(tracker.trackedPlayers)); } @@ -425,7 +437,9 @@ public class NMSImpl implements NMSBridge { if (callback != null) { callback.accept(entity); } + } + tracker.trackedPlayers.clear(); } }; @@ -473,6 +487,7 @@ public class NMSImpl implements NMSBridge { } catch (NoSuchFieldError ex) { bserver = (BossBattleServer) WITHER_BOSS_BAR_FIELD.get(NMSImpl.getHandle(entity)); } + } else if (entity.getType() == EntityType.ENDER_DRAGON) { try { bserver = ((EnderDragonBattle) ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity))).bossBattle; @@ -480,9 +495,12 @@ public class NMSImpl implements NMSBridge { bserver = (BossBattleServer) ENDERDRAGON_BATTLE_BAR_FIELD .get(ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity))); } + } + } catch (Exception e) { } + if (bserver == null) return null; BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10); @@ -490,6 +508,7 @@ public class NMSImpl implements NMSBridge { CRAFT_BOSSBAR_HANDLE_FIELD.set(ret, bserver); } catch (Exception e) { } + return ret; } @@ -601,12 +620,15 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { return null; } + } + try { return (GameProfile) SKULL_PROFILE_FIELD.get(meta); } catch (Exception e) { return null; } + } @Override @@ -619,6 +641,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { throw new CommandException(Messages.INVALID_SOUND); } + } @Override @@ -634,6 +657,7 @@ public class NMSImpl implements NMSBridge { EntityLiving handle = NMSImpl.getHandle((LivingEntity) npc.getEntity()); if (handle == null) { } + return DEFAULT_SPEED; // return (float) // handle.getAttributeInstance(GenericAttributes.d).getValue(); @@ -677,7 +701,9 @@ public class NMSImpl implements NMSBridge { } else { ((EntityInsentient) raw).a(PathType.WATER, oldWater + 1F); } + } + navigation.s().b(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; @@ -690,6 +716,7 @@ public class NMSImpl implements NMSBridge { PathPoint pp = navigation.m().a(i); blocks.add(entity.getWorld().getBlockAt(pp.a, pp.b, pp.c)); } + return blocks; } @@ -709,13 +736,16 @@ public class NMSImpl implements NMSBridge { List blocks = getBlocks(entity, navigation); Util.sendBlockChanges(blocks, null); } + if (oldWater >= 0) { if (raw instanceof EntityPlayer) { ((EntityHumanNPC) raw).a(PathType.WATER, oldWater); } else { ((EntityInsentient) raw).a(PathType.WATER, oldWater); } + } + stopNavigation(navigation); } @@ -727,16 +757,20 @@ public class NMSImpl implements NMSBridge { if (handle instanceof EntityHorse) { handle.width = Math.min(0.99f, oldWidth); } + if (!function.apply(navigation)) { reason = CancelReason.STUCK; } + handle.width = oldWidth; // minecraft requires that an entity fit onto both blocks if width >= 1f, // but we'd prefer to make it just fit on 1 so hack around it a bit. lastSpeed = params.speed(); } + if (params.debug() && !NMSImpl.isNavigationFinished(navigation)) { Util.sendBlockChanges(getBlocks(entity, navigation), Material.DANDELION); } + navigation.a(params.speed()); return NMSImpl.isNavigationFinished(navigation); } @@ -935,30 +969,37 @@ public class NMSImpl implements NMSBridge { if (zDiff < 0.0) { yaw += Math.abs(180 - yaw) * 2; } + if (handle instanceof EntityEnderDragon) { yaw = Util.getDragonYaw(handle.getBukkitEntity(), xDiff, zDiff); } else { yaw = yaw - 90; } + if (headOnly) { setHeadYaw(entity, (float) yaw); } else { look(entity, (float) yaw, (float) pitch); } + return; } + if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(to.getX(), to.getY(), to.getZ(), ((EntityInsentient) handle).L(), ((EntityInsentient) handle).K()); while (((EntityLiving) handle).aS >= 180F) { ((EntityLiving) handle).aS -= 360F; } + while (((EntityLiving) handle).aS < -180F) { ((EntityLiving) handle).aS += 360F; } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -971,18 +1012,22 @@ public class NMSImpl implements NMSBridge { } else { look(from, to.getLocation(), false, true); } + } else if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(target, ((EntityInsentient) handle).L(), ((EntityInsentient) handle).K()); while (((EntityLiving) handle).aS >= 180F) { ((EntityLiving) handle).aS -= 360F; } + while (((EntityLiving) handle).aS < -180F) { ((EntityLiving) handle).aS += 360F; } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1024,7 +1069,9 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return super.getBukkitView(); } + } + return this.bukkitEntity; } }; @@ -1070,6 +1117,7 @@ public class NMSImpl implements NMSBridge { if (entity1.dead || !entity1.w(entity)) { entity.stopRiding(); } + } else { if (!entity.dead) { try { @@ -1080,17 +1128,22 @@ public class NMSImpl implements NMSBridge { entity.appendEntityCrashDetails(crashreportsystemdetails); throw new ReportedException(crashreport); } + } + if (entity.dead) { entity.world.removeEntity(entity); } else if (!removeFromPlayerList) { if (!entity.world.players.contains(entity)) { entity.world.players.add(entity); } + } else { entity.world.players.remove(entity); } + } + }; } @@ -1105,10 +1158,12 @@ public class NMSImpl implements NMSBridge { if (key == null) { continue; } + int code = ENTITY_REGISTRY.a(type); ENTITY_REGISTRY.put(code, key, type); return; } + throw new IllegalArgumentException("unable to find valid entity superclass for class " + clazz.toString()); } @@ -1147,6 +1202,7 @@ public class NMSImpl implements NMSBridge { hook.hooked = null; hook.getBukkitEntity().remove(); } + } @Override @@ -1168,10 +1224,13 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } + if (getHandle(entity) instanceof EntityHumanNPC) { ((EntityHumanNPC) getHandle(entity)).setTracked(replace); } + } @Override @@ -1181,9 +1240,11 @@ public class NMSImpl implements NMSBridge { if (bodyYaw == null) { bodyYaw = handle.yaw; } + if (pitch == null) { pitch = handle.pitch; } + List> toSend = Lists.newArrayList(); if (position) { EntityTrackerEntry entry = ((WorldServer) handle.world).getTracker().trackedEntities.get(handle.getId()); @@ -1196,15 +1257,18 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + toSend.add(new PacketPlayOutRelEntityMoveLook(handle.getId(), (short) dx, (short) dy, (short) dz, (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); } else { toSend.add(new PacketPlayOutEntityLook(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); } + if (headYaw != null) { toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F))); } + sendPacketsNearby(null, from.getLocation(), toSend, 64); } @@ -1228,6 +1292,7 @@ public class NMSImpl implements NMSBridge { entities[i] = (EntityPlayer) skinnable; i++; } + NMSImpl.sendPacket(recipient, new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, entities)); } @@ -1248,12 +1313,14 @@ public class NMSImpl implements NMSBridge { if (TEAM_FIELD == null) { TEAM_FIELD = NMS.getGetter(team.getClass(), "team"); } + try { ScoreboardTeam nmsTeam = (ScoreboardTeam) TEAM_FIELD.invoke(team); sendPacket(recipient, new PacketPlayOutScoreboardTeam(nmsTeam, mode)); } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1281,6 +1348,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).setMoveDestination(x, y, z, speed); } + } @Override @@ -1305,6 +1373,7 @@ public class NMSImpl implements NMSBridge { if (!(handle instanceof EntityHuman)) { handle.aQ = yaw; } + handle.aS = yaw; } @@ -1354,11 +1423,14 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { return; } + } + try { SKULL_PROFILE_FIELD.set(meta, profile); } catch (Exception e) { } + } @Override @@ -1372,6 +1444,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).setShouldJump(); } + } @Override @@ -1389,6 +1462,7 @@ public class NMSImpl implements NMSBridge { if (entity instanceof Player) { ((Player) entity).setSneaking(sneaking); } + } @Override @@ -1421,6 +1495,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + return false; } @@ -1432,10 +1507,12 @@ public class NMSImpl implements NMSBridge { if (field == null) { field = NMS.getFinalSetter(IRegistry.class, "ENTITY_TYPE", false); } + try { field.invoke(ENTITY_REGISTRY.get()); } catch (Throwable e) { } + } @Override @@ -1468,6 +1545,7 @@ public class NMSImpl implements NMSBridge { facingByte = (byte) 3; break; } + Location bedLoc = loc.clone().add(0, -loc.getY(), 0); PacketPlayOutBed bed = new PacketPlayOutBed(from, new BlockPosition(bedLoc.getBlockX(), bedLoc.getBlockY(), bedLoc.getBlockZ())); @@ -1486,6 +1564,7 @@ public class NMSImpl implements NMSBridge { list.forEach(packet -> sendPacket(nearby, packet)); meta.set(nearby.getUniqueId(), entity.getUniqueId().toString(), System.currentTimeMillis()); } + } else { PacketPlayOutAnimation packet = new PacketPlayOutAnimation(from, 2); sendPacketNearby(entity, entity.getLocation(), packet, 64); @@ -1493,8 +1572,11 @@ public class NMSImpl implements NMSBridge { if (meta.remove(player.getUniqueId(), entity.getUniqueId().toString())) { sendPacket(player, packet); } + } + } + } @Override @@ -1510,6 +1592,7 @@ public class NMSImpl implements NMSBridge { if (RANDOM.nextFloat() <= 0.85F && (handle.at() || handle.ax())) { handle.motY += power; } + } @Override @@ -1537,6 +1620,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { Messaging.logTr(Messages.ERROR_UPDATING_NAVIGATION_WORLD, e.getMessage()); } + } @Override @@ -1548,8 +1632,10 @@ public class NMSImpl implements NMSBridge { if (en instanceof EntityHumanNPC) { ((EntityHumanNPC) en).updatePathfindingRange(pathfindingRange); } + return; } + if (PATHFINDING_RANGE == null) return; EntityInsentient handle = (EntityInsentient) en; @@ -1562,6 +1648,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } private static class CitizensInventoryAnvil extends CraftInventoryAnvil implements ForwardingInventory { @@ -1670,6 +1757,7 @@ public class NMSImpl implements NMSBridge { living.setPosition(living.locX - 0.01, living.locY, living.locZ - 0.01); living.setPosition(living.locX + 0.01, living.locY, living.locZ + 0.01); } + } public static void clearGoals(PathfinderGoalSelector... goalSelectors) { @@ -1682,7 +1770,9 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } + } + } private static CompoundTag convertNBT(net.minecraft.server.v1_13_R2.NBTTagCompound tag) { @@ -1692,6 +1782,7 @@ public class NMSImpl implements NMSBridge { for (String key : tag.getKeys()) { tags.put(key, convertNBT(key, tag.get(key))); } + return new CompoundTag("", tags); } @@ -1722,8 +1813,10 @@ public class NMSImpl implements NMSBridge { for (int i = 0; i < list.size(); i++) { converted.add(convertNBT("", list.get(i))); } + return new ListTag(key, tagType, converted); } + } else if (base instanceof net.minecraft.server.v1_13_R2.NBTTagCompound) return convertNBT((net.minecraft.server.v1_13_R2.NBTTagCompound) base); else if (base instanceof net.minecraft.server.v1_13_R2.NBTTagEnd) @@ -1738,6 +1831,7 @@ public class NMSImpl implements NMSBridge { d0 = 0.01D; entity.fallDistance = 0.0F; } + if (entity.isInWater() && (!(entity instanceof EntityHuman) || !((EntityHuman) entity).abilities.isFlying)) { double d2 = entity.locY; @@ -1747,16 +1841,20 @@ public class NMSImpl implements NMSBridge { if (f3 > 3.0F) { f3 = 3.0F; } + if (!entity.onGround) { f3 *= 0.5F; } + if (f3 > 0.0F) { f5 += (0.54600006F - f5) * f3 / 3.0F; f4 += (entity.cK() - f4) * f3 / 3.0F; } + if (entity.hasEffect(MobEffects.DOLPHINS_GRACE)) { f5 = 0.96F; } + entity.a(f, f1, f2, f4); entity.move(EnumMoveType.SELF, entity.motX, entity.motY, entity.motZ); entity.motX *= f5; @@ -1769,11 +1867,14 @@ public class NMSImpl implements NMSBridge { } else { entity.motY -= d0 / 16.0D; } + } + if (entity.positionChanged && entity.c(entity.motX, entity.motY + 0.6000000238418579D - entity.locY + d2, entity.motZ)) { entity.motY = 0.30000001192092896D; } + } else if (entity.ax() && (!(entity instanceof EntityHuman) || !((EntityHuman) entity).abilities.isFlying)) { double d2 = entity.locY; @@ -1785,14 +1886,17 @@ public class NMSImpl implements NMSBridge { if (!entity.isNoGravity()) { entity.motY -= d0 / 4.0D; } + if (entity.positionChanged && entity.c(entity.motX, entity.motY + 0.6000000238418579D - entity.locY + d2, entity.motZ)) { entity.motY = 0.30000001192092896D; } + } else if (entity.dc()) { if (entity.motY > -0.5D) { entity.fallDistance = 1.0F; } + Vec3D vec3d = entity.aN(); float f6 = entity.pitch * 0.017453292F; double d1 = Math.sqrt(vec3d.x * vec3d.x + vec3d.z * vec3d.z); @@ -1807,16 +1911,19 @@ public class NMSImpl implements NMSBridge { entity.motX += vec3d.x * d5 / d1; entity.motZ += vec3d.z * d5 / d1; } + if (f6 < 0.0F && d1 > 0.0D) { double d5 = d3 * -MathHelper.sin(f6) * 0.04D; entity.motY += d5 * 3.2D; entity.motX -= vec3d.x * d5 / d1; entity.motZ -= vec3d.z * d5 / d1; } + if (d1 > 0.0D) { entity.motX += (vec3d.x / d1 * d3 - entity.motX) * 0.1D; entity.motZ += (vec3d.z / d1 * d3 - entity.motZ) * 0.1D; } + entity.motX *= 0.9900000095367432D; entity.motY *= 0.9800000190734863D; entity.motZ *= 0.9900000095367432D; @@ -1830,11 +1937,14 @@ public class NMSImpl implements NMSBridge { 1.0F, 1.0F); entity.damageEntity(DamageSource.FLY_INTO_WALL, f8); } + } + if (entity.onGround && !entity.world.isClientSide && entity.getFlag(7) && !CraftEventFactory.callToggleGlideEvent(entity, false).isCancelled()) { entity.setFlag(7, false); } + } else { float f9 = 0.91F; BoundingBox bb = NMSBoundingBox.wrap(entity.getBoundingBox()); @@ -1847,12 +1957,14 @@ public class NMSImpl implements NMSBridge { if (entity.onGround) { f9 = entity.world.getType(blockposition_b).getBlock().n() * 0.91F; } + f4 = 0.16277137F / (f9 * f9 * f9); if (entity.onGround) { f3 = entity.cK() * f4; } else { f3 = entity.aU; } + entity.a(f, f1, f2, f3); f9 = 0.91F; if (entity.onGround) { @@ -1860,6 +1972,7 @@ public class NMSImpl implements NMSBridge { .getType(getBlockPositionBE(blockposition_b, entity.locX, bb.minY - 1.0D, entity.locZ)) .getBlock().n() * 0.91F; } + if (entity.z_()) { entity.motX = MathHelper.a(entity.motX, -0.15000000596046448D, 0.15000000596046448D); entity.motZ = MathHelper.a(entity.motZ, -0.15000000596046448D, 0.15000000596046448D); @@ -1867,15 +1980,19 @@ public class NMSImpl implements NMSBridge { if (entity.motY < -0.15D) { entity.motY = -0.15D; } + boolean flag = entity.isSneaking() && entity instanceof EntityHuman; if (flag && entity.motY < 0.0D) { entity.motY = 0.0D; } + } + entity.move(EnumMoveType.SELF, entity.motX, entity.motY, entity.motZ); if (entity.positionChanged && entity.z_()) { entity.motY = 0.2D; } + if (entity.hasEffect(MobEffects.LEVITATION)) { entity.motY += (0.05D * (entity.getEffect(MobEffects.LEVITATION).getAmplifier() + 1) - entity.motY) * 0.2D; @@ -1889,10 +2006,13 @@ public class NMSImpl implements NMSBridge { } else { entity.motY = 0.0D; } + } else if (!entity.isNoGravity()) { entity.motY -= d0; } + } + entity.motY *= 0.9800000190734863D; entity.motX *= f9; entity.motZ *= f9; @@ -1907,13 +2027,19 @@ public class NMSImpl implements NMSBridge { } catch (Throwable throwable2) { throwable.addSuppressed(throwable2); } + } else { blockposition_b.close(); } + } + } + } + } + entity.aI = entity.aJ; double d0 = entity.locX - entity.lastX; double d2 = entity.locZ - entity.lastZ; @@ -1922,6 +2048,7 @@ public class NMSImpl implements NMSBridge { if (f3 > 1.0F) { f3 = 1.0F; } + entity.aJ += (f3 - entity.aJ) * 0.4F; entity.aK += entity.aJ; } @@ -1937,7 +2064,9 @@ public class NMSImpl implements NMSBridge { ex2.printStackTrace(); return null; } + } + } private static EntityLiving getHandle(LivingEntity entity) { @@ -1966,6 +2095,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + return null; } @@ -1991,7 +2121,9 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } + } public static boolean isLeashed(NPC npc, Supplier isLeashed, EntityInsentient entity) { @@ -2014,6 +2146,7 @@ public class NMSImpl implements NMSBridge { if (mat != null) { minecart.setDisplayBlock(Block.getByCombinedId(mat.getId()).getBlock().getBlockData()); } + minecart.setDisplayBlockOffset(offset); } @@ -2032,6 +2165,7 @@ public class NMSImpl implements NMSBridge { handle.motZ *= 0.9D; return true; } + return false; } @@ -2059,10 +2193,13 @@ public class NMSImpl implements NMSBridge { || location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) { continue; } + for (Packet packet : packets) { NMSImpl.sendPacket(player, packet); } + } + } public static void sendPacketsNearby(Player from, Location location, Packet... packets) { @@ -2075,6 +2212,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setNotInSchool(EntityFish entity) { @@ -2084,9 +2222,11 @@ public class NMSImpl implements NMSBridge { } else if (ENTITY_FISH_METHOD != null) { ENTITY_FISH_METHOD.invoke(entity, false); } + } catch (Exception ex) { ex.printStackTrace(); } + } public static void setSize(Entity entity, float f, float f1, boolean justCreated) { @@ -2100,7 +2240,9 @@ public class NMSImpl implements NMSBridge { if (entity.width > f2 && !justCreated && !entity.world.isClientSide) { entity.move(EnumMoveType.SELF, (f2 - entity.width) / 2, 0.0D, (f2 - entity.width) / 2); } + } + } public static void stopNavigation(NavigationAbstract navigation) { @@ -2118,6 +2260,7 @@ public class NMSImpl implements NMSBridge { } else if (entity instanceof EntityHumanNPC) { ((EntityHumanNPC) entity).updateAI(); } + } public static void updateNavigation(NavigationAbstract navigation) { @@ -2174,20 +2317,24 @@ public class NMSImpl implements NMSBridge { } catch (ClassNotFoundException e) { // 1.13.2 } + try { MethodHandle setter = NMS.getFinalSetter(EntityTypes.class, "REGISTRY", false); if (setter == null) { setter = NMS.getFinalSetter(IRegistry.class, "ENTITY_TYPE", false); } + Field field = NMS.getField(EntityTypes.class, "REGISTRY", false); if (field == null) { field = NMS.getField(IRegistry.class, "ENTITY_TYPE"); } + ENTITY_REGISTRY = new CustomEntityRegistry((RegistryMaterials>) field.get(null)); setter.invoke(ENTITY_REGISTRY); } catch (Throwable e) { Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage()); } + try { MAKE_REQUEST = YggdrasilAuthenticationService.class.getDeclaredMethod("makeRequest", URL.class, Object.class, Class.class); @@ -2195,6 +2342,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception ex) { ex.printStackTrace(); } + try { ENDERMAN_ANGRY = (DataWatcherObject) NMS.getField(EntityEnderman.class, "bC").get(null); } catch (IllegalArgumentException e) { @@ -2202,5 +2350,6 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } } diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerAnimationImpl.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerAnimationImpl.java index 048b3bfd8..e613e8509 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerAnimationImpl.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerAnimationImpl.java @@ -21,6 +21,7 @@ public class PlayerAnimationImpl { playDefaultAnimation(player, to, DEFAULTS.get(animation)); return; } + switch (animation) { case SNEAK: player.getBukkitEntity().setSneaking(true); @@ -51,6 +52,7 @@ public class PlayerAnimationImpl { default: throw new UnsupportedOperationException(); } + } protected static void playDefaultAnimation(EntityPlayer player, Iterable to, int code) { @@ -62,6 +64,7 @@ public class PlayerAnimationImpl { for (Player player : to) { NMSImpl.sendPacket(player, packet); } + } private static EnumMap DEFAULTS = Maps.newEnumMap(PlayerAnimation.class); diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerControllerMove.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerControllerMove.java index f10fe75ea..d61f7ef1f 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerControllerMove.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerControllerMove.java @@ -46,6 +46,7 @@ public class PlayerControllerMove extends ControllerMove { this.a.bj = 0.0F; // bi return; } + float f = (float) Math.toDegrees(Math.atan2(d1, d0)) - 90.0F; this.a.yaw = a(this.a.yaw, f, 90.0F); NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw); @@ -63,8 +64,11 @@ public class PlayerControllerMove extends ControllerMove { } else { ((EntityInsentient) this.a).getControllerJump().a(); } + } + } + } @Override @@ -82,15 +86,18 @@ public class PlayerControllerMove extends ControllerMove { if (f3 > f2) { f3 = f2; } + if (f3 < -f2) { f3 = -f2; } + float f4 = f + f3; if (f4 < 0.0F) { f4 += 360.0F; } else if (f4 > 360.0F) { f4 -= 360.0F; } + return f4; } diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerNavigation.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerNavigation.java index 9fae46e65..e39fe70cb 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerNavigation.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerNavigation.java @@ -123,8 +123,11 @@ public class PlayerNavigation extends NavigationAbstract { || localPathType == PathType.DAMAGE_OTHER) return false; } + } + } + return true; } @@ -134,9 +137,11 @@ public class PlayerNavigation extends NavigationAbstract { this.c = null; return false; } + if (!paramPathEntity.a(this.c)) { this.c = paramPathEntity; } + E_(); if (this.c.d() <= 0) return false; @@ -153,9 +158,11 @@ public class PlayerNavigation extends NavigationAbstract { if (paramVec3D.distanceSquared(this.g) < 2.25D) { q(); } + this.f = this.e; this.g = paramVec3D; } + if (this.c != null && !this.c.b()) { Vec3D localVec3D = this.c.f(); if (localVec3D.equals(this.h)) { @@ -165,14 +172,17 @@ public class PlayerNavigation extends NavigationAbstract { double d1 = paramVec3D.f(this.h); this.k = this.a.cK() > 0.0F ? d1 / this.a.cK() * 1000.0D : 0.0D; } + if (this.k > 0.0D && this.i > this.k * 3.0D) { this.h = Vec3D.a; this.i = 0L; this.k = 0.0D; q(); } + this.j = getMonotonicMillis(); } + } @Override @@ -200,9 +210,11 @@ public class PlayerNavigation extends NavigationAbstract { if (d1 >= 0.0D) { d7 += 1.0D; } + if (d2 >= 0.0D) { d8 += 1.0D; } + d7 /= d1; d8 /= d2; int k = d1 < 0.0D ? -1 : 1; @@ -221,9 +233,11 @@ public class PlayerNavigation extends NavigationAbstract { j += m; i3 = i1 - j; } + if (!a(i, (int) paramVec3D1.y, j, paramInt1, paramInt2, paramInt3, paramVec3D1, d1, d2)) return false; } + return true; } @@ -240,21 +254,26 @@ public class PlayerNavigation extends NavigationAbstract { while (localBlockPosition.getY() > 0 && this.b.getType(localBlockPosition).isAir()) { localBlockPosition = localBlockPosition.down(); } + if (localBlockPosition.getY() > 0) return superb(localBlockPosition.up()); while (localBlockPosition.getY() < this.b.getHeight() && this.b.getType(localBlockPosition).isAir()) { localBlockPosition = localBlockPosition.up(); } + paramBlockPosition = localBlockPosition; } + if (this.b.getType(paramBlockPosition).getMaterial().isBuildable()) { localBlockPosition = paramBlockPosition.up(); while (localBlockPosition.getY() < this.b.getHeight() && this.b.getType(localBlockPosition).getMaterial().isBuildable()) { localBlockPosition = localBlockPosition.up(); } + return superb(localBlockPosition); } + return superb(paramBlockPosition); } @@ -272,7 +291,9 @@ public class PlayerNavigation extends NavigationAbstract { if (!this.b.getType(localBlockPosition).a(this.b, localBlockPosition, PathMode.LAND)) return false; } + } + return true; } @@ -291,6 +312,7 @@ public class PlayerNavigation extends NavigationAbstract { if (this.m) { l(); } + if (p()) return; if (b()) { @@ -303,7 +325,9 @@ public class PlayerNavigation extends NavigationAbstract { && MathHelper.floor(localVec3D.z) == MathHelper.floor(localObject.z)) { this.c.c(this.c.e() + 1); } + } + n(); if (p()) return; @@ -334,8 +358,11 @@ public class PlayerNavigation extends NavigationAbstract { this.c.b(i - 1); return; } + } + } + } public boolean g() { @@ -366,9 +393,11 @@ public class PlayerNavigation extends NavigationAbstract { this.n = this.b.getTime(); this.m = false; } + } else { this.m = true; } + } @Override @@ -389,7 +418,9 @@ public class PlayerNavigation extends NavigationAbstract { i1 = i2; break; } + } + this.l = this.a.width > 0.75F ? this.a.width / 2.0F : 0.75F - this.a.width / 2.0F; Vec3D localVec3D2 = this.c.f(); if (MathHelper.e((float) (this.a.locX - (localVec3D2.x + 0.5D))) < this.l @@ -397,6 +428,7 @@ public class PlayerNavigation extends NavigationAbstract { && Math.abs(this.a.locY - localVec3D2.y) < 1.0D) { this.c.c(this.c.e() + 1); } + int i3 = MathHelper.f(this.a.width); int i4 = MathHelper.f(this.a.length); int i5 = i3; @@ -405,7 +437,9 @@ public class PlayerNavigation extends NavigationAbstract { this.c.c(i6); break; } + } + a(localVec3D1); } @@ -448,7 +482,9 @@ public class PlayerNavigation extends NavigationAbstract { } catch (Throwable ex2) { ex2.printStackTrace(); } + } + BlockPosition localBlockPosition = new BlockPosition(this.a); int i1 = (int) (f1 + 8.0F); ChunkCache localChunkCache = new ChunkCache(this.b, localBlockPosition.a(-i1, -i1, -i1), @@ -462,7 +498,9 @@ public class PlayerNavigation extends NavigationAbstract { } catch (Throwable ex2) { ex2.printStackTrace(); } + } + return localPathEntity; } @@ -481,8 +519,11 @@ public class PlayerNavigation extends NavigationAbstract { this.c.a(i1 + 1, ((PathPoint) localObject).a(((PathPoint) localObject).a, localPathPoint.b + 1, ((PathPoint) localObject).c)); } + } + } + } @Override @@ -507,6 +548,7 @@ public class PlayerNavigation extends NavigationAbstract { if (j > 16) return (int) bb.minY; } + return i; } @@ -525,7 +567,9 @@ public class PlayerNavigation extends NavigationAbstract { ex2.printStackTrace(); return 0; } + } + } private static final Method GET_MONOTONIC_MILLIS = NMS.getMethod(SystemUtils.class, "b", false); diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerPathfinder.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerPathfinder.java index 146893195..6155a8578 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerPathfinder.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerPathfinder.java @@ -81,6 +81,7 @@ public class PlayerPathfinder extends Pathfinder { i++; localPathPoint = localPathPoint.h; } + PathPoint[] arrayOfPathPoint = new PathPoint[i]; localPathPoint = paramPathPoint2; arrayOfPathPoint[--i] = localPathPoint; @@ -88,6 +89,7 @@ public class PlayerPathfinder extends Pathfinder { localPathPoint = localPathPoint.h; arrayOfPathPoint[--i] = localPathPoint; } + return new PathEntity(arrayOfPathPoint); } @@ -105,14 +107,17 @@ public class PlayerPathfinder extends Pathfinder { if (i >= 200) { break; } + Object localObject2 = this.a.c(); if (((PathPoint) localObject2).equals(paramPathPoint2)) { localObject1 = paramPathPoint2; break; } + if (((PathPoint) localObject2).c(paramPathPoint2) < ((PathPoint) localObject1).c(paramPathPoint2)) { localObject1 = localObject2; } + ((PathPoint) localObject2).i = true; int j = this.d.a(this.c, (PathPoint) localObject2, paramPathPoint2, paramFloat); for (int k = 0; k < j; k++) { @@ -131,9 +136,13 @@ public class PlayerPathfinder extends Pathfinder { localPathPoint.g = localPathPoint.e + localPathPoint.f; this.a.a(localPathPoint); } + } + } + } + if (localObject1 == paramPathPoint1) return null; Object localObject2 = a(paramPathPoint1, (PathPoint) localObject1); diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerPathfinderAbstract.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerPathfinderAbstract.java index 91004f6f7..78f92b05f 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerPathfinderAbstract.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerPathfinderAbstract.java @@ -46,6 +46,7 @@ public abstract class PlayerPathfinderAbstract extends PathfinderAbstract { localPathPoint = new PathPoint(paramInt1, paramInt2, paramInt3); this.c.a(j, localPathPoint); } + return localPathPoint; } diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerPathfinderNormal.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerPathfinderNormal.java index 50716ed51..758ac9906 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerPathfinderNormal.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerPathfinderNormal.java @@ -75,10 +75,13 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var7 == PathType.DAMAGE_FIRE || var6 == Blocks.MAGMA_BLOCK) { var5 = PathType.DAMAGE_FIRE; } + if (var7 == PathType.DAMAGE_CACTUS) { var5 = PathType.DAMAGE_CACTUS; } + } + var5 = this.a(var1, var2, var3, var4, var5); return var5; } @@ -102,12 +105,15 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var5.a(var18) >= var5.a(var16)) { var16 = var18; } + } + if (var12 == PathType.OPEN && var5.a(var16) == 0.0F) return PathType.OPEN; else return var16; } + } @Override @@ -130,12 +136,15 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var5.a(var18) >= var5.a(var16)) { var16 = var18; } + } + if (var12 == PathType.OPEN && var5.a(var16) == 0.0F) return PathType.OPEN; else return var16; } + } public PathType a(IBlockAccess var1, int var2, int var3, int var4, int var5, int var6, int var7, boolean var8, @@ -150,21 +159,28 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var19 == PathType.DOOR_WOOD_CLOSED && var8 && var9) { var19 = PathType.WALKABLE; } + if (var19 == PathType.DOOR_OPEN && !var9) { var19 = PathType.BLOCKED; } + if (var19 == PathType.RAIL && !(var1.getType(var12).getBlock() instanceof BlockMinecartTrackAbstract) && !(var1.getType(var12.down()).getBlock() instanceof BlockMinecartTrackAbstract)) { var19 = PathType.FENCE; } + if (var13 == 0 && var14 == 0 && var15 == 0) { var11 = var19; } + var10.add(var19); } + } + } + return var11; } @@ -187,16 +203,22 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { ex2.printStackTrace(); return PathType.BLOCKED; } + } + Block var10 = var1.getType(blockPos).getBlock(); if (var10 == Blocks.CACTUS) { var5 = PathType.DANGER_CACTUS; } else if (var10 == Blocks.FIRE) { var5 = PathType.DANGER_FIRE; } + } + } + } + } catch (Throwable var18) { var7 = var18; throw var18; @@ -208,12 +230,17 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { } catch (Throwable var17) { var7.addSuppressed(var17); } + } else { var6.close(); } + } + } + } + return var5; } @@ -232,6 +259,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var8.m = var12; var8.l = Math.max(var8.l, var13); } + if ((var12 != PathType.WALKABLE)) { if (var8 == null && var4 > 0 && var12 != PathType.FENCE && var12 != PathType.TRAPDOOR) { var8 = this.a(var1, var2 + 1, var3, var4 - 1, var5, var7); @@ -244,8 +272,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (!this.b.world.getCubes((Entity) null, var20)) { var8 = null; } + } + } + if (var12 == PathType.WATER && !this.e()) { if (this.a(this.b, var1, var2 - 1, var3) != PathType.WATER) return var8; @@ -258,7 +289,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var8.m = var12; var8.l = Math.max(var8.l, this.b.a(var12)); } + } + if (var12 == PathType.OPEN) { AxisAlignedBB var21 = new AxisAlignedBB(var1 - var14 + 0.5D, var2 + 0.001D, var3 - var14 + 0.5D, var1 + var14 + 0.5D, var2 + this.b.length, var3 + var14 + 0.5D); @@ -272,7 +305,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var8.l = Math.max(var8.l, var13); return var8; } + } + int var22 = 0; while (var2 > 0 && var12 == PathType.OPEN) { --var2; @@ -286,13 +321,18 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var8.l = Math.max(var8.l, var13); break; } + if (var13 < 0.0F) return null; } + } + } + return var8; } + } @Override @@ -303,6 +343,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (this.b.a(var7) >= 0.0F) { var6 = MathHelper.d(Math.max(1.0F, this.b.Q)); } + double var8 = a(this.a, new BlockPosition(var2.a, var2.b, var2.c)); PathPoint var10 = this.a(var2.a, var2.b, var2.c + 1, var6, var8, EnumDirection.SOUTH); PathPoint var11 = this.a(var2.a - 1, var2.b, var2.c, var6, var8, EnumDirection.WEST); @@ -311,15 +352,19 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var10 != null && !var10.i && var10.a(var3) < var4) { var1[var5++] = var10; } + if (var11 != null && !var11.i && var11.a(var3) < var4) { var1[var5++] = var11; } + if (var12 != null && !var12.i && var12.a(var3) < var4) { var1[var5++] = var12; } + if (var13 != null && !var13.i && var13.a(var3) < var4) { var1[var5++] = var13; } + boolean var14 = var13 == null || var13.m == PathType.OPEN || var13.l != 0.0F; boolean var15 = var10 == null || var10.m == PathType.OPEN || var10.l != 0.0F; boolean var16 = var12 == null || var12.m == PathType.OPEN || var12.l != 0.0F; @@ -330,25 +375,33 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var18 != null && !var18.i && var18.a(var3) < var4) { var1[var5++] = var18; } + } + if (var14 && var16) { var18 = this.a(var2.a + 1, var2.b, var2.c - 1, var6, var8, EnumDirection.NORTH); if (var18 != null && !var18.i && var18.a(var3) < var4) { var1[var5++] = var18; } + } + if (var15 && var17) { var18 = this.a(var2.a - 1, var2.b, var2.c + 1, var6, var8, EnumDirection.SOUTH); if (var18 != null && !var18.i && var18.a(var3) < var4) { var1[var5++] = var18; } + } + if (var15 && var16) { var18 = this.a(var2.a + 1, var2.b, var2.c + 1, var6, var8, EnumDirection.SOUTH); if (var18 != null && !var18.i && var18.a(var3) < var4) { var1[var5++] = var18; } + } + return var5; } @@ -366,6 +419,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { ++var1; var8.c(MathHelper.floor(this.b.locX), var1, MathHelper.floor(this.b.locZ)); } + } else if (this.b.onGround) { var1 = MathHelper.floor(bb.minY + 0.5D); } else { @@ -373,8 +427,10 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { this.b); (this.a.getType(var2).isAir() || this.a.getType(var2).a(this.a, var2, PathMode.LAND)) && var2.getY() > 0; var2 = var2.down()) { } + var1 = var2.up().getY(); } + var2 = new BlockPosition(this.b); PathType var9 = this.a(this.b, var2.getX(), var1, var2.getZ()); if (this.b.a(var9) < 0.0F) { @@ -391,7 +447,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (this.b.a(var7) >= 0.0F) return this.a(var6.getX(), var6.getY(), var6.getZ()); } + } + return this.a(var2.getX(), var1, var2.getZ()); } @@ -429,7 +487,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { ex2.printStackTrace(); return PathType.BLOCKED; } + } + if (var9.a(TagsFluid.WATER)) return PathType.WATER; else if (var9.a(TagsFluid.LAVA)) @@ -454,7 +514,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { ex2.printStackTrace(); return 0; } + } + } private static final Method BLOCK_POSITION_B_C = NMS.getMethod(BlockPosition.PooledBlockPosition.class, "f", false, diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerlistTrackerEntry.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerlistTrackerEntry.java index a0b73d9d9..2c980a131 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerlistTrackerEntry.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerlistTrackerEntry.java @@ -43,12 +43,14 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { if (res == null) { updateLastPlayer(player); } + return res; } }); } catch (Throwable e) { e.printStackTrace(); } + } else { try { Set delegate = super.trackedPlayers; @@ -59,6 +61,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { if (res) { updateLastPlayer(player); } + return res; } @@ -70,7 +73,9 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (Throwable e) { e.printStackTrace(); } + } + } public PlayerlistTrackerEntry(EntityTrackerEntry entry) { @@ -86,6 +91,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { Bukkit.getPluginManager().callEvent( new NPCLinkToPlayerEvent(((NPCHolder) tracker).getNPC(), lastUpdatedPlayer.getBukkitEntity())); } + } @Override @@ -108,7 +114,9 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (Throwable e) { e.printStackTrace(); } + } + } super.updatePlayer(entityplayer); @@ -122,6 +130,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return 0; } @@ -133,6 +142,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return 0; } @@ -144,6 +154,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return 0; } @@ -155,6 +166,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return null; } @@ -166,6 +178,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return false; } @@ -187,7 +200,9 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { TRACKING_MAP_SETTER = NMS.getFirstSetter(EntityTrackerEntry.class, Map.class); TRACKING_MAP_GETTER = NMS.getFirstGetter(EntityTrackerEntry.class, Map.class); } + } catch (Exception e) { } + } } diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ArmorStandController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ArmorStandController.java index 0be6bd61a..552dc75f4 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ArmorStandController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/ArmorStandController.java @@ -89,6 +89,7 @@ public class ArmorStandController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +101,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -118,6 +120,7 @@ public class ArmorStandController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -125,6 +128,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ArmorStandNPC(this)); } + return super.getBukkitEntity(); } @@ -144,6 +148,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { npc.update(); } + } } } 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 c168a9cc6..d02ed0024 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 @@ -66,6 +66,7 @@ public class BatController extends MobEntityController { if (npc != null) { setAsleep(false); } + } @Override @@ -88,6 +89,7 @@ public class BatController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class BatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class BatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +133,7 @@ public class BatController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -136,6 +141,7 @@ public class BatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BatNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +183,7 @@ public class BatController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } @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 a1fa6aab5..34377b9f6 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 @@ -85,6 +85,7 @@ public class BlazeController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -98,6 +99,7 @@ public class BlazeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -108,6 +110,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -126,6 +129,7 @@ public class BlazeController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -133,6 +137,7 @@ public class BlazeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BlazeNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +176,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 b9fade87d..6125b4ed7 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 @@ -79,6 +79,7 @@ public class CatController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -87,6 +88,7 @@ public class CatController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -100,6 +102,7 @@ public class CatController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class CatController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -124,6 +128,7 @@ public class CatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -134,6 +139,7 @@ public class CatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -153,6 +159,7 @@ public class CatController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -161,6 +168,7 @@ public class CatController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -168,6 +176,7 @@ public class CatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CatNPC(this)); } + return super.getBukkitEntity(); } @@ -215,6 +224,7 @@ public class CatController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 67a62d7a0..45bb8b18d 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 @@ -77,6 +77,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -90,6 +91,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -101,6 +103,7 @@ public class CaveSpiderController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -114,6 +117,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -124,6 +128,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -143,6 +148,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -151,6 +157,7 @@ public class CaveSpiderController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -158,6 +165,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CaveSpiderNPC(this)); } + return super.getBukkitEntity(); } @@ -205,6 +213,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -221,6 +230,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } 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 452f9b1e3..2ed450c5e 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 @@ -79,6 +79,7 @@ public class ChickenController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -87,6 +88,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -100,6 +102,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -111,6 +114,7 @@ public class ChickenController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -124,6 +128,7 @@ public class ChickenController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -134,6 +139,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -153,6 +159,7 @@ public class ChickenController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -161,6 +168,7 @@ public class ChickenController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -168,6 +176,7 @@ public class ChickenController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ChickenNPC(this)); } + return super.getBukkitEntity(); } @@ -215,6 +224,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -222,6 +232,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { this.eggLayTime = 100; // egg timer } + super.movementTick(); } 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 64bc577c5..5cf959f1d 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 @@ -73,6 +73,7 @@ public class CodController extends MobEntityController { if (npc != null) { this.moveController = new ControllerMove(this); } + } @Override @@ -85,6 +86,7 @@ public class CodController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -108,6 +110,7 @@ public class CodController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -119,6 +122,7 @@ public class CodController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -132,6 +136,7 @@ public class CodController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -142,6 +147,7 @@ public class CodController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -160,9 +166,11 @@ public class CodController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.e(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -171,6 +179,7 @@ public class CodController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -178,6 +187,7 @@ public class CodController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CodNPC(this)); } + return super.getBukkitEntity(); } @@ -224,10 +234,12 @@ public class CodController extends MobEntityController { if (npc != null) { NMSImpl.setNotInSchool(this); } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -236,10 +248,12 @@ public class CodController extends MobEntityController { if (npc != null) { this.y = false; } + super.movementTick(); if (npc != null) { this.y = lastInWater; } + } @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 33835e9da..40c49be50 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 @@ -83,6 +83,7 @@ public class CowController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -91,6 +92,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -114,6 +116,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -125,6 +128,7 @@ public class CowController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -138,6 +142,7 @@ public class CowController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -148,6 +153,7 @@ public class CowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -167,6 +173,7 @@ public class CowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -175,6 +182,7 @@ public class CowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -182,6 +190,7 @@ public class CowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CowNPC(this)); } + return super.getBukkitEntity(); } @@ -229,6 +238,7 @@ public class CowController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 dcdbe77e2..bfba837f2 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 @@ -80,6 +80,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -93,6 +94,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -104,6 +106,7 @@ public class CreeperController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -117,6 +120,7 @@ public class CreeperController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -127,6 +131,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -146,6 +151,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -154,6 +160,7 @@ public class CreeperController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -161,6 +168,7 @@ public class CreeperController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CreeperNPC(this)); } + return super.getBukkitEntity(); } @@ -194,6 +202,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isProtected()) { super.ignite(); } + } @Override @@ -215,6 +224,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -229,6 +239,7 @@ public class CreeperController extends MobEntityController { if (npc == null || allowPowered) { super.onLightningStrike(entitylightning); } + } public void setAllowPowered(boolean allowPowered) { @@ -242,6 +253,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } 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 543bd0c9a..9d43deb24 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 @@ -74,6 +74,7 @@ public class DolphinController extends MobEntityController { this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED) .setValue(this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getBaseValue() / 10); } + } @Override @@ -86,6 +87,7 @@ public class DolphinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -104,6 +106,7 @@ public class DolphinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -115,6 +118,7 @@ public class DolphinController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -128,6 +132,7 @@ public class DolphinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -138,6 +143,7 @@ public class DolphinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -156,9 +162,11 @@ public class DolphinController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d, db())) { super.e(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -167,6 +175,7 @@ public class DolphinController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -174,6 +183,7 @@ public class DolphinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DolphinNPC(this)); } + return super.getBukkitEntity(); } @@ -227,11 +237,13 @@ public class DolphinController extends MobEntityController { if (npc != null && npc.isProtected()) { inProtectedTick = true; } + super.tick(); inProtectedTick = false; if (npc != null) { npc.update(); } + } } } 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 c6cc69029..42de6f247 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 @@ -77,6 +77,7 @@ public class DrownedController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -90,6 +91,7 @@ public class DrownedController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -101,6 +103,7 @@ public class DrownedController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -114,6 +117,7 @@ public class DrownedController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -124,6 +128,7 @@ public class DrownedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -143,6 +148,7 @@ public class DrownedController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -151,6 +157,7 @@ public class DrownedController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -158,6 +165,7 @@ public class DrownedController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DrownedNPC(this)); } + return super.getBukkitEntity(); } @@ -205,6 +213,7 @@ public class DrownedController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 be7efcc88..1ef7a1b47 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 @@ -90,6 +90,7 @@ public class EnderDragonController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -103,6 +104,7 @@ public class EnderDragonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -113,6 +115,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -135,6 +138,7 @@ public class EnderDragonController extends MobEntityController { if (getDragonControllerManager().a().getControllerPhase() == DragonControllerPhase.HOVER) { setMot(old); } + return res; } @@ -144,6 +148,7 @@ public class EnderDragonController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -151,6 +156,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderDragonNPC(this)); } + return super.getBukkitEntity(); } @@ -189,16 +195,19 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { npc.update(); } + if (npc != null) { if (getDragonControllerManager().a().getControllerPhase() == DragonControllerPhase.DYING) { setHealth(0F); return; } + if (this.d < 0) { for (int i = 0; i < this.c.length; ++i) { this.c[i][0] = this.yaw; this.c[i][1] = this.locY; } + } if (++this.d == this.c.length) { @@ -221,12 +230,14 @@ public class EnderDragonController extends MobEntityController { if (getRidingPassenger() != null) { yaw = getRidingPassenger().getBukkitYaw() - 180; } + Vec3D mot = getMot(); if (mot.getX() != 0 || mot.getY() != 0 || mot.getZ() != 0) { mot = mot.d(0.98, 0.98, 0.98); if (getRidingPassenger() == null) { yaw = Util.getDragonYaw(getBukkitEntity(), mot.x, mot.z); } + setPosition(locX + mot.getX(), locY + mot.getY(), locZ + mot.getZ()); setMot(mot); } @@ -240,8 +251,11 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + } + } + if (npc.data().get(NPC.Metadata.COLLIDABLE, false)) { try { KNOCKBACK.invoke(this, this.world.getEntities(this, @@ -255,10 +269,13 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable t) { t.printStackTrace(); } + } + } else { super.movementTick(); } + } @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 6e1944978..927e39e52 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 @@ -77,6 +77,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -97,6 +98,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -108,6 +110,7 @@ public class EndermanController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -121,6 +124,7 @@ public class EndermanController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -131,6 +135,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -150,6 +155,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -158,6 +164,7 @@ public class EndermanController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -165,6 +172,7 @@ public class EndermanController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EndermanNPC(this)); } + return super.getBukkitEntity(); } @@ -212,6 +220,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -228,6 +237,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } 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 d53efa864..5da6db9ef 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 @@ -77,6 +77,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -90,6 +91,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -101,6 +103,7 @@ public class EndermiteController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -114,6 +117,7 @@ public class EndermiteController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -124,6 +128,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -143,6 +148,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -151,6 +157,7 @@ public class EndermiteController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -158,6 +165,7 @@ public class EndermiteController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EndermiteNPC(this)); } + return super.getBukkitEntity(); } @@ -205,6 +213,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -221,6 +230,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java index 550aad0a6..8bd39aa93 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java @@ -89,6 +89,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { skinTracker = null; } + } @Override @@ -96,6 +97,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -118,6 +120,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -128,6 +131,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -138,8 +142,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable boolean damaged = super.damageEntity(damagesource, f); if (damaged && velocityChanged) { velocityChanged = false; - Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), (Runnable) () -> EntityHumanNPC.this.velocityChanged = true); + Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), + (Runnable) () -> EntityHumanNPC.this.velocityChanged = true); } + return damaged; } @@ -156,7 +162,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (dead) return; super.die(damagesource); - Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), (Runnable) () -> ((WorldServer) world).removeEntity(EntityHumanNPC.this), 15); // give enough time for death and smoke animation + Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), + (Runnable) () -> ((WorldServer) world).removeEntity(EntityHumanNPC.this), 15); // give enough time for + // death and smoke + // animation } @Override @@ -166,6 +175,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -174,6 +184,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +192,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PlayerNPC(this)); } + return super.getBukkitEntity(); } @@ -214,6 +226,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (skinName == null) { skinName = npc.getName(); } + return skinName.toLowerCase(); } @@ -246,10 +259,12 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable conn.setPacketListener(playerConnection); } catch (IOException e) { } + AttributeInstance range = getAttributeInstance(GenericAttributes.FOLLOW_RANGE); if (range == null) { range = getAttributeMap().b(GenericAttributes.FOLLOW_RANGE); } + range.setValue(Setting.DEFAULT_PATHFINDING_RANGE.asDouble()); controllerJump = new PlayerControllerJump(this); controllerMove = new PlayerControllerMove(this); @@ -287,9 +302,11 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable jump(); jumpTicks = 10; } + } else { jumpTicks = 0; } + bb *= 0.98F; bd *= 0.98F; be *= 0.9F; @@ -298,6 +315,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (jumpTicks > 0) { jumpTicks--; } + } private void moveWithFallDamage(Vec3D vec) { @@ -306,6 +324,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (!npc.isProtected()) { a(this.locY - y, onGround); } + } @Override @@ -314,6 +333,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable super.playerTick(); return; } + entityBaseTick(); boolean navigating = npc.getNavigator().isNavigating() || controllerMove.b(); if (!navigating && getBukkitEntity() != null @@ -322,16 +342,20 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable && (!npc.isProtected() || SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld()))) { moveWithFallDamage(new Vec3D(0, 0, 0)); } + Vec3D mot = getMot(); if (Math.abs(mot.getX()) < EPSILON && Math.abs(mot.getY()) < EPSILON && Math.abs(mot.getZ()) < EPSILON) { setMot(new Vec3D(0, 0, 0)); } + if (navigating) { if (!NMSImpl.isNavigationFinished(navigation)) { NMSImpl.updateNavigation(navigation); } + moveOnCurrentHeading(); } + updateAI(); collideNearby(); if (npc.data().get(NPC.Metadata.PICKUP_ITEMS, false)) { @@ -341,12 +365,16 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { axisalignedbb = this.getBoundingBox().grow(1.0, 0.5, 1.0); } + for (Entity entity : this.world.getEntities(this, axisalignedbb)) { if (!entity.dead) { entity.pickup(this); } + } + } + } public void setMoveDestination(double x, double y, double z, double speed) { @@ -418,9 +446,12 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (equipment != null && !equipment.isEmpty()) { this.getAttributeMap().b(equipment.a(slot)); } + } + equipmentCache.put(slot, equipment); } + if (!itemChanged) return; Location current = getBukkitEntity().getLocation(packetLocationCache); @@ -429,6 +460,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable for (EnumItemSlot slot : EnumItemSlot.values()) { packets[i++] = new PacketPlayOutEntityEquipment(getId(), slot, getEquipment(slot)); } + NMSImpl.sendPacketsNearby(getBukkitEntity(), current, packets); } 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 af2261f0c..63c9f7d70 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 @@ -63,6 +63,7 @@ public class EvokerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class EvokerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class EvokerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class EvokerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class EvokerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class EvokerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class EvokerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class EvokerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EvokerNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class EvokerController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 a984bf6ec..16434e809 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 @@ -65,6 +65,7 @@ public class FoxController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -73,6 +74,7 @@ public class FoxController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -86,6 +88,7 @@ public class FoxController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -97,6 +100,7 @@ public class FoxController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -110,6 +114,7 @@ public class FoxController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -120,6 +125,7 @@ public class FoxController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -139,6 +145,7 @@ public class FoxController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +154,7 @@ public class FoxController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +162,7 @@ public class FoxController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FoxNPC(this)); } + return super.getBukkitEntity(); } @@ -201,6 +210,7 @@ public class FoxController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 06f10279c..d80fb4d21 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 @@ -71,6 +71,7 @@ public class GhastController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -84,6 +85,7 @@ public class GhastController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -94,6 +96,7 @@ public class GhastController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +115,7 @@ public class GhastController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -119,6 +123,7 @@ public class GhastController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GhastNPC(this)); } + return super.getBukkitEntity(); } @@ -162,6 +167,7 @@ public class GhastController extends MobEntityController { if (npc != null) { npc.update(); } + super.mobTick(); } 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 0a9cdc4aa..6d2f72d44 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 @@ -63,6 +63,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class GiantController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class GiantController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class GiantController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class GiantController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class GiantController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GiantNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class GiantController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -207,6 +216,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 1f6be0e44..3ff30b930 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 @@ -63,6 +63,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class GuardianController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class GuardianController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class GuardianController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class GuardianController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class GuardianController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GuardianNPC(this)); } + return super.getBukkitEntity(); } @@ -193,6 +201,7 @@ public class GuardianController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } @Override @@ -209,6 +218,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 9edcdb17b..730b9c460 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 @@ -63,6 +63,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class GuardianElderController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class GuardianElderController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GuardianElderNPC(this)); } + return super.getBukkitEntity(); } @@ -193,6 +201,7 @@ public class GuardianElderController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } @Override @@ -209,6 +218,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 21b94737c..bbdf4718f 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 @@ -71,6 +71,7 @@ public class HorseController extends MobEntityController { horse.setDomestication(horse.getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -84,6 +85,7 @@ public class HorseController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -92,6 +94,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -105,6 +108,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -116,6 +120,7 @@ public class HorseController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -136,6 +141,7 @@ public class HorseController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -146,6 +152,7 @@ public class HorseController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -170,6 +177,7 @@ public class HorseController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -178,6 +186,7 @@ public class HorseController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -185,6 +194,7 @@ public class HorseController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseNPC(this)); } + return super.getBukkitEntity(); } @@ -237,16 +247,20 @@ public class HorseController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 88d2fd7bc..e0598bc9f 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 @@ -70,6 +70,7 @@ public class HorseDonkeyController extends MobEntityController { ((Donkey) getBukkitEntity()).setDomestication(((Donkey) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -83,6 +84,7 @@ public class HorseDonkeyController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -91,6 +93,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -104,6 +107,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -115,6 +119,7 @@ public class HorseDonkeyController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -135,6 +140,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -145,6 +151,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -169,6 +176,7 @@ public class HorseDonkeyController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -177,6 +185,7 @@ public class HorseDonkeyController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -184,6 +193,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseDonkeyNPC(this)); } + return super.getBukkitEntity(); } @@ -236,16 +246,20 @@ public class HorseDonkeyController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 856e0c22d..0a88e206a 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 @@ -70,6 +70,7 @@ public class HorseMuleController extends MobEntityController { ((Mule) getBukkitEntity()).setDomestication(((Mule) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -83,6 +84,7 @@ public class HorseMuleController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -91,6 +93,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -104,6 +107,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -115,6 +119,7 @@ public class HorseMuleController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -135,6 +140,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -145,6 +151,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -169,6 +176,7 @@ public class HorseMuleController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -177,6 +185,7 @@ public class HorseMuleController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -184,6 +193,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseMuleNPC(this)); } + return super.getBukkitEntity(); } @@ -236,16 +246,20 @@ public class HorseMuleController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 ae721a02e..0267cec4a 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 @@ -71,6 +71,7 @@ public class HorseSkeletonController extends MobEntityController { .setDomestication(((SkeletonHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -84,6 +85,7 @@ public class HorseSkeletonController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -92,6 +94,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -105,6 +108,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -116,6 +120,7 @@ public class HorseSkeletonController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -136,6 +141,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -146,6 +152,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -170,6 +177,7 @@ public class HorseSkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -178,6 +186,7 @@ public class HorseSkeletonController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -185,6 +194,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseSkeletonNPC(this)); } + return super.getBukkitEntity(); } @@ -237,16 +247,20 @@ public class HorseSkeletonController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 df484379f..ae00905ef 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 @@ -71,6 +71,7 @@ public class HorseZombieController extends MobEntityController { .setDomestication(((ZombieHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -84,6 +85,7 @@ public class HorseZombieController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -92,6 +94,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -105,6 +108,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -116,6 +120,7 @@ public class HorseZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -136,6 +141,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -146,6 +152,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -170,6 +177,7 @@ public class HorseZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -178,6 +186,7 @@ public class HorseZombieController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -185,6 +194,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -237,16 +247,20 @@ public class HorseZombieController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HumanController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HumanController.java index 150fcf1e3..1d6521f2c 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HumanController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HumanController.java @@ -35,9 +35,11 @@ public class HumanController extends AbstractEntityController { if (npc.requiresNameHologram()) { name = teamName; } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } + final GameProfile profile = new GameProfile(uuid, name); final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile, new PlayerInteractManager(nmsWorld), npc); @@ -45,6 +47,7 @@ public class HumanController extends AbstractEntityController { if (skin != null) { skin.apply(handle); } + Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> { if (getBukkitEntity() == null || !getBukkitEntity().isValid() || getBukkitEntity() != handle.getBukkitEntity()) 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 bee946808..db8023e2c 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 @@ -63,6 +63,7 @@ public class IllusionerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class IllusionerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class IllusionerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class IllusionerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class IllusionerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class IllusionerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class IllusionerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class IllusionerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new IllusionerNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class IllusionerController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 8d5ca0122..a17ed0948 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 @@ -63,6 +63,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class IronGolemController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class IronGolemController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class IronGolemController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class IronGolemController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new IronGolemNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -207,6 +216,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 e439b2690..851da2f60 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 @@ -70,6 +70,7 @@ public class LlamaController extends MobEntityController { ((Llama) getBukkitEntity()).setDomestication(((Llama) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -83,6 +84,7 @@ public class LlamaController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -91,6 +93,7 @@ public class LlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -104,6 +107,7 @@ public class LlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -115,6 +119,7 @@ public class LlamaController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -135,6 +140,7 @@ public class LlamaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -145,6 +151,7 @@ public class LlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -169,6 +176,7 @@ public class LlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -177,6 +185,7 @@ public class LlamaController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -184,6 +193,7 @@ public class LlamaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LlamaNPC(this)); } + return super.getBukkitEntity(); } @@ -236,16 +246,20 @@ public class LlamaController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 75cf8114f..900836b5f 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 @@ -57,6 +57,7 @@ public class MagmaCubeController extends MobEntityController { setSize(3, true); this.moveController = new PlayerControllerMove(this); } + } @Override @@ -69,6 +70,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -82,6 +84,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -93,6 +96,7 @@ public class MagmaCubeController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -106,6 +110,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -116,6 +121,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -135,6 +141,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -143,6 +150,7 @@ public class MagmaCubeController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -150,6 +158,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MagmaCubeNPC(this)); } + return super.getBukkitEntity(); } @@ -203,6 +212,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.pickup(human); } + } @Override @@ -211,6 +221,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -220,6 +231,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MobEntityController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MobEntityController.java index 4b4d92a34..16c63f9d6 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MobEntityController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MobEntityController.java @@ -41,7 +41,9 @@ public abstract class MobEntityController extends AbstractEntityController { if (mob.getControllerLook().getClass() == ControllerLook.class) { NMSImpl.setLookControl(mob, new PitchableLookControl(mob)); } + } + entity.setPositionRotation(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch()); if (npc != null) { // entity.onGround isn't updated right away - we approximate here so @@ -50,15 +52,19 @@ public abstract class MobEntityController extends AbstractEntityController { if (beneath.isSolid()) { entity.onGround = true; } + try { UUID_FIELD.invoke(entity, npc.getUniqueId()); } catch (Throwable e) { e.printStackTrace(); } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } + } + return entity.getBukkitEntity(); } @@ -69,6 +75,7 @@ public abstract class MobEntityController extends AbstractEntityController { ex.printStackTrace(); return null; } + } private static Constructor getConstructor(Class clazz) { @@ -81,6 +88,7 @@ public abstract class MobEntityController extends AbstractEntityController { } catch (Exception ex) { throw new IllegalStateException("unable to find an entity constructor"); } + } private static final Map, Constructor> CONSTRUCTOR_CACHE = new WeakHashMap<>(); 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 9b4a7e53c..48b183d7d 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 @@ -67,6 +67,7 @@ public class MushroomCowController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -75,6 +76,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -95,6 +97,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -106,6 +109,7 @@ public class MushroomCowController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -119,6 +123,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -129,6 +134,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -148,6 +154,7 @@ public class MushroomCowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -156,6 +163,7 @@ public class MushroomCowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -163,6 +171,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MushroomCowNPC(this)); } + return super.getBukkitEntity(); } @@ -210,6 +219,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 e03546217..34cf8f85e 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 @@ -65,6 +65,7 @@ public class OcelotController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -73,6 +74,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -86,6 +88,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -97,6 +100,7 @@ public class OcelotController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -110,6 +114,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -120,6 +125,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -137,6 +143,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.dW(); } + } @Override @@ -146,6 +153,7 @@ public class OcelotController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -154,6 +162,7 @@ public class OcelotController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -161,6 +170,7 @@ public class OcelotController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new OcelotNPC(this)); } + return super.getBukkitEntity(); } @@ -208,6 +218,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 370e9cca8..4e72b1847 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 @@ -65,6 +65,7 @@ public class PandaController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -73,6 +74,7 @@ public class PandaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -86,6 +88,7 @@ public class PandaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -97,6 +100,7 @@ public class PandaController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -110,6 +114,7 @@ public class PandaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -120,6 +125,7 @@ public class PandaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -139,6 +145,7 @@ public class PandaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +154,7 @@ public class PandaController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +162,7 @@ public class PandaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PandaNPC(this)); } + return super.getBukkitEntity(); } @@ -201,6 +210,7 @@ public class PandaController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 59385d4e9..1c53011d6 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 @@ -81,6 +81,7 @@ public class ParrotController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -94,6 +95,7 @@ public class ParrotController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -104,6 +106,7 @@ public class ParrotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -122,6 +125,7 @@ public class ParrotController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -129,6 +133,7 @@ public class ParrotController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ParrotNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +175,7 @@ public class ParrotController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } @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 c1468a502..ab0b218e7 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 @@ -59,6 +59,7 @@ public class PhantomController extends MobEntityController { this.lookController = new ControllerLook(this); // TODO: phantom pitch reversed } + } @Override @@ -71,6 +72,7 @@ public class PhantomController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -84,6 +86,7 @@ public class PhantomController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -95,6 +98,7 @@ public class PhantomController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -108,6 +112,7 @@ public class PhantomController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -118,6 +123,7 @@ public class PhantomController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -144,6 +150,7 @@ public class PhantomController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -152,6 +159,7 @@ public class PhantomController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -159,6 +167,7 @@ public class PhantomController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PhantomNPC(this)); } + return super.getBukkitEntity(); } @@ -207,8 +216,10 @@ public class PhantomController extends MobEntityController { if (npc.isProtected()) { this.setOnFire(0); } + npc.update(); } + } @Override @@ -225,10 +236,12 @@ public class PhantomController extends MobEntityController { if (npc != null && resetDifficulty) { this.world.getWorldData().setDifficulty(EnumDifficulty.NORMAL); } + super.tick(); if (npc != null && resetDifficulty) { this.world.getWorldData().setDifficulty(EnumDifficulty.PEACEFUL); } + } } 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 48fdcbcc8..6416e87af 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 @@ -66,6 +66,7 @@ public class PigController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -74,6 +75,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -87,6 +89,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -98,6 +101,7 @@ public class PigController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +115,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +126,7 @@ public class PigController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -146,6 +152,7 @@ public class PigController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -154,6 +161,7 @@ public class PigController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -161,6 +169,7 @@ public class PigController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PigNPC(this)); } + return super.getBukkitEntity(); } @@ -208,6 +217,7 @@ public class PigController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -222,6 +232,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } } 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 13edfad41..35d0d78fe 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 @@ -63,6 +63,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class PigZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class PigZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class PigZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class PigZombieController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class PigZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PigZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 e3cef52ab..b328e6105 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 @@ -65,6 +65,7 @@ public class PillagerController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -73,6 +74,7 @@ public class PillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -86,6 +88,7 @@ public class PillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -97,6 +100,7 @@ public class PillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -110,6 +114,7 @@ public class PillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -120,6 +125,7 @@ public class PillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -139,6 +145,7 @@ public class PillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +154,7 @@ public class PillagerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +162,7 @@ public class PillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -201,6 +210,7 @@ public class PillagerController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 1560d64d3..59ba2a351 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 @@ -63,6 +63,7 @@ public class PolarBearController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -81,6 +82,7 @@ public class PolarBearController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -94,6 +96,7 @@ public class PolarBearController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -104,6 +107,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -122,6 +126,7 @@ public class PolarBearController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -129,6 +134,7 @@ public class PolarBearController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PolarBearNPC(this)); } + return super.getBukkitEntity(); } @@ -168,6 +174,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 94dc36bb0..776f05507 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 @@ -62,6 +62,7 @@ public class PufferFishController extends MobEntityController { if (npc != null) { this.moveController = new ControllerMove(this); } + } @Override @@ -74,6 +75,7 @@ public class PufferFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -104,6 +106,7 @@ public class PufferFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -115,6 +118,7 @@ public class PufferFishController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -128,6 +132,7 @@ public class PufferFishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -138,6 +143,7 @@ public class PufferFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -156,9 +162,11 @@ public class PufferFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.e(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -167,6 +175,7 @@ public class PufferFishController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -174,6 +183,7 @@ public class PufferFishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PufferFishNPC(this)); } + return super.getBukkitEntity(); } @@ -221,6 +231,7 @@ public class PufferFishController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -231,11 +242,13 @@ public class PufferFishController extends MobEntityController { this.y = false; setPuffState(0); } + super.movementTick(); if (npc != null) { this.y = lastInWater; setPuffState(lastPuffState); } + } @Override @@ -250,10 +263,12 @@ public class PufferFishController extends MobEntityController { if (npc != null) { NMSImpl.resetPuffTicks(this); } + super.tick(); if (npc != null && npc.hasTrait(PufferFishTrait.class)) { setPuffState(npc.getOrAddTrait(PufferFishTrait.class).getPuffState()); } + } private static float s(int i) { @@ -265,6 +280,7 @@ public class PufferFishController extends MobEntityController { default: return 1.0F; } + } } 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 53b628961..157b717f7 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 @@ -66,6 +66,7 @@ public class RabbitController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -74,6 +75,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -87,6 +89,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -98,6 +101,7 @@ public class RabbitController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +115,7 @@ public class RabbitController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +126,7 @@ public class RabbitController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +146,7 @@ public class RabbitController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -148,6 +155,7 @@ public class RabbitController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -155,6 +163,7 @@ public class RabbitController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new RabbitNPC(this)); } + return super.getBukkitEntity(); } @@ -208,10 +217,12 @@ public class RabbitController extends MobEntityController { if (npc.getNavigator().isNavigating()) { NMS.setShouldJump(getBukkitEntity()); } + npc.update(); } else { super.mobTick(); } + } @Override @@ -229,6 +240,7 @@ public class RabbitController extends MobEntityController { this.datawatcher.set(NMSImpl.getRabbitTypeField(), i); return; } + super.setRabbitType(i); } } 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 c04a7314d..ba607f5d8 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 @@ -65,6 +65,7 @@ public class RavagerController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -73,6 +74,7 @@ public class RavagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -86,6 +88,7 @@ public class RavagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -97,6 +100,7 @@ public class RavagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -110,6 +114,7 @@ public class RavagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -120,6 +125,7 @@ public class RavagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -139,6 +145,7 @@ public class RavagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +154,7 @@ public class RavagerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +162,7 @@ public class RavagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new RavagerNPC(this)); } + return super.getBukkitEntity(); } @@ -201,6 +210,7 @@ public class RavagerController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 6f6097819..2e22235c4 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 @@ -59,6 +59,7 @@ public class SalmonController extends MobEntityController { if (npc != null) { this.moveController = new ControllerMove(this); } + } @Override @@ -71,6 +72,7 @@ public class SalmonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -94,6 +96,7 @@ public class SalmonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -105,6 +108,7 @@ public class SalmonController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -118,6 +122,7 @@ public class SalmonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -128,6 +133,7 @@ public class SalmonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -146,9 +152,11 @@ public class SalmonController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.e(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -157,6 +165,7 @@ public class SalmonController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -164,6 +173,7 @@ public class SalmonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SalmonNPC(this)); } + return super.getBukkitEntity(); } @@ -210,10 +220,12 @@ public class SalmonController extends MobEntityController { if (npc != null) { NMSImpl.setNotInSchool(this); } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -222,10 +234,12 @@ public class SalmonController extends MobEntityController { if (npc != null) { this.y = false; } + super.movementTick(); if (npc != null) { this.y = lastInWater; } + } @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 a5393535d..31fbbbcf0 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 @@ -65,6 +65,7 @@ public class SheepController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -73,6 +74,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -86,6 +88,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -97,6 +100,7 @@ public class SheepController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -110,6 +114,7 @@ public class SheepController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -120,6 +125,7 @@ public class SheepController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -139,6 +145,7 @@ public class SheepController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +154,7 @@ public class SheepController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +162,7 @@ public class SheepController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SheepNPC(this)); } + return super.getBukkitEntity(); } @@ -201,6 +210,7 @@ public class SheepController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 727599738..b3d2acecb 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 @@ -64,6 +64,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -77,6 +78,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -88,6 +90,7 @@ public class ShulkerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +104,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +115,7 @@ public class ShulkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +135,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -138,6 +144,7 @@ public class ShulkerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -145,6 +152,7 @@ public class ShulkerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ShulkerNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.movementTick(); } + } @Override @@ -212,6 +221,7 @@ public class ShulkerController extends MobEntityController { } else { super.tick(); } + } @Override @@ -221,6 +231,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 2eddbb76b..958229bfa 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 @@ -63,6 +63,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class SilverfishController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class SilverfishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class SilverfishController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class SilverfishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SilverfishNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -207,6 +216,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 8d0d73297..b37a58c64 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 @@ -63,6 +63,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class SkeletonController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class SkeletonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class SkeletonController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class SkeletonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SkeletonNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -207,6 +216,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 164877de6..6d6fb69dd 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 @@ -63,6 +63,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class SkeletonStrayController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class SkeletonStrayController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new StrayNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -207,6 +216,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 1bcf48a69..a89c21b87 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 @@ -63,6 +63,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class SkeletonWitherController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class SkeletonWitherController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SkeletonWitherNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -207,6 +216,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 a203077ee..9f48c417a 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 @@ -57,6 +57,7 @@ public class SlimeController extends MobEntityController { setSize(3, true); this.moveController = new PlayerControllerMove(this); } + } @Override @@ -69,6 +70,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -82,6 +84,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -93,6 +96,7 @@ public class SlimeController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -106,6 +110,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -116,6 +121,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -135,6 +141,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -143,6 +150,7 @@ public class SlimeController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -150,6 +158,7 @@ public class SlimeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SlimeNPC(this)); } + return super.getBukkitEntity(); } @@ -203,6 +212,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.pickup(human); } + } @Override @@ -211,6 +221,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -220,6 +231,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 bab8ef22d..afb47302e 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 @@ -63,6 +63,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class SnowmanController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class SnowmanController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class SnowmanController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class SnowmanController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnowmanNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -207,6 +216,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 1901f5345..75623e980 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 @@ -63,6 +63,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class SpiderController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class SpiderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class SpiderController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class SpiderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SpiderNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -207,6 +216,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 3068b6a86..ecbb238e7 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 @@ -63,6 +63,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class SquidController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class SquidController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class SquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class SquidController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class SquidController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SquidNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class SquidController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -207,6 +216,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 2fb6c8337..4c6af4c17 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 @@ -66,6 +66,7 @@ public class TraderLlamaController extends MobEntityController { ((TraderLlama) getBukkitEntity()) .setDomestication(((TraderLlama) getBukkitEntity()).getMaxDomestication()); } + } @Override @@ -79,6 +80,7 @@ public class TraderLlamaController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -87,6 +89,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -100,6 +103,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -111,6 +115,7 @@ public class TraderLlamaController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -124,6 +129,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -134,6 +140,7 @@ public class TraderLlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -153,6 +160,7 @@ public class TraderLlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -161,6 +169,7 @@ public class TraderLlamaController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -168,6 +177,7 @@ public class TraderLlamaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TraderLlamaNPC(this)); } + return super.getBukkitEntity(); } @@ -218,11 +228,14 @@ public class TraderLlamaController extends MobEntityController { if (bI != null) { bI.invoke(this, 10); // DespawnDelay } + } catch (Throwable e) { } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 a2e4d5a92..8fd423c66 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 @@ -59,6 +59,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { this.moveController = new ControllerMove(this); } + } @Override @@ -71,6 +72,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -94,6 +96,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -105,6 +108,7 @@ public class TropicalFishController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -118,6 +122,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -128,6 +133,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -146,9 +152,11 @@ public class TropicalFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.e(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -157,6 +165,7 @@ public class TropicalFishController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -164,6 +173,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TropicalFishNPC(this)); } + return super.getBukkitEntity(); } @@ -210,10 +220,12 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { NMSImpl.setNotInSchool(this); } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -222,10 +234,12 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { this.y = false; } + super.movementTick(); if (npc != null) { this.y = lastInWater; } + } @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 3bb3e3259..bfe8ef0be 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 @@ -58,6 +58,7 @@ public class TurtleController extends MobEntityController { this.moveController = new ControllerMove(this); this.bt = new EmptyControllerJump(this); } + } @Override @@ -70,6 +71,7 @@ public class TurtleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -83,6 +85,7 @@ public class TurtleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -94,6 +97,7 @@ public class TurtleController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -107,6 +111,7 @@ public class TurtleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -117,6 +122,7 @@ public class TurtleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -135,9 +141,11 @@ public class TurtleController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.e(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -146,6 +154,7 @@ public class TurtleController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -153,6 +162,7 @@ public class TurtleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TurtleNPC(this)); } + return super.getBukkitEntity(); } @@ -200,6 +210,7 @@ public class TurtleController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 d29b48441..0953f2815 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 @@ -52,6 +52,7 @@ public class VexController extends MobEntityController { if (npc != null) { setNoGravity(true); } + } @Override @@ -74,6 +75,7 @@ public class VexController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -87,6 +89,7 @@ public class VexController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -97,6 +100,7 @@ public class VexController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +119,7 @@ public class VexController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -122,6 +127,7 @@ public class VexController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VexNPC(this)); } + return super.getBukkitEntity(); } @@ -160,6 +166,7 @@ public class VexController extends MobEntityController { if (super.isLeashed()) { unleash(true, false); // clearLeash with client update } + return false; // shouldLeash } @@ -169,6 +176,7 @@ public class VexController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 d5cec3088..8056750b7 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 @@ -79,6 +79,7 @@ public class VillagerController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -87,6 +88,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -103,7 +105,9 @@ public class VillagerController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.a(entityhuman, enumhand); } @@ -112,6 +116,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -123,6 +128,7 @@ public class VillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -136,6 +142,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -146,6 +153,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -164,6 +172,7 @@ public class VillagerController extends MobEntityController { blockingATrade = false; return true; } + return super.dY(); } @@ -174,6 +183,7 @@ public class VillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -182,6 +192,7 @@ public class VillagerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +200,7 @@ public class VillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -237,15 +249,19 @@ public class VillagerController extends MobEntityController { this.behaviorMap = NMSImpl.getBehaviorMap(this); this.previousBehaviorController = this.getBehaviorController(); } + if (this.behaviorMap.size() > 0) { this.behaviorMap.clear(); NMSImpl.clearGoals(goalSelector, targetSelector); } + } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -260,6 +276,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } } 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 4e017df0d..26315cbcf 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 @@ -65,6 +65,7 @@ public class VindicatorController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -73,6 +74,7 @@ public class VindicatorController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -86,6 +88,7 @@ public class VindicatorController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -97,6 +100,7 @@ public class VindicatorController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -110,6 +114,7 @@ public class VindicatorController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -120,6 +125,7 @@ public class VindicatorController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -139,6 +145,7 @@ public class VindicatorController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +154,7 @@ public class VindicatorController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -154,6 +162,7 @@ public class VindicatorController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VindicatorNPC(this)); } + return super.getBukkitEntity(); } @@ -201,6 +210,7 @@ public class VindicatorController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 e3bb6f395..16ca96982 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 @@ -79,6 +79,7 @@ public class WanderingTraderController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -87,6 +88,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -103,7 +105,9 @@ public class WanderingTraderController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.a(entityhuman, enumhand); } @@ -112,6 +116,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -123,6 +128,7 @@ public class WanderingTraderController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -136,6 +142,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -146,6 +153,7 @@ public class WanderingTraderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -164,6 +172,7 @@ public class WanderingTraderController extends MobEntityController { blockingATrade = false; return true; } + return super.dY(); } @@ -174,6 +183,7 @@ public class WanderingTraderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -182,6 +192,7 @@ public class WanderingTraderController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +200,7 @@ public class WanderingTraderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WanderingTraderNPC(this)); } + return super.getBukkitEntity(); } @@ -240,20 +252,26 @@ public class WanderingTraderController extends MobEntityController { if (this.behaviorMap == null) { this.behaviorMap = NMSImpl.getBehaviorMap(this); } + if (this.behaviorMap.size() > 0) { this.behaviorMap.clear(); } + } + super.mobTick(); if (npc != null) { try { if (bB != null) { bB.invoke(this, 10); // DespawnDelay } + } catch (Throwable e) { } + npc.update(); } + } @Override @@ -268,6 +286,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } public void setBlockTrades(boolean blocked) { 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 0da210782..6081aac8a 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 @@ -63,6 +63,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class WitchController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class WitchController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class WitchController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class WitchController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class WitchController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitchNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class WitchController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -207,6 +216,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 df6638956..a06f5e0b9 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 @@ -71,6 +71,7 @@ public class WitherController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -84,6 +85,7 @@ public class WitherController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -94,6 +96,7 @@ public class WitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -118,6 +121,7 @@ public class WitherController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -125,6 +129,7 @@ public class WitherController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitherNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +175,7 @@ public class WitherController extends MobEntityController { } else { npc.update(); } + } @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 9ef35c02b..1e59b9466 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 @@ -67,6 +67,7 @@ public class WolfController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -75,6 +76,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -99,6 +102,7 @@ public class WolfController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -112,6 +116,7 @@ public class WolfController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -122,6 +127,7 @@ public class WolfController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -141,6 +147,7 @@ public class WolfController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -149,6 +156,7 @@ public class WolfController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -156,6 +164,7 @@ public class WolfController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WolfNPC(this)); } + return super.getBukkitEntity(); } @@ -203,6 +212,7 @@ public class WolfController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 252d0ee39..344a327fa 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 @@ -63,6 +63,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class ZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class ZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class ZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class ZombieController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class ZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 1e2623cf6..ff11cd1ae 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 @@ -63,6 +63,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class ZombieHuskController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class ZombieHuskController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class ZombieHuskController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieHuskNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 f6acbfc1e..f902977a9 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 @@ -63,6 +63,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -76,6 +77,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.b(f, f1); } + } @Override @@ -87,6 +89,7 @@ public class ZombieVillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +103,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +134,7 @@ public class ZombieVillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +143,7 @@ public class ZombieVillagerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieVillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +199,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null) { npc.update(); } + } @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 d08133066..9cf50a59f 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 @@ -74,6 +74,7 @@ public class AreaEffectCloudController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -85,6 +86,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -98,6 +100,7 @@ public class AreaEffectCloudController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -105,6 +108,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new AreaEffectCloudNPC(this)); } + return super.getBukkitEntity(); } @@ -125,6 +129,7 @@ public class AreaEffectCloudController extends MobEntityController { } else { super.tick(); } + } } } 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 4b1b1bc82..608a48098 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 @@ -74,6 +74,7 @@ public class BoatController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -85,6 +86,7 @@ public class BoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -98,6 +100,7 @@ public class BoatController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -105,6 +108,7 @@ public class BoatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BoatNPC(this)); } + return super.getBukkitEntity(); } @@ -125,6 +129,7 @@ public class BoatController extends MobEntityController { } else { super.tick(); } + } @Override @@ -134,6 +139,7 @@ public class BoatController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } 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 96ad93613..0892feaa4 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 @@ -74,6 +74,7 @@ public class DragonFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -85,6 +86,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -98,6 +100,7 @@ public class DragonFireballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -105,6 +108,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DragonFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -125,9 +129,11 @@ public class DragonFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -137,6 +143,7 @@ public class DragonFireballController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } 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 39f2ae862..87fd954b5 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 @@ -90,6 +90,7 @@ public class EggController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +102,7 @@ public class EggController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +116,7 @@ public class EggController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -121,6 +124,7 @@ public class EggController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EggNPC(this)); } + return super.getBukkitEntity(); } @@ -141,9 +145,11 @@ public class EggController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } } 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 4d1652bdb..038613325 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 @@ -74,6 +74,7 @@ public class EnderCrystalController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -85,6 +86,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -98,6 +100,7 @@ public class EnderCrystalController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -105,6 +108,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderCrystalNPC(this)); } + return super.getBukkitEntity(); } @@ -125,6 +129,7 @@ public class EnderCrystalController extends MobEntityController { } else { super.tick(); } + } } } 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 e01e5c887..5a915bbb9 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 @@ -74,6 +74,7 @@ public class EnderPearlController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -85,6 +86,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -98,6 +100,7 @@ public class EnderPearlController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -105,6 +108,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderPearlNPC(this)); } + return super.getBukkitEntity(); } @@ -125,9 +129,11 @@ public class EnderPearlController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } } 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 0193b6cbb..4dcf125ce 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 @@ -74,6 +74,7 @@ public class EnderSignalController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -85,6 +86,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -98,6 +100,7 @@ public class EnderSignalController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -105,6 +108,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderSignalNPC(this)); } + return super.getBukkitEntity(); } @@ -125,6 +129,7 @@ public class EnderSignalController extends MobEntityController { } else { super.tick(); } + } } } 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 cbf646abf..562599500 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 @@ -75,6 +75,7 @@ public class EvokerFangsController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -86,6 +87,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -99,6 +101,7 @@ public class EvokerFangsController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -106,6 +109,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EvokerFangsNPC(this)); } + return super.getBukkitEntity(); } @@ -125,6 +129,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { npc.update(); } + } } 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 5839c4f4b..ff4c36dba 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 @@ -60,6 +60,7 @@ public class ExperienceOrbController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class ExperienceOrbController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ExperienceOrbNPC(this)); } + return super.getBukkitEntity(); } @@ -111,6 +115,7 @@ public class ExperienceOrbController extends MobEntityController { } else { super.tick(); } + } } 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 a67ab70c4..033cf1985 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 @@ -82,6 +82,7 @@ public class FallingBlockController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -93,6 +94,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -106,6 +108,7 @@ public class FallingBlockController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -113,6 +116,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FallingBlockNPC(this)); } + return super.getBukkitEntity(); } @@ -137,9 +141,11 @@ public class FallingBlockController extends AbstractEntityController { setMot(mot); move(EnumMoveType.SELF, mot); } + } else { super.tick(); } + } @Override @@ -149,6 +155,7 @@ public class FallingBlockController extends AbstractEntityController { } else { NMSImpl.setSize(this, justCreated); } + } private static final double EPSILON = 0.001; 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 2f8626f36..844cd1444 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 @@ -60,6 +60,7 @@ public class FireworkController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class FireworkController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class FireworkController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class FireworkController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FireworkNPC(this)); } + return super.getBukkitEntity(); } @@ -111,6 +115,7 @@ public class FireworkController extends MobEntityController { } else { super.tick(); } + } } 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 321d72c9f..f74e69aa2 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 @@ -74,6 +74,7 @@ public class FishingHookController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -85,6 +86,7 @@ public class FishingHookController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -98,6 +100,7 @@ public class FishingHookController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -105,6 +108,7 @@ public class FishingHookController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FishingHookNPC(this)); } + return super.getBukkitEntity(); } @@ -140,10 +144,12 @@ public class FishingHookController extends MobEntityController { } catch (IllegalAccessException e) { e.printStackTrace(); } + npc.update(); } else { super.tick(); } + } } 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 178842e7d..3f9d88bc7 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 @@ -73,6 +73,7 @@ public class ItemController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -84,6 +85,7 @@ public class ItemController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -97,6 +99,7 @@ public class ItemController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -104,6 +107,7 @@ public class ItemController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemNPC(this)); } + return super.getBukkitEntity(); } @@ -122,6 +126,7 @@ public class ItemController extends AbstractEntityController { if (npc == null) { super.pickup(entityhuman); } + } @Override @@ -131,6 +136,7 @@ public class ItemController extends AbstractEntityController { } else { super.tick(); } + } } 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 fda9e2e0b..d371cb746 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 @@ -73,6 +73,7 @@ public class ItemFrameController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -84,6 +85,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -97,6 +99,7 @@ public class ItemFrameController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -104,6 +107,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemFrameNPC(this)); } + return super.getBukkitEntity(); } @@ -129,6 +133,7 @@ public class ItemFrameController extends MobEntityController { } else { super.tick(); } + } } 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 6c41b610b..9483817b1 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 @@ -60,6 +60,7 @@ public class LargeFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class LargeFireballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LargeFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -111,9 +115,11 @@ public class LargeFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -123,6 +129,7 @@ public class LargeFireballController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 efb541e45..16f5dff98 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 @@ -60,6 +60,7 @@ public class LeashController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class LeashController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class LeashController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class LeashController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LeashNPC(this)); } + return super.getBukkitEntity(); } @@ -116,6 +120,7 @@ public class LeashController extends MobEntityController { } else { super.tick(); } + } } 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 02d1c7c96..b871b5342 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 @@ -79,6 +79,7 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -90,6 +91,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class LlamaSpitController extends AbstractEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -110,6 +113,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LlamaSpitNPC(this)); } + return super.getBukkitEntity(); } @@ -130,9 +134,11 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } 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 e8166610a..034707afd 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 @@ -60,6 +60,7 @@ public class MinecartChestController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class MinecartChestController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartChestNPC(this)); } + return super.getBukkitEntity(); } @@ -111,6 +115,7 @@ public class MinecartChestController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 95d465d32..603ec86b9 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 @@ -60,6 +60,7 @@ public class MinecartCommandController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class MinecartCommandController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartCommandNPC(this)); } + return super.getBukkitEntity(); } @@ -111,6 +115,7 @@ public class MinecartCommandController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 cb32f82b4..c0bc51c54 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 @@ -60,6 +60,7 @@ public class MinecartFurnaceController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class MinecartFurnaceController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartFurnaceNPC(this)); } + return super.getBukkitEntity(); } @@ -111,6 +115,7 @@ public class MinecartFurnaceController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 475cdcec1..ade2464e5 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 @@ -56,6 +56,7 @@ public class MinecartHopperController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -67,6 +68,7 @@ public class MinecartHopperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -80,6 +82,7 @@ public class MinecartHopperController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +102,7 @@ public class MinecartHopperController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 8320dec35..9d58d6e9c 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 @@ -60,6 +60,7 @@ public class MinecartRideableController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class MinecartRideableController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartRideableNPC(this)); } + return super.getBukkitEntity(); } @@ -111,6 +115,7 @@ public class MinecartRideableController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 d48543189..56dbb5477 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 @@ -56,6 +56,7 @@ public class MinecartSpawnerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -67,6 +68,7 @@ public class MinecartSpawnerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -80,6 +82,7 @@ public class MinecartSpawnerController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +102,7 @@ public class MinecartSpawnerController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 a5e45c450..92153dc73 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 @@ -56,6 +56,7 @@ public class MinecartTNTController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -67,6 +68,7 @@ public class MinecartTNTController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -80,6 +82,7 @@ public class MinecartTNTController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +102,7 @@ public class MinecartTNTController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 d2de2e140..84b9d19ef 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 @@ -60,6 +60,7 @@ public class PaintingController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class PaintingController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class PaintingController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class PaintingController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PaintingNPC(this)); } + return super.getBukkitEntity(); } @@ -116,6 +120,7 @@ public class PaintingController extends MobEntityController { } else { super.tick(); } + } } 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 89b2daea6..912825348 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 @@ -60,6 +60,7 @@ public class ShulkerBulletController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class ShulkerBulletController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ShulkerBulletNPC(this)); } + return super.getBukkitEntity(); } @@ -111,6 +115,7 @@ public class ShulkerBulletController extends MobEntityController { } else { super.tick(); } + } } 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 17a5454fe..ec2bdadc8 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 @@ -60,6 +60,7 @@ public class SmallFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class SmallFireballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SmallFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -111,9 +115,11 @@ public class SmallFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } 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 9396e0758..2e6e3bd26 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 @@ -60,6 +60,7 @@ public class SnowballController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class SnowballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class SnowballController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class SnowballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnowballNPC(this)); } + return super.getBukkitEntity(); } @@ -111,6 +115,7 @@ public class SnowballController extends MobEntityController { } else { super.tick(); } + } } 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 0de9f824d..0f20d5fcb 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 @@ -60,6 +60,7 @@ public class SpectralArrowController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class SpectralArrowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SpectralArrowNPC(this)); } + return super.getBukkitEntity(); } @@ -111,6 +115,7 @@ public class SpectralArrowController extends MobEntityController { } else { super.tick(); } + } } 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 10a64f79d..5a5bd83cd 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 @@ -60,6 +60,7 @@ public class TNTPrimedController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class TNTPrimedController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TNTPrimedNPC(this)); } + return super.getBukkitEntity(); } @@ -111,6 +115,7 @@ public class TNTPrimedController extends MobEntityController { } else { super.tick(); } + } } 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 c6e11cd82..6ffc93126 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 @@ -60,6 +60,7 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class ThrownExpBottleController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ThrownExpBottleNPC(this)); } + return super.getBukkitEntity(); } @@ -111,9 +115,11 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } 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 6fa7bdf57..67c2a7209 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 @@ -61,6 +61,7 @@ public class ThrownPotionController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class ThrownPotionController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -85,6 +87,7 @@ public class ThrownPotionController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,7 +98,9 @@ public class ThrownPotionController extends MobEntityController { } else { NMSImpl.setBukkitEntity(this, new SplashThrownPotionNPC(this)); } + } + return super.getBukkitEntity(); } @@ -116,6 +121,7 @@ public class ThrownPotionController extends MobEntityController { } else { super.tick(); } + } } 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 7aa2931b0..636a62553 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 @@ -60,6 +60,7 @@ public class ThrownTridentController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class ThrownTridentController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ThrownTridentNPC(this)); } + return super.getBukkitEntity(); } @@ -111,6 +115,7 @@ public class ThrownTridentController extends MobEntityController { } else { super.tick(); } + } } 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 986c1a4e2..4cc43b6c4 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 @@ -60,6 +60,7 @@ public class TippedArrowController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class TippedArrowController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TippedArrowNPC(this)); } + return super.getBukkitEntity(); } @@ -111,6 +115,7 @@ public class TippedArrowController extends MobEntityController { } else { super.tick(); } + } } 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 60b3ac531..2a163871a 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 @@ -60,6 +60,7 @@ public class WitherSkullController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -71,6 +72,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class WitherSkullController extends MobEntityController { if (vector != null) { super.f(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -91,6 +94,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitherSkullNPC(this)); } + return super.getBukkitEntity(); } @@ -111,6 +115,7 @@ public class WitherSkullController extends MobEntityController { } else { super.tick(); } + } } diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/CitizensBlockBreaker.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/CitizensBlockBreaker.java index dad4df784..861d70566 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/CitizensBlockBreaker.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/CitizensBlockBreaker.java @@ -48,6 +48,7 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { ItemStack current = getCurrentItem(); return current != null ? current.b(block) : false; } + } @Override @@ -65,10 +66,13 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { if (i > 0) { f += i * i + 1; } + } + if (handle.hasEffect(MobEffects.FASTER_DIG)) { f *= 1.0F + (handle.getEffect(MobEffects.FASTER_DIG).getAmplifier() + 1) * 0.2F; } + if (handle.hasEffect(MobEffects.SLOWER_DIG)) { float f1 = 1.0F; switch (handle.getEffect(MobEffects.SLOWER_DIG).getAmplifier()) { @@ -85,15 +89,20 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { default: f1 = 8.1E-4F; } + f *= f1; } + if (handle.a(TagsFluid.WATER) && !EnchantmentManager.h(handle)) { f /= 5.0F; } + } + if (!getHandle().onGround) { f /= 5.0F; } + return f; } } \ No newline at end of file diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/EmptyAdvancementDataPlayer.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/EmptyAdvancementDataPlayer.java index 86a5f9e13..bdcb57df0 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/EmptyAdvancementDataPlayer.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/EmptyAdvancementDataPlayer.java @@ -64,6 +64,7 @@ public class EmptyAdvancementDataPlayer extends AdvancementDataPlayer { } catch (Throwable e) { e.printStackTrace(); } + } private static final MethodHandle G = NMS.getGetter(AdvancementDataPlayer.class, "g"); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSImpl.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSImpl.java index 7bd90f581..f983ec914 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSImpl.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSImpl.java @@ -326,17 +326,21 @@ public class NMSImpl implements NMSBridge { viewDistance = (int) PLAYER_CHUNK_MAP_VIEW_DISTANCE_GETTER.invoke(chunkMap); PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER.invoke(chunkMap, -1); } + } catch (Throwable e) { e.printStackTrace(); } + boolean success = getHandle(entity).world.addEntity(getHandle(entity), custom); try { if (chunkMap != null) { PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER.invoke(chunkMap, viewDistance); } + } catch (Throwable e) { e.printStackTrace(); } + return success; } @@ -352,12 +356,14 @@ public class NMSImpl implements NMSBridge { } else if (!handle.world.getPlayers().contains(handle)) { ((List) handle.world.getPlayers()).add(handle); } + try { CHUNKMAP_UPDATE_PLAYER_STATUS.invoke(((WorldServer) handle.world).getChunkProvider().playerChunkMap, handle, !remove); } catch (Throwable e) { e.printStackTrace(); } + // PlayerUpdateTask.addOrRemove(entity, remove); } @@ -371,6 +377,7 @@ public class NMSImpl implements NMSBridge { PlayerAnimation.ARM_SWING.play(humanHandle.getBukkitEntity()); return; } + AttributeInstance attackDamage = handle.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE); float f = (float) (attackDamage == null ? 1 : attackDamage.getValue()); int i = 0; @@ -378,6 +385,7 @@ public class NMSImpl implements NMSBridge { f += EnchantmentManager.a(handle.getItemInMainHand(), target.getMonsterType()); i += EnchantmentManager.a(Enchantments.KNOCKBACK, handle); } + boolean flag = target.damageEntity(DamageSource.mobAttack(handle), f); if (!flag) return; @@ -386,10 +394,12 @@ public class NMSImpl implements NMSBridge { Math.cos(handle.yaw * Math.PI / 180.0F) * i * 0.5F); handle.setMot(handle.getMot().d(0.6, 1, 0.6)); } + int fireAspectLevel = EnchantmentManager.getFireAspectEnchantmentLevel(handle); if (fireAspectLevel > 0) { target.setOnFire(fireAspectLevel * 4); } + } @Override @@ -401,9 +411,11 @@ public class NMSImpl implements NMSBridge { } catch (Throwable t) { t.printStackTrace(); } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getControllerMove().f = false; } + } @Override @@ -436,14 +448,19 @@ public class NMSImpl implements NMSBridge { if (!changed && !ItemStack.matches(old, curr)) { changed = true; } + equipment.put(slot, curr); } + if (changed) { for (EnumItemSlot slot : EnumItemSlot.values()) { agg.send(new PacketPlayOutEntityEquipment(handle.getId(), slot, equipment.get(slot))); } + } + } + tracker.a(); } @@ -464,7 +481,9 @@ public class NMSImpl implements NMSBridge { if (callback != null) { callback.accept(entity); } + } + linked.clear(); } }; @@ -515,9 +534,11 @@ public class NMSImpl implements NMSBridge { return null; bserver = ((EnderDragonBattle) battleObject).bossBattle; } + } catch (Throwable e) { e.printStackTrace(); } + if (bserver == null) return null; BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10); @@ -526,6 +547,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return ret; } @@ -635,11 +657,13 @@ public class NMSImpl implements NMSBridge { if (SKULL_PROFILE_FIELD == null) return null; } + try { return (GameProfile) SKULL_PROFILE_FIELD.get(meta); } catch (Exception e) { return null; } + } @Override @@ -652,6 +676,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { throw new CommandException(Messages.INVALID_SOUND); } + } @Override @@ -667,6 +692,7 @@ public class NMSImpl implements NMSBridge { EntityLiving handle = NMSImpl.getHandle((LivingEntity) npc.getEntity()); if (handle == null) { } + return DEFAULT_SPEED; // return (float) // handle.getAttributeInstance(GenericAttributes.d).getValue(); @@ -711,7 +737,9 @@ public class NMSImpl implements NMSBridge { } else { ((EntityInsentient) raw).a(PathType.WATER, oldWater + 1F); } + } + navigation.q().b(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; @@ -724,6 +752,7 @@ public class NMSImpl implements NMSBridge { PathPoint pp = navigation.l().a(i); blocks.add(entity.getWorld().getBlockAt(pp.a, pp.b, pp.c)); } + return blocks; } @@ -743,13 +772,16 @@ public class NMSImpl implements NMSBridge { List blocks = getBlocks(entity, navigation); Util.sendBlockChanges(blocks, null); } + if (oldWater >= 0) { if (raw instanceof EntityPlayer) { ((EntityHumanNPC) raw).a(PathType.WATER, oldWater); } else { ((EntityInsentient) raw).a(PathType.WATER, oldWater); } + } + stopNavigation(navigation); } @@ -764,12 +796,15 @@ public class NMSImpl implements NMSBridge { SIZE_FIELD_SETTER.invoke(handle, new EntitySize(Math.min(0.99F, size.width), size.height, false)); } + } catch (Throwable e) { e.printStackTrace(); } + if (!function.apply(navigation)) { reason = CancelReason.STUCK; } + try { SIZE_FIELD_SETTER.invoke(handle, size); } catch (Throwable e) { @@ -777,11 +812,14 @@ public class NMSImpl implements NMSBridge { // minecraft requires that an entity fit onto both blocks if width >= 1f, but we'd prefer to // make it just fit on 1 so hack around it a bit. } + lastSpeed = params.speed(); } + if (params.debug() && !NMSImpl.isNavigationFinished(navigation)) { Util.sendBlockChanges(getBlocks(entity, navigation), Material.DANDELION); } + navigation.a(params.speed()); return NMSImpl.isNavigationFinished(navigation); } @@ -992,30 +1030,37 @@ public class NMSImpl implements NMSBridge { if (zDiff < 0.0) { yaw += Math.abs(180 - yaw) * 2; } + if (handle instanceof EntityEnderDragon) { yaw = Util.getDragonYaw(handle.getBukkitEntity(), xDiff, zDiff); } else { yaw = yaw - 90; } + if (headOnly) { setHeadYaw(entity, (float) yaw); } else { look(entity, (float) yaw, (float) pitch); } + return; } + if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(to.getX(), to.getY(), to.getZ(), ((EntityInsentient) handle).dB(), ((EntityInsentient) handle).M()); while (((EntityLiving) handle).aM >= 180F) { ((EntityLiving) handle).aM -= 360F; } + while (((EntityLiving) handle).aM < -180F) { ((EntityLiving) handle).aM += 360F; } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1028,18 +1073,22 @@ public class NMSImpl implements NMSBridge { } else { look(from, to.getLocation(), false, true); } + } else if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(target, ((EntityInsentient) handle).dB(), ((EntityInsentient) handle).M()); while (((EntityLiving) handle).aM >= 180F) { ((EntityLiving) handle).aM -= 360F; } + while (((EntityLiving) handle).aM < -180F) { ((EntityLiving) handle).aM += 360F; } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1081,7 +1130,9 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return super.getBukkitView(); } + } + return this.bukkitEntity; } }; @@ -1128,11 +1179,13 @@ public class NMSImpl implements NMSBridge { if (key == null || type == null) { continue; } + CITIZENS_ENTITY_TYPES.put(clazz, type); int code = ENTITY_REGISTRY.a(type); ENTITY_REGISTRY.put(code, key, type); return; } + throw new IllegalArgumentException("unable to find valid entity superclass for class " + clazz.toString()); } @@ -1171,6 +1224,7 @@ public class NMSImpl implements NMSBridge { hook.hooked = null; hook.getBukkitEntity().remove(); } + } @Override @@ -1185,6 +1239,7 @@ public class NMSImpl implements NMSBridge { if (getHandle(entity) instanceof EntityHumanNPC) { ((EntityHumanNPC) getHandle(entity)).setTracked(replace); } + } @Override @@ -1194,9 +1249,11 @@ public class NMSImpl implements NMSBridge { if (bodyYaw == null) { bodyYaw = handle.yaw; } + if (pitch == null) { pitch = handle.pitch; } + List> toSend = Lists.newArrayList(); if (position) { EntityTracker entry = ((WorldServer) handle.world).getChunkProvider().playerChunkMap.trackedEntities @@ -1208,6 +1265,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + Vec3D pos = handle.getPositionVector().d(ete.b()); toSend.add(new PacketPlayOutRelEntityMoveLook(handle.getId(), (short) pos.x, (short) pos.y, (short) pos.z, (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); @@ -1215,9 +1273,11 @@ public class NMSImpl implements NMSBridge { toSend.add(new PacketPlayOutEntityLook(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); } + if (headYaw != null) { toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F))); } + sendPacketsNearby(null, from.getLocation(), toSend, 64); } @@ -1241,6 +1301,7 @@ public class NMSImpl implements NMSBridge { entities[i] = (EntityPlayer) skinnable; i++; } + NMSImpl.sendPacket(recipient, new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, entities)); } @@ -1261,12 +1322,14 @@ public class NMSImpl implements NMSBridge { if (TEAM_FIELD == null) { TEAM_FIELD = NMS.getGetter(team.getClass(), "team"); } + try { ScoreboardTeam nmsTeam = (ScoreboardTeam) TEAM_FIELD.invoke(team); sendPacket(recipient, new PacketPlayOutScoreboardTeam(nmsTeam, mode)); } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1302,6 +1365,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).setMoveDestination(x, y, z, speed); } + } @Override @@ -1314,6 +1378,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable ex) { ex.printStackTrace(); } + } @Override @@ -1333,6 +1398,7 @@ public class NMSImpl implements NMSBridge { if (!(handle instanceof EntityHuman)) { handle.aK = yaw; } + handle.aM = yaw; } @@ -1385,10 +1451,12 @@ public class NMSImpl implements NMSBridge { if (SKULL_PROFILE_FIELD == null) return; } + try { SKULL_PROFILE_FIELD.set(meta, profile); } catch (Exception e) { } + } @Override @@ -1402,6 +1470,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).setShouldJump(); } + } @Override @@ -1419,12 +1488,14 @@ public class NMSImpl implements NMSBridge { if (entity instanceof Player) { ((Player) entity).setSneaking(sneaking); } + EntityPose pose = sneaking ? EntityPose.SNEAKING : EntityPose.STANDING; try { ENTITY_SETPOSE.invoke(getHandle(entity), pose); } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1455,6 +1526,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return false; } @@ -1467,6 +1539,7 @@ public class NMSImpl implements NMSBridge { field.invoke(null, ENTITY_REGISTRY.get()); } catch (Throwable e) { } + } @Override @@ -1476,6 +1549,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1491,6 +1565,7 @@ public class NMSImpl implements NMSBridge { if (RANDOM.nextFloat() <= 0.85F && (handle.isInWater() || handle.ay())) { handle.setMot(handle.getMot().getX(), handle.getMot().getY() + power, handle.getMot().getZ()); } + } @Override @@ -1577,6 +1652,7 @@ public class NMSImpl implements NMSBridge { menuType = Containers.CRAFTING; break; } + Container active = handle.activeContainer; handle.playerConnection .sendPacket(new PacketPlayOutOpenWindow(active.windowId, menuType, new ChatComponentText(newTitle))); @@ -1599,6 +1675,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1610,8 +1687,10 @@ public class NMSImpl implements NMSBridge { if (en instanceof EntityHumanNPC) { ((EntityHumanNPC) en).updatePathfindingRange(pathfindingRange); } + return; } + if (PATHFINDING_RANGE == null) return; EntityInsentient handle = (EntityInsentient) en; @@ -1622,6 +1701,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } private static class CitizensInventoryAnvil extends CraftInventoryAnvil implements ForwardingInventory { @@ -1731,6 +1811,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + float oldw = size.width; float oldl = size.height; cb.accept(datawatcherobject); @@ -1738,6 +1819,7 @@ public class NMSImpl implements NMSBridge { living.setPosition(living.locX - 0.01, living.locY, living.locZ - 0.01); living.setPosition(living.locX + 0.01, living.locY, living.locZ + 0.01); } + } public static void clearGoals(PathfinderGoalSelector... goalSelectors) { @@ -1752,7 +1834,9 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } + } + } private static CompoundTag convertNBT(net.minecraft.server.v1_14_R1.NBTTagCompound tag) { @@ -1762,6 +1846,7 @@ public class NMSImpl implements NMSBridge { for (String key : tag.getKeys()) { tags.put(key, convertNBT(key, tag.get(key))); } + return new CompoundTag("", tags); } @@ -1792,8 +1877,10 @@ public class NMSImpl implements NMSBridge { for (int i = 0; i < list.size(); i++) { converted.add(convertNBT("", list.get(i))); } + return new ListTag(key, tagType, converted); } + } else if (base instanceof net.minecraft.server.v1_14_R1.NBTTagCompound) return convertNBT((net.minecraft.server.v1_14_R1.NBTTagCompound) base); else if (base instanceof net.minecraft.server.v1_14_R1.NBTTagEnd) @@ -1811,6 +1898,7 @@ public class NMSImpl implements NMSBridge { d0 = 0.01D; entity.fallDistance = 0.0F; } + double d1; float f1; double d2; @@ -1826,16 +1914,19 @@ public class NMSImpl implements NMSBridge { if (!entity.isNoGravity()) { entity.setMot(entity.getMot().add(0.0D, -d0 / 4.0D, 0.0D)); } + vec3d4 = entity.getMot(); if (entity.positionChanged && entity.d(vec3d4.x, vec3d4.y + 0.6000000238418579D - entity.locY + d1, vec3d4.z)) { entity.setMot(vec3d4.x, 0.30000001192092896D, vec3d4.z); } + } else if (entity.isGliding()) { vec3d4 = entity.getMot(); if (vec3d4.y > -0.5D) { entity.fallDistance = 1.0F; } + vec3d5 = entity.getLookDirection(); f1 = entity.pitch * 0.017453292F; double d3 = Math.sqrt(vec3d5.x * vec3d5.x + vec3d5.z * vec3d5.z); @@ -1849,14 +1940,17 @@ public class NMSImpl implements NMSBridge { d5 = vec3d4.y * -0.1D * f3; vec3d4 = vec3d4.add(vec3d5.x * d5 / d3, d5, vec3d5.z * d5 / d3); } + if (f1 < 0.0F && d3 > 0.0D) { d5 = d4 * -MathHelper.sin(f1) * 0.04D; vec3d4 = vec3d4.add(-vec3d5.x * d5 / d3, d5 * 3.2D, -vec3d5.z * d5 / d3); } + if (d3 > 0.0D) { vec3d4 = vec3d4.add((vec3d5.x / d3 * d4 - vec3d4.x) * 0.1D, 0.0D, (vec3d5.z / d3 * d4 - vec3d4.z) * 0.1D); } + entity.setMot(vec3d4.d(0.9900000095367432D, 0.9800000190734863D, 0.9900000095367432D)); entity.move(EnumMoveType.SELF, entity.getMot()); if (entity.positionChanged && !entity.world.isClientSide) { @@ -1869,13 +1963,17 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + entity.damageEntity(DamageSource.FLY_INTO_WALL, f4); } + } + if (entity.onGround && !entity.world.isClientSide && entity.getFlag(7) && !CraftEventFactory.callToggleGlideEvent(entity, false).isCancelled()) { entity.setFlag(7, false); } + } else { BlockPosition blockposition = new BlockPosition(entity.locX, entity.getBoundingBox().minY - 1.0D, entity.locZ); @@ -1887,15 +1985,18 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + entity.move(EnumMoveType.SELF, entity.getMot()); vec3d2 = entity.getMot(); try { if ((entity.positionChanged || (boolean) JUMP_FIELD.invoke(entity)) && entity.isClimbing()) { vec3d2 = new Vec3D(vec3d2.x, 0.2D, vec3d2.z); } + } catch (Throwable e) { e.printStackTrace(); } + double d7 = vec3d2.y; if (entity.hasEffect(MobEffects.LEVITATION)) { d7 += (0.05D * (entity.getEffect(MobEffects.LEVITATION).getAmplifier() + 1) - vec3d2.y) * 0.2D; @@ -1906,11 +2007,14 @@ public class NMSImpl implements NMSBridge { } else { d7 = 0.0D; } + } else if (!entity.isNoGravity()) { d7 -= d0; } + entity.setMot(vec3d2.x * f1, d7 * 0.9800000190734863D, vec3d2.z * f1); } + } else { d1 = entity.locY; f1 = entity.isSprinting() ? 0.9F : entity instanceof EntityPolarBear ? 0.98F : 0.8F; @@ -1919,22 +2023,27 @@ public class NMSImpl implements NMSBridge { if (f2 > 3.0F) { f2 = 3.0F; } + if (!entity.onGround) { f2 *= 0.5F; } + if (f2 > 0.0F) { f1 += (0.54600006F - f1) * f2 / 3.0F; f += (entity.db() - f) * f2 / 3.0F; } + if (entity.hasEffect(MobEffects.DOLPHINS_GRACE)) { f1 = 0.96F; } + entity.a(f, vec3d); entity.move(EnumMoveType.SELF, entity.getMot()); vec3d5 = entity.getMot(); if (entity.positionChanged && entity.isClimbing()) { vec3d5 = new Vec3D(vec3d5.x, 0.2D, vec3d5.z); } + entity.setMot(vec3d5.d(f1, 0.800000011920929D, f1)); if (!entity.isNoGravity() && !entity.isSprinting()) { vec3d2 = entity.getMot(); @@ -1943,15 +2052,20 @@ public class NMSImpl implements NMSBridge { } else { d2 = vec3d2.y - d0 / 16.0D; } + entity.setMot(vec3d2.x, d2, vec3d2.z); } + vec3d2 = entity.getMot(); if (entity.positionChanged && entity.d(vec3d2.x, vec3d2.y + 0.6000000238418579D - entity.locY + d1, vec3d2.z)) { entity.setMot(vec3d2.x, 0.30000001192092896D, vec3d2.z); } + } + } + entity.aE = entity.aF; d0 = entity.locX - entity.lastX; double d8 = entity.locZ - entity.lastZ; @@ -1960,6 +2074,7 @@ public class NMSImpl implements NMSBridge { if (f > 1.0F) { f = 1.0F; } + entity.aF += (f - entity.aF) * 0.4F; entity.aG += entity.aF; } @@ -1970,6 +2085,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -1984,7 +2100,9 @@ public class NMSImpl implements NMSBridge { ex2.printStackTrace(); return null; } + } + } public static EntityTypes getEntityType(Class clazz) { @@ -2015,6 +2133,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -2051,6 +2170,7 @@ public class NMSImpl implements NMSBridge { if (mat != null) { minecart.setDisplayBlock(Block.getByCombinedId(mat.getId()).getBlock().getBlockData()); } + minecart.setDisplayBlockOffset(offset); } @@ -2067,6 +2187,7 @@ public class NMSImpl implements NMSBridge { handle.setMot(handle.getMot().a(0.9)); return true; } + return false; } @@ -2077,6 +2198,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void sendPacket(Player player, Packet packet) { @@ -2103,10 +2225,13 @@ public class NMSImpl implements NMSBridge { || location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) { continue; } + for (Packet packet : packets) { NMSImpl.sendPacket(player, packet); } + } + } public static void sendPacketsNearby(Player from, Location location, Packet... packets) { @@ -2119,6 +2244,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setBukkitEntity(Entity entity, CraftEntity bukkitEntity) { @@ -2127,6 +2253,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setLookControl(EntityInsentient mob, ControllerLook control) { @@ -2135,6 +2262,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setNotInSchool(EntityFish entity) { @@ -2142,9 +2270,11 @@ public class NMSImpl implements NMSBridge { if (ENTITY_FISH_NUM_IN_SCHOOL != null) { ENTITY_FISH_NUM_IN_SCHOOL.invoke(entity, 2); } + } catch (Throwable ex) { ex.printStackTrace(); } + } public static void setSize(Entity entity, boolean justCreated) { @@ -2167,10 +2297,13 @@ public class NMSImpl implements NMSBridge { float f = entitysize.width - entitysize1.width; entity.move(EnumMoveType.SELF, new Vec3D(f, 0.0D, f)); } + } + } catch (Throwable e) { e.printStackTrace(); } + } public static void stopNavigation(NavigationAbstract navigation) { @@ -2188,6 +2321,7 @@ public class NMSImpl implements NMSBridge { } else if (entity instanceof EntityHumanNPC) { ((EntityHumanNPC) entity).updateAI(); } + } public static void updateNavigation(NavigationAbstract navigation) { @@ -2265,6 +2399,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage()); } + try { ENDERMAN_ANGRY = (DataWatcherObject) NMS.getField(EntityEnderman.class, "bz").get(null); } catch (IllegalArgumentException e) { @@ -2272,5 +2407,6 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } } diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PitchableLookControl.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PitchableLookControl.java index f1d51d7b6..aa5f33404 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PitchableLookControl.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PitchableLookControl.java @@ -18,6 +18,7 @@ public class PitchableLookControl extends ControllerLook { } else { resetOnTick = () -> true; } + } @Override diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerAnimationImpl.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerAnimationImpl.java index c9e296f1e..48009952a 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerAnimationImpl.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerAnimationImpl.java @@ -20,6 +20,7 @@ public class PlayerAnimationImpl { playDefaultAnimation(player, to, DEFAULTS.get(animation)); return; } + switch (animation) { case SNEAK: player.getBukkitEntity().setSneaking(true); @@ -50,6 +51,7 @@ public class PlayerAnimationImpl { default: throw new UnsupportedOperationException(); } + } protected static void playDefaultAnimation(EntityPlayer player, Iterable to, int code) { @@ -61,6 +63,7 @@ public class PlayerAnimationImpl { for (Player player : to) { NMSImpl.sendPacket(player, packet); } + } private static EnumMap DEFAULTS = Maps.newEnumMap(PlayerAnimation.class); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerControllerMove.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerControllerMove.java index 5470a678f..4a1026ffd 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerControllerMove.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerControllerMove.java @@ -45,6 +45,7 @@ public class PlayerControllerMove extends ControllerMove { this.a.bd = 0.0F; return; } + float f = (float) Math.toDegrees(Math.atan2(d1, d0)) - 90.0F; this.a.yaw = a(this.a.yaw, f, 90.0F); NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw); @@ -62,8 +63,11 @@ public class PlayerControllerMove extends ControllerMove { } else { ((EntityInsentient) this.a).getControllerJump().jump(); } + } + } + } @Override @@ -81,15 +85,18 @@ public class PlayerControllerMove extends ControllerMove { if (f3 > f2) { f3 = f2; } + if (f3 < -f2) { f3 = -f2; } + float f4 = f + f3; if (f4 < 0.0F) { f4 += 360.0F; } else if (f4 > 360.0F) { f4 -= 360.0F; } + return f4; } diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerNavigation.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerNavigation.java index feb440cd4..99820cf23 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerNavigation.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerNavigation.java @@ -87,21 +87,26 @@ public class PlayerNavigation extends NavigationAbstract { if (this.b.getType(var0).isAir()) { for (var2 = var0.down(); var2.getY() > 0 && this.b.getType(var2).isAir(); var2 = var2.down()) { } + if (var2.getY() > 0) return supera(var2.up(), var1); while (var2.getY() < this.b.getBuildHeight() && this.b.getType(var2).isAir()) { var2 = var2.up(); } + var0 = var2; } + if (!this.b.getType(var0).getMaterial().isBuildable()) return supera(var0, var1); else { for (var2 = var0.up(); var2.getY() < this.b.getBuildHeight() && this.b.getType(var2).getMaterial().isBuildable(); var2 = var2.up()) { } + return supera(var2, var1); } + } public void a(boolean var0) { @@ -157,10 +162,14 @@ public class PlayerNavigation extends NavigationAbstract { || var19 == PathType.DAMAGE_OTHER) return false; } + } + } + return true; } + } @Override @@ -172,6 +181,7 @@ public class PlayerNavigation extends NavigationAbstract { if (!var0.a(this.c)) { this.c = var0; } + this.D_(); if (this.c.e() <= 0) return false; @@ -182,7 +192,9 @@ public class PlayerNavigation extends NavigationAbstract { this.g = var3; return true; } + } + } @Override @@ -203,6 +215,7 @@ public class PlayerNavigation extends NavigationAbstract { this.q = var8.k(); this.r = var3; } + return var8; } } @@ -218,9 +231,11 @@ public class PlayerNavigation extends NavigationAbstract { if (var0.distanceSquared(this.g) < 2.25D) { this.o(); } + this.f = this.e; this.g = var0; } + if (this.c != null && !this.c.b()) { Vec3D var1 = this.c.g(); if (var1.equals(this.h)) { @@ -230,14 +245,17 @@ public class PlayerNavigation extends NavigationAbstract { double var2 = var0.f(this.h); this.k = this.a.db() > 0.0F ? var2 / this.a.db() * 1000.0D : 0.0D; } + if (this.k > 0.0D && this.i > this.k * 3.0D) { this.h = Vec3D.a; this.i = 0L; this.k = 0.0D; this.o(); } + this.j = SystemUtils.getMonotonicMillis(); } + } @Override @@ -265,9 +283,11 @@ public class PlayerNavigation extends NavigationAbstract { if (var7 >= 0.0D) { ++var19; } + if (var9 >= 0.0D) { ++var21; } + var19 /= var7; var21 /= var9; int var23 = var7 < 0.0D ? -1 : 1; @@ -288,10 +308,14 @@ public class PlayerNavigation extends NavigationAbstract { var6 += var24; var28 = var26 - var6; } + } while (this.a(var5, MathHelper.floor(var0.y), var6, var2, var3, var4, var0, var7, var9)); + } + return false; } + } @Override @@ -308,7 +332,9 @@ public class PlayerNavigation extends NavigationAbstract { if (var0.a(var2, this.c.e() - this.c.f())) { this.k(); } + } + } private boolean b(int var0, int var1, int var2, int var3, int var4, int var5, Vec3D var6, double var7, @@ -325,6 +351,7 @@ public class PlayerNavigation extends NavigationAbstract { var13 = var14.getX() + 0.5D - var6.x; var15 = var14.getZ() + 0.5D - var6.z; } while (var13 * var7 + var15 * var9 < 0.0D || this.b.getType(var14).a(this.b, var14, PathMode.LAND)); + return false; } @@ -334,6 +361,7 @@ public class PlayerNavigation extends NavigationAbstract { if (this.m) { this.k(); } + if (!this.n()) { Vec3D var0; if (this.a()) { @@ -345,7 +373,9 @@ public class PlayerNavigation extends NavigationAbstract { && MathHelper.floor(var0.z) == MathHelper.floor(var1.z)) { this.c.c(this.c.f() + 1); } + } + if (!this.n()) { var0 = this.c.a(this.a); BlockPosition var1 = new BlockPosition(var0); @@ -353,7 +383,9 @@ public class PlayerNavigation extends NavigationAbstract { this.b.getType(var1.down()).isAir() ? var0.y : PathfinderNormal.a(this.b, var1), var0.z, this.d); } + } + } public void c(boolean var0) { @@ -377,8 +409,11 @@ public class PlayerNavigation extends NavigationAbstract { this.c.b(var0); return; } + } + } + } public boolean f() { @@ -409,9 +444,11 @@ public class PlayerNavigation extends NavigationAbstract { this.n = this.b.getTime(); this.m = false; } + } else { this.m = true; } + } @Override @@ -428,6 +465,7 @@ public class PlayerNavigation extends NavigationAbstract { && Math.abs(this.a.locY - var1.y) < 1.0D) { this.c.c(this.c.f() + 1); } + this.a(var0); } @@ -476,9 +514,13 @@ public class PlayerNavigation extends NavigationAbstract { if (var2 != null && var1.b >= var2.b) { this.c.a(var0 + 1, var2.a(var2.a, var1.b + 1, var2.c)); } + } + } + } + } private int t() { @@ -493,9 +535,11 @@ public class PlayerNavigation extends NavigationAbstract { var1 = this.b.getType(new BlockPosition(this.a.locX, var0, this.a.locZ)).getBlock(); ++var2; } while (var2 <= 16); + return MathHelper.floor(this.a.getBoundingBox().minY); } else return MathHelper.floor(this.a.getBoundingBox().minY + 0.5D); + } private static EntityInsentient getDummyInsentient(EntityHumanNPC from, World world) { diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerPathfinder.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerPathfinder.java index 50df3fc6a..8f96045e2 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerPathfinder.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerPathfinder.java @@ -41,7 +41,10 @@ public class PlayerPathfinder extends Pathfinder { this.a.a(); this.e.a(var0, var1); PathPoint var5 = this.e.b(); - Map var6 = var2.stream().collect(Collectors.toMap(var0x -> this.e.a((double) var0x.getX(), (double) var0x.getY(), (double) var0x.getZ()), Function.identity())); + Map var6 = var2.stream() + .collect(Collectors.toMap( + var0x -> this.e.a((double) var0x.getX(), (double) var0x.getY(), (double) var0x.getZ()), + Function.identity())); PathEntity var7 = this.a(var5, var6, var3, var4); this.e.a(); return var7; @@ -52,7 +55,10 @@ public class PlayerPathfinder extends Pathfinder { this.a.a(); this.e.a(var0, var1); PathPoint var5 = this.e.b(); - Map var6 = var2.stream().collect(Collectors.toMap(var0x -> this.e.a((double) var0x.getX(), (double) var0x.getY(), (double) var0x.getZ()), Function.identity())); + Map var6 = var2.stream() + .collect(Collectors.toMap( + var0x -> this.e.a((double) var0x.getX(), (double) var0x.getY(), (double) var0x.getZ()), + Function.identity())); PathEntity var7 = this.a(var5, var6, var3, var4); this.e.a(); return var7; @@ -66,6 +72,7 @@ public class PlayerPathfinder extends Pathfinder { var4 = var4.h; var3.add(0, var4); } + return new PathEntity(var3, var1, var2); } @@ -83,12 +90,14 @@ public class PlayerPathfinder extends Pathfinder { if (var5 >= this.d) { break; } + PathPoint var6 = this.a.c(); var6.i = true; var4.stream().filter(var2x -> (var6.c(var2x) <= var3)).forEach(PathDestination::e); if (var4.stream().anyMatch(PathDestination::f)) { break; } + if (var6.a(var0) < var2) { int var7 = this.e.a(this.c, var6); for (int var8 = 0; var8 < var7; ++var8) { @@ -106,16 +115,24 @@ public class PlayerPathfinder extends Pathfinder { var9.g = var9.e + var9.f; this.a.a(var9); } + } + } + } + } + Stream var6; if (var4.stream().anyMatch(PathDestination::f)) { - var6 = var4.stream().filter(PathDestination::f).map(var1x -> this.a(var1x.d(), (BlockPosition) var1.get(var1x), true)).sorted(Comparator.comparingInt(PathEntity::e)); + var6 = var4.stream().filter(PathDestination::f) + .map(var1x -> this.a(var1x.d(), (BlockPosition) var1.get(var1x), true)) + .sorted(Comparator.comparingInt(PathEntity::e)); } else { var6 = getFallbackDestinations(var1, var4); } + Optional var7 = var6.findFirst(); if (!var7.isPresent()) return null; @@ -123,6 +140,7 @@ public class PlayerPathfinder extends Pathfinder { PathEntity var8 = (PathEntity) var7.get(); return var8; } + } private float a(PathPoint var0, Set var1) { @@ -133,6 +151,7 @@ public class PlayerPathfinder extends Pathfinder { var5 = var0.a(var3); var3.a(var5, var0); } + return var2; } @@ -140,6 +159,7 @@ public class PlayerPathfinder extends Pathfinder { Set var5) { if (Setting.DISABLE_MC_NAVIGATION_FALLBACK.asBoolean()) return Stream.empty(); - return var5.stream().map(var1x -> this.a(var1x.d(), var1.get(var1x), false)).sorted(Comparator.comparingDouble(PathEntity::l).thenComparingInt(PathEntity::e)); + return var5.stream().map(var1x -> this.a(var1x.d(), var1.get(var1x), false)) + .sorted(Comparator.comparingDouble(PathEntity::l).thenComparingInt(PathEntity::e)); } } diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerPathfinderAbstract.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerPathfinderAbstract.java index 608e0c2b6..90fdd1b1f 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerPathfinderAbstract.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerPathfinderAbstract.java @@ -33,7 +33,8 @@ public abstract class PlayerPathfinderAbstract extends PathfinderAbstract { @Override protected PathPoint a(int var0, int var1, int var2) { - return (PathPoint) this.c.computeIfAbsent(PathPoint.b(var0, var1, var2), var3 -> new PathPoint(var0, var1, var2)); + return (PathPoint) this.c.computeIfAbsent(PathPoint.b(var0, var1, var2), + var3 -> new PathPoint(var0, var1, var2)); } public void a(IWorldReader var0, EntityHumanNPC var1) { diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerPathfinderNormal.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerPathfinderNormal.java index 1134439ed..da2f36c8d 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerPathfinderNormal.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerPathfinderNormal.java @@ -68,16 +68,20 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var4 == PathType.DOOR_WOOD_CLOSED && var1 && var2) { var4 = PathType.WALKABLE; } + if (var4 == PathType.DOOR_OPEN && !var2) { var4 = PathType.BLOCKED; } + if (var4 == PathType.RAIL && !(var0.getType(var3).getBlock() instanceof BlockMinecartTrackAbstract) && !(var0.getType(var3.down()).getBlock() instanceof BlockMinecartTrackAbstract)) { var4 = PathType.FENCE; } + if (var4 == PathType.LEAVES) { var4 = PathType.BLOCKED; } + return var4; } @@ -93,13 +97,17 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var6 == PathType.DAMAGE_FIRE || var5 == Blocks.MAGMA_BLOCK || var5 == Blocks.CAMPFIRE) { var4 = PathType.DAMAGE_FIRE; } + if (var6 == PathType.DAMAGE_CACTUS) { var4 = PathType.DAMAGE_CACTUS; } + if (var6 == PathType.DAMAGE_OTHER) { var4 = PathType.DAMAGE_OTHER; } + } + var4 = this.a(var0, var1, var2, var3, var4); return var4; } @@ -123,12 +131,15 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var4.a(var16) >= var4.a(var15)) { var15 = var16; } + } + if (var11 == PathType.OPEN && var4.a(var15) == 0.0F) return PathType.OPEN; else return var15; } + } @Override @@ -151,12 +162,15 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var4.a(var16) >= var4.a(var15)) { var15 = var16; } + } + if (var11 == PathType.OPEN && var4.a(var15) == 0.0F) return PathType.OPEN; else return var15; } + } public PathType a(IBlockAccess var0, int var1, int var2, int var3, int var4, int var5, int var6, boolean var7, @@ -172,10 +186,14 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var12 == 0 && var13 == 0 && var14 == 0) { var10 = var18; } + var9.add(var18); } + } + } + return var10; } @@ -195,9 +213,13 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { } else if (var9 == Blocks.SWEET_BERRY_BUSH) { var4 = PathType.DANGER_OTHER; } + } + } + } + } catch (Throwable var18) { tt = var18; throw var18; @@ -209,12 +231,17 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { } catch (Throwable var17) { tt.addSuppressed(var17); } + } else { var5.close(); } + } + } + } + return var4; } @@ -233,6 +260,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var7.l = var11; var7.k = Math.max(var7.k, var12); } + if ((var11 != PathType.WALKABLE)) { if ((var7 == null || var7.k < 0.0F) && var3 > 0 && var11 != PathType.FENCE && var11 != PathType.TRAPDOOR) { @@ -249,8 +277,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (!this.a.getCubes(this.b, var19)) { var7 = null; } + } + } + if (var11 == PathType.WATER && !this.e()) { if (this.a(this.b, var0, var1 - 1, var2) != PathType.WATER) return var7; @@ -263,7 +294,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var7.l = var11; var7.k = Math.max(var7.k, this.b.a(var11)); } + } + if (var11 == PathType.OPEN) { AxisAlignedBB var15 = new AxisAlignedBB(var0 - var13 + 0.5D, var1 + 0.001D, var2 - var13 + 0.5D, var0 + var13 + 0.5D, var1 + this.b.getHeight(), var2 + var13 + 0.5D); @@ -277,7 +310,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var7.k = Math.max(var7.k, var12); return var7; } + } + int var16 = 0; int var17 = var1; while (var11 == PathType.OPEN) { @@ -289,12 +324,14 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var18.k = -1.0F; return var18; } + var18 = this.a(var0, var1, var2); if (var16++ >= b.bv()) { var18.l = PathType.BLOCKED; var18.k = -1.0F; return var18; } + var11 = this.a(this.b, var0, var1, var2); var12 = this.b.a(var11); if (var11 != PathType.OPEN && var12 >= 0.0F) { @@ -303,16 +340,22 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var18.k = Math.max(var18.k, var12); break; } + if (var12 < 0.0F) { var18.l = PathType.BLOCKED; var18.k = -1.0F; return var18; } + } + } + } + return var7; } + } private boolean a(PathPoint var0, PathPoint var1, PathPoint var2, PathPoint var3) { @@ -332,39 +375,48 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (this.b.a(var4) >= 0.0F) { var3 = MathHelper.d(Math.max(1.0F, this.b.K)); } + double var5 = a(this.a, new BlockPosition(var1.a, var1.b, var1.c)); PathPoint var7 = this.a(var1.a, var1.b, var1.c + 1, var3, var5, EnumDirection.SOUTH); if (var7 != null && !var7.i && var7.k >= 0.0F) { var0[var2++] = var7; } + PathPoint var8 = this.a(var1.a - 1, var1.b, var1.c, var3, var5, EnumDirection.WEST); if (var8 != null && !var8.i && var8.k >= 0.0F) { var0[var2++] = var8; } + PathPoint var9 = this.a(var1.a + 1, var1.b, var1.c, var3, var5, EnumDirection.EAST); if (var9 != null && !var9.i && var9.k >= 0.0F) { var0[var2++] = var9; } + PathPoint var10 = this.a(var1.a, var1.b, var1.c - 1, var3, var5, EnumDirection.NORTH); if (var10 != null && !var10.i && var10.k >= 0.0F) { var0[var2++] = var10; } + PathPoint var11 = this.a(var1.a - 1, var1.b, var1.c - 1, var3, var5, EnumDirection.NORTH); if (this.a(var1, var8, var10, var11)) { var0[var2++] = var11; } + PathPoint var12 = this.a(var1.a + 1, var1.b, var1.c - 1, var3, var5, EnumDirection.NORTH); if (this.a(var1, var9, var10, var12)) { var0[var2++] = var12; } + PathPoint var13 = this.a(var1.a - 1, var1.b, var1.c + 1, var3, var5, EnumDirection.SOUTH); if (this.a(var1, var8, var7, var13)) { var0[var2++] = var13; } + PathPoint var14 = this.a(var1.a + 1, var1.b, var1.c + 1, var3, var5, EnumDirection.SOUTH); if (this.a(var1, var9, var7, var14)) { var0[var2++] = var14; } + return var2; } @@ -380,6 +432,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { ++var0; ((MutableBlockPosition) var1).c(this.b.locX, var0, this.b.locZ); } + --var0; } else if (this.b.onGround) { var0 = MathHelper.floor(this.b.getBoundingBox().minY + 0.5D); @@ -388,8 +441,10 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { this.b); (this.a.getType(var1).isAir() || this.a.getType(var1).a(this.a, var1, PathMode.LAND)) && var1.getY() > 0; var1 = var1.down()) { } + var0 = var1.up().getY(); } + var1 = new BlockPosition(this.b); PathType var2 = this.a(this.b, var1.getX(), var0, var1.getZ()); if (this.b.a(var2) < 0.0F) { @@ -405,7 +460,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (this.b.a(var6) >= 0.0F) return this.a(var4.getX(), var4.getY(), var4.getZ()); } + } + return this.a(var1.getX(), var0, var1.getZ()); } diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerlistTracker.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerlistTracker.java index ca850166e..02aa40d45 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerlistTracker.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerlistTracker.java @@ -44,12 +44,14 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { if (res == null) { updateLastPlayer(player); } + return res; } }); } catch (Throwable e) { e.printStackTrace(); } + } else { try { Set delegate = super.trackedPlayers; @@ -60,6 +62,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { if (res) { updateLastPlayer(player); } + return res; } @@ -71,7 +74,9 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + } + } public PlayerlistTracker(PlayerChunkMap map, EntityTracker entry) { @@ -87,6 +92,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { Bukkit.getPluginManager().callEvent( new NPCLinkToPlayerEvent(((NPCHolder) tracker).getNPC(), lastUpdatedPlayer.getBukkitEntity())); } + } @Override @@ -110,7 +116,9 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + } + } super.updatePlayer(entityplayer); @@ -122,6 +130,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + return 0; } @@ -131,6 +140,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + return false; } @@ -140,6 +150,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -149,6 +160,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + return 0; } @@ -168,7 +180,9 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { TRACKING_MAP_SETTER = NMS.getFirstSetter(EntityTracker.class, Map.class); TRACKING_MAP_GETTER = NMS.getFirstGetter(EntityTracker.class, Map.class); } + } catch (Exception e) { } + } } diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ArmorStandController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ArmorStandController.java index 5a96a17ad..f893a30e4 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ArmorStandController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/ArmorStandController.java @@ -82,6 +82,7 @@ public class ArmorStandController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -93,6 +94,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -110,6 +112,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ArmorStandNPC(this)); } + return super.getBukkitEntity(); } @@ -129,6 +132,7 @@ public class ArmorStandController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -137,6 +141,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { npc.update(); } + } } } 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 5115bacde..ffc0b1479 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 @@ -59,6 +59,7 @@ public class BatController extends MobEntityController { if (npc != null) { setAsleep(false); } + } @Override @@ -81,6 +82,7 @@ public class BatController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -94,6 +96,7 @@ public class BatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -104,6 +107,7 @@ public class BatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,6 +125,7 @@ public class BatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BatNPC(this)); } + return super.getBukkitEntity(); } @@ -155,6 +160,7 @@ public class BatController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -171,8 +177,10 @@ public class BatController extends MobEntityController { if (npc.useMinecraftAI()) { super.mobTick(); } + npc.update(); } + } @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 5d422ef73..c273d90ee 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 @@ -78,6 +78,7 @@ public class BeeController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -91,6 +92,7 @@ public class BeeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -101,6 +103,7 @@ public class BeeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -118,6 +121,7 @@ public class BeeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BeeNPC(this)); } + return super.getBukkitEntity(); } @@ -152,6 +156,7 @@ public class BeeController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -168,8 +173,10 @@ public class BeeController extends MobEntityController { if (npc.useMinecraftAI()) { super.mobTick(); } + npc.update(); } + } @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 3c4ce8293..cba71f6b8 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 @@ -78,6 +78,7 @@ public class BlazeController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -91,6 +92,7 @@ public class BlazeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -101,6 +103,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -118,6 +121,7 @@ public class BlazeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BlazeNPC(this)); } + return super.getBukkitEntity(); } @@ -152,6 +156,7 @@ public class BlazeController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -165,6 +170,7 @@ public class BlazeController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 8b1923de6..8a4d03c30 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 @@ -72,6 +72,7 @@ public class CatController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -80,6 +81,7 @@ public class CatController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -104,6 +106,7 @@ public class CatController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -117,6 +120,7 @@ public class CatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -127,6 +131,7 @@ public class CatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -146,6 +151,7 @@ public class CatController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -153,6 +159,7 @@ public class CatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CatNPC(this)); } + return super.getBukkitEntity(); } @@ -187,6 +194,7 @@ public class CatController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -209,6 +217,7 @@ public class CatController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 d93223cb5..04976b510 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 @@ -70,6 +70,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -94,6 +95,7 @@ public class CaveSpiderController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -107,6 +109,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -117,6 +120,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -136,6 +140,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -143,6 +148,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CaveSpiderNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +183,7 @@ public class CaveSpiderController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -199,6 +206,7 @@ public class CaveSpiderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -215,6 +223,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } 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 d2f2a6298..6ce8793b8 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 @@ -72,6 +72,7 @@ public class ChickenController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -80,6 +81,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -104,6 +106,7 @@ public class ChickenController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -117,6 +120,7 @@ public class ChickenController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -127,6 +131,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -146,6 +151,7 @@ public class ChickenController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -153,6 +159,7 @@ public class ChickenController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ChickenNPC(this)); } + return super.getBukkitEntity(); } @@ -187,6 +194,7 @@ public class ChickenController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -209,6 +217,7 @@ public class ChickenController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -216,6 +225,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { this.eggLayTime = 100; // egg timer } + super.movementTick(); } 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 2408a7786..1a074f9c2 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 @@ -70,6 +70,7 @@ public class CodController extends MobEntityController { this.oldMoveController = this.moveController; this.moveController = new ControllerMove(this); } + } @Override @@ -82,6 +83,7 @@ public class CodController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -116,6 +118,7 @@ public class CodController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -129,6 +132,7 @@ public class CodController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -139,6 +143,7 @@ public class CodController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -157,9 +162,11 @@ public class CodController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.e(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -167,6 +174,7 @@ public class CodController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CodNPC(this)); } + return super.getBukkitEntity(); } @@ -201,6 +209,7 @@ public class CodController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -222,18 +231,23 @@ public class CodController extends MobEntityController { if (!npc.useMinecraftAI()) { NMSImpl.setNotInSchool(this); } + NMSImpl.updateMinecraftAIState(npc, this); if (npc.useMinecraftAI() && this.moveController != this.oldMoveController) { this.moveController = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new PlayerControllerMove(this); } + } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -242,10 +256,12 @@ public class CodController extends MobEntityController { if (npc != null) { this.v = false; } + super.movementTick(); if (npc != null) { this.v = lastInWater; } + } @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 a50130273..78db8370c 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 @@ -76,6 +76,7 @@ public class CowController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -84,6 +85,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -118,6 +120,7 @@ public class CowController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -131,6 +134,7 @@ public class CowController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -141,6 +145,7 @@ public class CowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -160,6 +165,7 @@ public class CowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -167,6 +173,7 @@ public class CowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CowNPC(this)); } + return super.getBukkitEntity(); } @@ -201,6 +208,7 @@ public class CowController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -223,6 +231,7 @@ public class CowController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 21cf28576..912882d45 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 @@ -73,6 +73,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -97,6 +98,7 @@ public class CreeperController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -110,6 +112,7 @@ public class CreeperController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -120,6 +123,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -139,6 +143,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -146,6 +151,7 @@ public class CreeperController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CreeperNPC(this)); } + return super.getBukkitEntity(); } @@ -180,6 +186,7 @@ public class CreeperController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -187,6 +194,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isProtected()) { super.ignite(); } + } @Override @@ -209,6 +217,7 @@ public class CreeperController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -223,6 +232,7 @@ public class CreeperController extends MobEntityController { if (npc == null || allowPowered) { super.onLightningStrike(entitylightning); } + } public void setAllowPowered(boolean allowPowered) { @@ -236,6 +246,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } 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 dc18342a4..fa140353c 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 @@ -71,6 +71,7 @@ public class DolphinController extends MobEntityController { this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED) .setValue(this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getBaseValue() / 10); } + } @Override @@ -83,6 +84,7 @@ public class DolphinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -112,6 +114,7 @@ public class DolphinController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -125,6 +128,7 @@ public class DolphinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -135,6 +139,7 @@ public class DolphinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -153,9 +158,11 @@ public class DolphinController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d, dt())) { super.e(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -163,6 +170,7 @@ public class DolphinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DolphinNPC(this)); } + return super.getBukkitEntity(); } @@ -197,6 +205,7 @@ public class DolphinController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -224,6 +233,7 @@ public class DolphinController extends MobEntityController { if (npc != null && npc.isProtected()) { inProtectedTick = true; } + super.tick(); inProtectedTick = false; if (npc != null) { @@ -231,11 +241,14 @@ public class DolphinController extends MobEntityController { if (npc.useMinecraftAI() && this.moveController != this.oldMoveController) { this.moveController = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new PlayerControllerMove(this); } + npc.update(); } + } } } 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 acd93fbd6..48bbb6b93 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 @@ -70,6 +70,7 @@ public class DrownedController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -94,6 +95,7 @@ public class DrownedController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -107,6 +109,7 @@ public class DrownedController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -117,6 +120,7 @@ public class DrownedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -136,6 +140,7 @@ public class DrownedController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -143,6 +148,7 @@ public class DrownedController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DrownedNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +183,7 @@ public class DrownedController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -199,6 +206,7 @@ public class DrownedController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 63312f700..a86cdb53c 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 @@ -84,6 +84,7 @@ public class EnderDragonController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -97,6 +98,7 @@ public class EnderDragonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -107,6 +109,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -124,6 +127,7 @@ public class EnderDragonController extends MobEntityController { if (getDragonControllerManager().a().getControllerPhase() == DragonControllerPhase.HOVER) { setMot(old); } + return res; } @@ -137,6 +141,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderDragonNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +176,7 @@ public class EnderDragonController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -184,16 +190,19 @@ public class EnderDragonController extends MobEntityController { npc.update(); NMSImpl.updateMinecraftAIState(npc, this); } + if (npc != null && !npc.useMinecraftAI()) { if (getDragonControllerManager().a().getControllerPhase() == DragonControllerPhase.DYING) { setHealth(0F); return; } + if (this.d < 0) { for (int i = 0; i < this.c.length; ++i) { this.c[i][0] = this.yaw; this.c[i][1] = this.locY(); } + } if (++this.d == this.c.length) { @@ -216,15 +225,18 @@ public class EnderDragonController extends MobEntityController { if (getRidingPassenger() != null) { yaw = getRidingPassenger().getBukkitYaw() - 180; } + Vec3D mot = getMot(); if (mot.getX() != 0 || mot.getY() != 0 || mot.getZ() != 0) { mot = mot.d(0.98, 0.98, 0.98); if (getRidingPassenger() == null) { yaw = Util.getDragonYaw(getBukkitEntity(), mot.x, mot.z); } + setPosition(locX() + mot.getX(), locY() + mot.getY(), locZ() + mot.getZ()); setMot(mot); } + if (npc.hasTrait(EnderDragonTrait.class) && npc.getOrAddTrait(EnderDragonTrait.class).isDestroyWalls() && NMSImpl.ENDERDRAGON_CHECK_WALLS != null) { for (int i = 0; i < 3; i++) { @@ -234,8 +246,11 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + } + } + if (npc.data().get(NPC.Metadata.COLLIDABLE, false)) { try { KNOCKBACK.invoke(this, this.world.getEntities(this, @@ -249,10 +264,13 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable t) { t.printStackTrace(); } + } + } else { super.movementTick(); } + } @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 6004f0792..5f116d878 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 @@ -70,6 +70,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -101,6 +102,7 @@ public class EndermanController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -114,6 +116,7 @@ public class EndermanController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -124,6 +127,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -143,6 +147,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -150,6 +155,7 @@ public class EndermanController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EndermanNPC(this)); } + return super.getBukkitEntity(); } @@ -184,6 +190,7 @@ public class EndermanController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -206,6 +213,7 @@ public class EndermanController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -222,6 +230,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } 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 b3511d465..ed1ba7443 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 @@ -70,6 +70,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -94,6 +95,7 @@ public class EndermiteController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -107,6 +109,7 @@ public class EndermiteController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -117,6 +120,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -136,6 +140,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -143,6 +148,7 @@ public class EndermiteController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EndermiteNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +183,7 @@ public class EndermiteController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -199,6 +206,7 @@ public class EndermiteController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -215,6 +223,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java index f98ef312f..5e578ef72 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java @@ -88,6 +88,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { skinTracker = null; } + } @Override @@ -95,6 +96,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -127,6 +129,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -137,8 +140,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable boolean damaged = super.damageEntity(damagesource, f); if (damaged && velocityChanged) { velocityChanged = false; - Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), (Runnable) () -> EntityHumanNPC.this.velocityChanged = true); + Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), + (Runnable) () -> EntityHumanNPC.this.velocityChanged = true); } + return damaged; } @@ -156,7 +161,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable return; super.die(damagesource); - Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), (Runnable) () -> ((WorldServer) world).removeEntity(EntityHumanNPC.this), 15); // give enough time for death and smoke animation + Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), + (Runnable) () -> ((WorldServer) world).removeEntity(EntityHumanNPC.this), 15); // give enough time for + // death and smoke + // animation } @Override @@ -166,6 +174,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -173,6 +182,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PlayerNPC(this)); } + return super.getBukkitEntity(); } @@ -206,6 +216,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (skinName == null) { skinName = npc.getName(); } + return skinName.toLowerCase(); } @@ -230,6 +241,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -247,10 +259,12 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } catch (IOException e) { // swallow } + AttributeInstance range = getAttributeInstance(GenericAttributes.FOLLOW_RANGE); if (range == null) { range = getAttributeMap().b(GenericAttributes.FOLLOW_RANGE); } + range.setValue(Setting.DEFAULT_PATHFINDING_RANGE.asDouble()); controllerJump = new PlayerControllerJump(this); controllerMove = new PlayerControllerMove(this); @@ -288,9 +302,11 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable jump(); jumpTicks = 10; } + } else { jumpTicks = 0; } + aZ *= 0.98F; bb *= 0.98F; moveWithFallDamage(new Vec3D(this.aZ, this.ba, this.bb)); // movement method @@ -298,6 +314,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (jumpTicks > 0) { jumpTicks--; } + } private void moveWithFallDamage(Vec3D vec) { @@ -306,6 +323,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (!npc.isProtected()) { a(this.locY() - y, onGround); } + } @Override @@ -314,6 +332,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable super.playerTick(); return; } + entityBaseTick(); boolean navigating = npc.getNavigator().isNavigating() || controllerMove.b(); if (!navigating && getBukkitEntity() != null @@ -322,16 +341,20 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable && (!npc.isProtected() || SpigotUtil.checkYSafe(locY(), getBukkitEntity().getWorld()))) { moveWithFallDamage(new Vec3D(0, 0, 0)); } + Vec3D mot = getMot(); if (Math.abs(mot.getX()) < EPSILON && Math.abs(mot.getY()) < EPSILON && Math.abs(mot.getZ()) < EPSILON) { setMot(new Vec3D(0, 0, 0)); } + if (navigating) { if (!NMSImpl.isNavigationFinished(navigation)) { NMSImpl.updateNavigation(navigation); } + moveOnCurrentHeading(); } + updateAI(); collideNearby(); } @@ -393,8 +416,11 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (!entity.dead) { entity.pickup(this); } + } + } + } public void updateAI() { @@ -423,8 +449,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable itemChanged = true; } + equipmentCache.put(slot, equipment); } + if (!itemChanged) return; Location current = getBukkitEntity().getLocation(packetLocationCache); @@ -433,6 +461,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable for (EnumItemSlot slot : EnumItemSlot.values()) { packets[i++] = new PacketPlayOutEntityEquipment(getId(), slot, getEquipment(slot)); } + NMSImpl.sendPacketsNearby(getBukkitEntity(), current, packets); } 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 fbc923476..82d85648f 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 @@ -64,6 +64,7 @@ public class EvokerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class EvokerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class EvokerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class EvokerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class EvokerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class EvokerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EvokerNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class EvokerController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class EvokerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 a5224b903..1a880178c 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 @@ -66,6 +66,7 @@ public class FoxController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -74,6 +75,7 @@ public class FoxController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -98,6 +100,7 @@ public class FoxController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class FoxController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class FoxController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class FoxController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class FoxController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FoxNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class FoxController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +211,7 @@ public class FoxController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 008b3690b..ed4b59d3c 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 @@ -72,6 +72,7 @@ public class GhastController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -85,6 +86,7 @@ public class GhastController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -95,6 +97,7 @@ public class GhastController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +115,7 @@ public class GhastController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GhastNPC(this)); } + return super.getBukkitEntity(); } @@ -146,6 +150,7 @@ public class GhastController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -164,6 +169,7 @@ public class GhastController extends MobEntityController { npc.update(); NMSImpl.updateMinecraftAIState(npc, this); } + super.mobTick(); } 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 04b3af0e8..0f3598384 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 @@ -64,6 +64,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class GiantController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class GiantController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class GiantController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class GiantController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GiantNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class GiantController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class GiantController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 5b92d98c4..3137696e8 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 @@ -64,6 +64,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class GuardianController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class GuardianController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class GuardianController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class GuardianController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GuardianNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class GuardianController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -197,8 +204,10 @@ public class GuardianController extends MobEntityController { } else { super.movementTick(); } + npc.update(); } + } @Override @@ -215,6 +224,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 360b9b11d..5f385a24c 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 @@ -64,6 +64,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class GuardianElderController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GuardianElderNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class GuardianElderController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -197,8 +204,10 @@ public class GuardianElderController extends MobEntityController { } else { super.movementTick(); } + npc.update(); } + } @Override @@ -215,6 +224,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 dec425e4a..044dc18a2 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 @@ -72,6 +72,7 @@ public class HorseController extends MobEntityController { horse.setDomestication(horse.getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -85,6 +86,7 @@ public class HorseController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -93,6 +95,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -117,6 +120,7 @@ public class HorseController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -130,6 +134,7 @@ public class HorseController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -147,6 +152,7 @@ public class HorseController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -171,6 +177,7 @@ public class HorseController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -178,6 +185,7 @@ public class HorseController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseNPC(this)); } + return super.getBukkitEntity(); } @@ -212,6 +220,7 @@ public class HorseController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -240,13 +249,16 @@ public class HorseController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } 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 ea8a37977..eb60892f1 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 @@ -71,6 +71,7 @@ public class HorseDonkeyController extends MobEntityController { ((Donkey) getBukkitEntity()).setDomestication(((Donkey) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -84,6 +85,7 @@ public class HorseDonkeyController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -92,6 +94,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -116,6 +119,7 @@ public class HorseDonkeyController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -129,6 +133,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -146,6 +151,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -170,6 +176,7 @@ public class HorseDonkeyController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -177,6 +184,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseDonkeyNPC(this)); } + return super.getBukkitEntity(); } @@ -211,6 +219,7 @@ public class HorseDonkeyController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -238,16 +247,20 @@ public class HorseDonkeyController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 817773da7..ee9c34868 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 @@ -71,6 +71,7 @@ public class HorseMuleController extends MobEntityController { ((Mule) getBukkitEntity()).setDomestication(((Mule) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -84,6 +85,7 @@ public class HorseMuleController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -92,6 +94,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -116,6 +119,7 @@ public class HorseMuleController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -129,6 +133,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -146,6 +151,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -170,6 +176,7 @@ public class HorseMuleController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -177,6 +184,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseMuleNPC(this)); } + return super.getBukkitEntity(); } @@ -211,6 +219,7 @@ public class HorseMuleController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -238,16 +247,20 @@ public class HorseMuleController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 33a07479c..f004c13a9 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 @@ -72,6 +72,7 @@ public class HorseSkeletonController extends MobEntityController { .setDomestication(((SkeletonHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -85,6 +86,7 @@ public class HorseSkeletonController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -93,6 +95,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -117,6 +120,7 @@ public class HorseSkeletonController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -130,6 +134,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -147,6 +152,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -171,6 +177,7 @@ public class HorseSkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -178,6 +185,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseSkeletonNPC(this)); } + return super.getBukkitEntity(); } @@ -212,6 +220,7 @@ public class HorseSkeletonController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -239,16 +248,20 @@ public class HorseSkeletonController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 5434e6434..4a5fbd49e 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 @@ -72,6 +72,7 @@ public class HorseZombieController extends MobEntityController { .setDomestication(((ZombieHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -85,6 +86,7 @@ public class HorseZombieController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -93,6 +95,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -117,6 +120,7 @@ public class HorseZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -130,6 +134,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -147,6 +152,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -171,6 +177,7 @@ public class HorseZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -178,6 +185,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -212,6 +220,7 @@ public class HorseZombieController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -239,16 +248,20 @@ public class HorseZombieController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HumanController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HumanController.java index 6b6180fd1..c8a858376 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HumanController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HumanController.java @@ -35,9 +35,11 @@ public class HumanController extends AbstractEntityController { if (npc.requiresNameHologram()) { name = teamName; } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } + final GameProfile profile = new GameProfile(uuid, name); final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile, new PlayerInteractManager(nmsWorld), npc); @@ -45,6 +47,7 @@ public class HumanController extends AbstractEntityController { if (skin != null) { skin.apply(handle); } + Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> { if (getBukkitEntity() == null || !getBukkitEntity().isValid() || getBukkitEntity() != handle.getBukkitEntity()) 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 039c67e84..ba4942b3b 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 @@ -64,6 +64,7 @@ public class IllusionerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class IllusionerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class IllusionerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class IllusionerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class IllusionerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class IllusionerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new IllusionerNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class IllusionerController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class IllusionerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 020acdfd3..f04d487be 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 @@ -64,6 +64,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class IronGolemController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class IronGolemController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class IronGolemController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new IronGolemNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class IronGolemController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class IronGolemController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 31eaea038..dee465ba6 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 @@ -71,6 +71,7 @@ public class LlamaController extends MobEntityController { ((Llama) getBukkitEntity()).setDomestication(((Llama) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -84,6 +85,7 @@ public class LlamaController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -92,6 +94,7 @@ public class LlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -116,6 +119,7 @@ public class LlamaController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -129,6 +133,7 @@ public class LlamaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -146,6 +151,7 @@ public class LlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -165,6 +171,7 @@ public class LlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -172,6 +179,7 @@ public class LlamaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LlamaNPC(this)); } + return super.getBukkitEntity(); } @@ -206,6 +214,7 @@ public class LlamaController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -233,16 +242,20 @@ public class LlamaController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 ba46cc259..7619cba98 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 @@ -62,6 +62,7 @@ public class MagmaCubeController extends MobEntityController { this.oldMoveController = this.moveController; this.moveController = new PlayerControllerMove(this); } + } @Override @@ -74,6 +75,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -98,6 +100,7 @@ public class MagmaCubeController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MagmaCubeNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class MagmaCubeController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -208,6 +216,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.pickup(human); } + } @Override @@ -218,11 +227,14 @@ public class MagmaCubeController extends MobEntityController { if (npc.useMinecraftAI() && this.moveController != this.oldMoveController) { this.moveController = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new PlayerControllerMove(this); } + npc.update(); } + } @Override @@ -232,6 +244,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MobEntityController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MobEntityController.java index 36de1644b..9854366d8 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MobEntityController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MobEntityController.java @@ -42,7 +42,9 @@ public abstract class MobEntityController extends AbstractEntityController { if (mob.getControllerLook().getClass() == ControllerLook.class) { NMSImpl.setLookControl(mob, new PitchableLookControl(mob)); } + } + entity.setPositionRotation(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch()); if (npc != null) { // entity.onGround isn't updated right away - we approximate here so @@ -51,15 +53,19 @@ public abstract class MobEntityController extends AbstractEntityController { if (beneath.isSolid()) { entity.onGround = true; } + try { UUID_FIELD.invoke(entity, npc.getUniqueId()); } catch (Throwable e) { e.printStackTrace(); } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } + } + return entity.getBukkitEntity(); } @@ -70,6 +76,7 @@ public abstract class MobEntityController extends AbstractEntityController { ex.printStackTrace(); return null; } + } private static Constructor getConstructor(Class clazz) { @@ -82,6 +89,7 @@ public abstract class MobEntityController extends AbstractEntityController { } catch (Exception ex) { throw new IllegalStateException("unable to find an entity constructor"); } + } private static final Map, Constructor> CONSTRUCTOR_CACHE = new WeakHashMap<>(); 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 c9b5fa45a..6611e4a16 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 @@ -68,6 +68,7 @@ public class MushroomCowController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -76,6 +77,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -107,6 +109,7 @@ public class MushroomCowController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -120,6 +123,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -130,6 +134,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -149,6 +154,7 @@ public class MushroomCowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -156,6 +162,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MushroomCowNPC(this)); } + return super.getBukkitEntity(); } @@ -190,6 +197,7 @@ public class MushroomCowController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -212,6 +220,7 @@ public class MushroomCowController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 3bb34292e..0d7eb3be5 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 @@ -67,6 +67,7 @@ public class OcelotController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -75,6 +76,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -99,6 +101,7 @@ public class OcelotController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -112,6 +115,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -122,6 +126,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -141,6 +146,7 @@ public class OcelotController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -148,6 +154,7 @@ public class OcelotController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new OcelotNPC(this)); } + return super.getBukkitEntity(); } @@ -182,6 +189,7 @@ public class OcelotController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -205,10 +213,12 @@ public class OcelotController extends MobEntityController { if (restorePose) { this.setPose(old); } + if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 a35e62b33..321e9f4c8 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 @@ -66,6 +66,7 @@ public class PandaController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -74,6 +75,7 @@ public class PandaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -98,6 +100,7 @@ public class PandaController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class PandaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class PandaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class PandaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class PandaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PandaNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class PandaController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +211,7 @@ public class PandaController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 6eacc3ea4..cb32bf3d3 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 @@ -82,6 +82,7 @@ public class ParrotController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -95,6 +96,7 @@ public class ParrotController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -105,6 +107,7 @@ public class ParrotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -122,6 +125,7 @@ public class ParrotController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ParrotNPC(this)); } + return super.getBukkitEntity(); } @@ -156,6 +160,7 @@ public class ParrotController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -172,8 +177,10 @@ public class ParrotController extends MobEntityController { if (npc.useMinecraftAI()) { super.mobTick(); } + npc.update(); } + } @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 6e0451847..60fddf3b5 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 @@ -66,6 +66,7 @@ public class PhantomController extends MobEntityController { this.lookController = new ControllerLook(this); // TODO: phantom pitch reversed } + } @Override @@ -78,6 +79,7 @@ public class PhantomController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -102,6 +104,7 @@ public class PhantomController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -115,6 +118,7 @@ public class PhantomController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -125,6 +129,7 @@ public class PhantomController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -144,6 +149,7 @@ public class PhantomController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -158,6 +164,7 @@ public class PhantomController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PhantomNPC(this)); } + return super.getBukkitEntity(); } @@ -192,6 +199,7 @@ public class PhantomController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -221,15 +229,19 @@ public class PhantomController extends MobEntityController { this.moveController = this.oldMoveController; this.lookController = this.oldLookController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new PlayerControllerMove(this); this.lookController = new ControllerLook(this); } + if (npc.isProtected()) { this.setOnFire(0); } + npc.update(); } + } @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 1fa62517f..b0a4f1d1f 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 @@ -67,6 +67,7 @@ public class PigController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -75,6 +76,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -99,6 +101,7 @@ public class PigController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -112,6 +115,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -122,6 +126,7 @@ public class PigController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -147,6 +152,7 @@ public class PigController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -154,6 +160,7 @@ public class PigController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PigNPC(this)); } + return super.getBukkitEntity(); } @@ -188,6 +195,7 @@ public class PigController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -210,6 +218,7 @@ public class PigController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -224,6 +233,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } } 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 a34569c2f..1f40dd87b 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 @@ -64,6 +64,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class PigZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class PigZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class PigZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class PigZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PigZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class PigZombieController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class PigZombieController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 faee39674..cf1feac6e 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 @@ -66,6 +66,7 @@ public class PillagerController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -74,6 +75,7 @@ public class PillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -98,6 +100,7 @@ public class PillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class PillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class PillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class PillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class PillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class PillagerController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +211,7 @@ public class PillagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 c42367601..3cecc6a0f 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 @@ -64,6 +64,7 @@ public class PolarBearController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -82,6 +83,7 @@ public class PolarBearController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -95,6 +97,7 @@ public class PolarBearController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -105,6 +108,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -122,6 +126,7 @@ public class PolarBearController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PolarBearNPC(this)); } + return super.getBukkitEntity(); } @@ -156,6 +161,7 @@ public class PolarBearController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -170,6 +176,7 @@ public class PolarBearController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 4c4dce8f3..f0a66398f 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 @@ -67,6 +67,7 @@ public class PufferFishController extends MobEntityController { this.oldMoveController = this.moveController; this.moveController = new ControllerMove(this); } + } @Override @@ -79,6 +80,7 @@ public class PufferFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -120,6 +122,7 @@ public class PufferFishController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -133,6 +136,7 @@ public class PufferFishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -143,6 +147,7 @@ public class PufferFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -161,9 +166,11 @@ public class PufferFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.e(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -171,6 +178,7 @@ public class PufferFishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PufferFishNPC(this)); } + return super.getBukkitEntity(); } @@ -205,6 +213,7 @@ public class PufferFishController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -228,11 +237,14 @@ public class PufferFishController extends MobEntityController { if (npc.useMinecraftAI() && this.moveController != this.oldMoveController) { this.moveController = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new PlayerControllerMove(this); } + npc.update(); } + } @Override @@ -243,11 +255,13 @@ public class PufferFishController extends MobEntityController { this.v = false; setPuffState(0); } + super.movementTick(); if (npc != null) { this.v = lastInWater; setPuffState(lastPuffState); } + } @Override @@ -262,10 +276,12 @@ public class PufferFishController extends MobEntityController { if (npc != null) { NMSImpl.resetPuffTicks(this); } + super.tick(); if (npc != null && npc.hasTrait(PufferFishTrait.class)) { setPuffState(npc.getOrAddTrait(PufferFishTrait.class).getPuffState()); } + } private static float s(int i) { @@ -277,6 +293,7 @@ public class PufferFishController extends MobEntityController { default: return 1.0F; } + } } 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 7cadde5ef..eb2bf1e29 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 @@ -67,6 +67,7 @@ public class RabbitController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -75,6 +76,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -99,6 +101,7 @@ public class RabbitController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -112,6 +115,7 @@ public class RabbitController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -122,6 +126,7 @@ public class RabbitController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -141,6 +146,7 @@ public class RabbitController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -148,6 +154,7 @@ public class RabbitController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new RabbitNPC(this)); } + return super.getBukkitEntity(); } @@ -187,6 +194,7 @@ public class RabbitController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -210,8 +218,10 @@ public class RabbitController extends MobEntityController { if (npc.getNavigator().isNavigating()) { NMS.setShouldJump(getBukkitEntity()); } + npc.update(); } + } @Override @@ -229,6 +239,7 @@ public class RabbitController extends MobEntityController { this.datawatcher.set(NMSImpl.getRabbitTypeField(), i); return; } + super.setRabbitType(i); } } 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 8f7fee052..a8feb27b6 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 @@ -66,6 +66,7 @@ public class RavagerController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -74,6 +75,7 @@ public class RavagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -98,6 +100,7 @@ public class RavagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class RavagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class RavagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class RavagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class RavagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new RavagerNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class RavagerController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +211,7 @@ public class RavagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 7341abb9f..915224a31 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 @@ -64,6 +64,7 @@ public class SalmonController extends MobEntityController { this.oldMoveController = this.moveController; this.moveController = new ControllerMove(this); } + } @Override @@ -76,6 +77,7 @@ public class SalmonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -110,6 +112,7 @@ public class SalmonController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -123,6 +126,7 @@ public class SalmonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -133,6 +137,7 @@ public class SalmonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -151,9 +156,11 @@ public class SalmonController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.e(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -161,6 +168,7 @@ public class SalmonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SalmonNPC(this)); } + return super.getBukkitEntity(); } @@ -195,6 +203,7 @@ public class SalmonController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -218,14 +227,18 @@ public class SalmonController extends MobEntityController { if (npc.useMinecraftAI() && this.moveController != this.oldMoveController) { this.moveController = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new PlayerControllerMove(this); } + } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -234,10 +247,12 @@ public class SalmonController extends MobEntityController { if (npc != null) { this.v = false; } + super.movementTick(); if (npc != null) { this.v = lastInWater; } + } @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 648f26b5d..a6496da11 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 @@ -66,6 +66,7 @@ public class SheepController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -74,6 +75,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -98,6 +100,7 @@ public class SheepController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class SheepController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class SheepController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class SheepController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class SheepController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SheepNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class SheepController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +211,7 @@ public class SheepController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 ca83ed8a1..842fd8e48 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 @@ -65,6 +65,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -89,6 +90,7 @@ public class ShulkerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -102,6 +104,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -112,6 +115,7 @@ public class ShulkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -131,6 +135,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -138,6 +143,7 @@ public class ShulkerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ShulkerNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +178,7 @@ public class ShulkerController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -192,6 +199,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || npc.useMinecraftAI()) { super.movementTick(); } + } @Override @@ -213,10 +221,12 @@ public class ShulkerController extends MobEntityController { if (npc.useMinecraftAI()) { super.tick(); } + npc.update(); } else { super.tick(); } + } @Override @@ -226,6 +236,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 a24d8216a..947878798 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 @@ -64,6 +64,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class SilverfishController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class SilverfishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class SilverfishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SilverfishNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class SilverfishController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class SilverfishController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 a4a4275f9..361dd5e7b 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 @@ -64,6 +64,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class SkeletonController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class SkeletonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class SkeletonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SkeletonNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class SkeletonController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class SkeletonController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 2d3c30c75..c293a6a3d 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 @@ -64,6 +64,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class SkeletonStrayController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new StrayNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class SkeletonStrayController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class SkeletonStrayController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 d18782812..5ae766f7e 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 @@ -64,6 +64,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class SkeletonWitherController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SkeletonWitherNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class SkeletonWitherController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class SkeletonWitherController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 8d08f4c0e..85c168e7f 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 @@ -62,6 +62,7 @@ public class SlimeController extends MobEntityController { this.oldMoveController = this.moveController; this.moveController = new PlayerControllerMove(this); } + } @Override @@ -74,6 +75,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -98,6 +100,7 @@ public class SlimeController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class SlimeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SlimeNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class SlimeController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -208,6 +216,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.pickup(human); } + } @Override @@ -218,11 +227,14 @@ public class SlimeController extends MobEntityController { if (npc.useMinecraftAI() && this.moveController != this.oldMoveController) { this.moveController = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new PlayerControllerMove(this); } + npc.update(); } + } @Override @@ -232,6 +244,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 9c8638342..e796e71d2 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 @@ -64,6 +64,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class SnowmanController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class SnowmanController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class SnowmanController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnowmanNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class SnowmanController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class SnowmanController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 cf7b63c4b..d28b18627 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 @@ -64,6 +64,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class SpiderController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class SpiderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class SpiderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SpiderNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class SpiderController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class SpiderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 062c09c0b..b8cbc4d69 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 @@ -64,6 +64,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class SquidController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class SquidController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class SquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class SquidController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SquidNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class SquidController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class SquidController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 524787ece..366956f54 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 @@ -67,6 +67,7 @@ public class TraderLlamaController extends MobEntityController { ((TraderLlama) getBukkitEntity()) .setDomestication(((TraderLlama) getBukkitEntity()).getMaxDomestication()); } + } @Override @@ -80,6 +81,7 @@ public class TraderLlamaController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -88,6 +90,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -112,6 +115,7 @@ public class TraderLlamaController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -125,6 +129,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -135,6 +140,7 @@ public class TraderLlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -154,6 +160,7 @@ public class TraderLlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -161,6 +168,7 @@ public class TraderLlamaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TraderLlamaNPC(this)); } + return super.getBukkitEntity(); } @@ -195,6 +203,7 @@ public class TraderLlamaController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -219,15 +228,19 @@ public class TraderLlamaController extends MobEntityController { if (npc.useMinecraftAI()) { super.mobTick(); } + try { if (bF != null) { bF.invoke(this, 10); // DespawnDelay } + } catch (Throwable e) { } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 8435edddc..9863ac786 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 @@ -64,6 +64,7 @@ public class TropicalFishController extends MobEntityController { this.oldMoveController = this.moveController; this.moveController = new ControllerMove(this); } + } @Override @@ -76,6 +77,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -110,6 +112,7 @@ public class TropicalFishController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -123,6 +126,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -133,6 +137,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -151,9 +156,11 @@ public class TropicalFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.e(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -161,6 +168,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TropicalFishNPC(this)); } + return super.getBukkitEntity(); } @@ -195,6 +203,7 @@ public class TropicalFishController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -216,18 +225,23 @@ public class TropicalFishController extends MobEntityController { if (!npc.useMinecraftAI()) { NMSImpl.setNotInSchool(this); } + NMSImpl.updateMinecraftAIState(npc, this); if (npc.useMinecraftAI() && this.moveController != this.oldMoveController) { this.moveController = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new PlayerControllerMove(this); } + } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -236,10 +250,12 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { this.v = false; } + super.movementTick(); if (npc != null) { this.v = lastInWater; } + } @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 c0390a5da..b62cb1bbe 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 @@ -66,6 +66,7 @@ public class TurtleController extends MobEntityController { this.moveController = new ControllerMove(this); this.bq = new EmptyControllerJump(this); } + } @Override @@ -78,6 +79,7 @@ public class TurtleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -102,6 +104,7 @@ public class TurtleController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -115,6 +118,7 @@ public class TurtleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -125,6 +129,7 @@ public class TurtleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -143,9 +148,11 @@ public class TurtleController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.e(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -153,6 +160,7 @@ public class TurtleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TurtleNPC(this)); } + return super.getBukkitEntity(); } @@ -187,6 +195,7 @@ public class TurtleController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -211,12 +220,15 @@ public class TurtleController extends MobEntityController { this.moveController = this.oldMoveController; this.bq = this.oldJumpController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new PlayerControllerMove(this); this.bq = new EmptyControllerJump(this); } + npc.update(); } + } @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 1ba6b4ee7..8c7b4b6f8 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 @@ -53,6 +53,7 @@ public class VexController extends MobEntityController { if (npc != null) { setNoGravity(true); } + } @Override @@ -75,6 +76,7 @@ public class VexController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -88,6 +90,7 @@ public class VexController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -98,6 +101,7 @@ public class VexController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +119,7 @@ public class VexController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VexNPC(this)); } + return super.getBukkitEntity(); } @@ -149,6 +154,7 @@ public class VexController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -163,6 +169,7 @@ public class VexController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 e693391ab..284e52222 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 @@ -65,6 +65,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.3); } + } @Override @@ -78,6 +79,7 @@ public class VillagerController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -86,6 +88,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -102,7 +105,9 @@ public class VillagerController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.a(entityhuman, enumhand); } @@ -122,6 +127,7 @@ public class VillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -135,6 +141,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -145,6 +152,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -164,6 +172,7 @@ public class VillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -172,6 +181,7 @@ public class VillagerController extends MobEntityController { blockingATrade = false; return true; } + return super.et(); } @@ -180,6 +190,7 @@ public class VillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -214,6 +225,7 @@ public class VillagerController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -234,10 +246,12 @@ public class VillagerController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -252,6 +266,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } } 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 a04f1f051..1014f1329 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 @@ -66,6 +66,7 @@ public class VindicatorController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -74,6 +75,7 @@ public class VindicatorController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -98,6 +100,7 @@ public class VindicatorController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class VindicatorController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class VindicatorController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class VindicatorController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class VindicatorController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VindicatorNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class VindicatorController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +211,7 @@ public class VindicatorController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 e7ea14e99..0962af70d 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 @@ -77,6 +77,7 @@ public class WanderingTraderController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -85,6 +86,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -101,7 +103,9 @@ public class WanderingTraderController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.a(entityhuman, enumhand); } @@ -121,6 +125,7 @@ public class WanderingTraderController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -134,6 +139,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -144,6 +150,7 @@ public class WanderingTraderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -163,6 +170,7 @@ public class WanderingTraderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -171,6 +179,7 @@ public class WanderingTraderController extends MobEntityController { blockingATrade = false; return true; } + return super.et(); } @@ -179,6 +188,7 @@ public class WanderingTraderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WanderingTraderNPC(this)); } + return super.getBukkitEntity(); } @@ -213,6 +223,7 @@ public class WanderingTraderController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } public boolean isBlockingTrades() { @@ -237,16 +248,20 @@ public class WanderingTraderController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.mobTick(); if (npc != null) { try { if (by != null) { by.invoke(this, 10); // DespawnDelay } + } catch (Throwable e) { } + npc.update(); } + } @Override @@ -261,6 +276,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } public void setBlockTrades(boolean blocked) { 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 052b08ab1..01c1db18d 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 @@ -63,6 +63,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -87,6 +88,7 @@ public class WitchController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -100,6 +102,7 @@ public class WitchController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +113,7 @@ public class WitchController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -129,6 +133,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -136,6 +141,7 @@ public class WitchController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitchNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +176,7 @@ public class WitchController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -192,6 +199,7 @@ public class WitchController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -208,6 +216,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 b598c408b..19fb012d3 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 @@ -72,6 +72,7 @@ public class WitherController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -85,6 +86,7 @@ public class WitherController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -95,6 +97,7 @@ public class WitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +115,7 @@ public class WitherController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitherNPC(this)); } + return super.getBukkitEntity(); } @@ -146,6 +150,7 @@ public class WitherController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -173,8 +178,10 @@ public class WitherController extends MobEntityController { if (npc.useMinecraftAI()) { super.mobTick(); } + npc.update(); } + } @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 742c04f6a..e58047d16 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 @@ -68,6 +68,7 @@ public class WolfController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -76,6 +77,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -100,6 +102,7 @@ public class WolfController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -113,6 +116,7 @@ public class WolfController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -123,6 +127,7 @@ public class WolfController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -142,6 +147,7 @@ public class WolfController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -149,6 +155,7 @@ public class WolfController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WolfNPC(this)); } + return super.getBukkitEntity(); } @@ -183,6 +190,7 @@ public class WolfController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -205,6 +213,7 @@ public class WolfController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 f9eb0d952..37bd50493 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 @@ -64,6 +64,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class ZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class ZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class ZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class ZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class ZombieController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class ZombieController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 be788d306..c9e03da80 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 @@ -64,6 +64,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class ZombieHuskController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class ZombieHuskController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieHuskNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class ZombieHuskController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class ZombieHuskController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 3c7f1828f..e8d25775c 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 @@ -64,6 +64,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -88,6 +89,7 @@ public class ZombieVillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class ZombieVillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieVillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class ZombieVillagerController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class ZombieVillagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 416a606d5..fc5664c82 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 @@ -67,6 +67,7 @@ public class AreaEffectCloudController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -78,6 +79,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new AreaEffectCloudNPC(this)); } + return super.getBukkitEntity(); } @@ -109,6 +112,7 @@ public class AreaEffectCloudController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -118,6 +122,7 @@ public class AreaEffectCloudController extends MobEntityController { } else { super.tick(); } + } } } 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 8c20bff3a..f3b3dd34f 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 @@ -80,6 +80,7 @@ public class BoatController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -91,6 +92,7 @@ public class BoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class BoatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BoatNPC(this)); } + return super.getBukkitEntity(); } @@ -122,6 +125,7 @@ public class BoatController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } private EnumStatus s() { @@ -130,6 +134,7 @@ public class BoatController extends MobEntityController { this.aD = getBoundingBox().maxY; return entityboat_enumstatus; } + if (u()) return EnumStatus.IN_WATER; float f = l(); @@ -137,6 +142,7 @@ public class BoatController extends MobEntityController { this.aE = f; return EnumStatus.ON_LAND; } + return EnumStatus.IN_AIR; } @@ -171,7 +177,9 @@ public class BoatController extends MobEntityController { if (getRidingPassenger() instanceof EntityHuman) { this.aE /= 2.0F; } + } + Vec3D vec3d = getMot(); setMot(vec3d.x * this.aq, vec3d.y + d1, vec3d.z * this.aq); this.as *= this.aq; @@ -179,14 +187,18 @@ public class BoatController extends MobEntityController { Vec3D vec3d1 = getMot(); setMot(vec3d1.x, (vec3d1.y + d2 * 0.0615D) * 0.75D, vec3d1.z); } + } + move(EnumMoveType.SELF, getMot()); if (isVehicle()) { this.yaw += this.as; } + } else { super.tick(); } + } private boolean u() { @@ -213,9 +225,13 @@ public class BoatController extends MobEntityController { this.aD = Math.max(f, this.aD); m = flag | (axisalignedbb.minY < f ? true : false); } + } + } + } + } catch (Throwable throwable1) { throwable = throwable1; throw throwable1; @@ -227,10 +243,12 @@ public class BoatController extends MobEntityController { } catch (Throwable throwable2) { throwable.addSuppressed(throwable2); } + } else { blockposition_pooledblockposition.close(); } } + return m; } @@ -241,6 +259,7 @@ public class BoatController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } private EnumStatus v() { @@ -267,11 +286,16 @@ public class BoatController extends MobEntityController { EnumStatus entityboat_enumstatus = EnumStatus.UNDER_FLOWING_WATER; return entityboat_enumstatus; } + flag = true; } + } + } + } + return flag ? EnumStatus.UNDER_WATER : null; } catch (Throwable throwable1) { throwable = throwable1; @@ -284,10 +308,12 @@ public class BoatController extends MobEntityController { } catch (Throwable throwable2) { throwable.addSuppressed(throwable2); } + } else { blockposition_pooledblockposition.close(); } } + } } } 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 79eab08cc..3f392d6c5 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 @@ -67,6 +67,7 @@ public class DragonFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -78,6 +79,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DragonFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -109,6 +112,7 @@ public class DragonFireballController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -118,9 +122,11 @@ public class DragonFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -130,6 +136,7 @@ public class DragonFireballController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } 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 68a790948..83758ee30 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 @@ -83,6 +83,7 @@ public class EggController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -94,6 +95,7 @@ public class EggController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -106,6 +108,7 @@ public class EggController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EggNPC(this)); } + return super.getBukkitEntity(); } @@ -125,6 +128,7 @@ public class EggController extends AbstractEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,9 +138,11 @@ public class EggController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } } 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 fc5f95247..878b4a2a0 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 @@ -67,6 +67,7 @@ public class EnderCrystalController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -78,6 +79,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderCrystalNPC(this)); } + return super.getBukkitEntity(); } @@ -109,6 +112,7 @@ public class EnderCrystalController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -118,6 +122,7 @@ public class EnderCrystalController extends MobEntityController { } else { super.tick(); } + } } } 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 854f4fec6..ec2c727a8 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 @@ -67,6 +67,7 @@ public class EnderPearlController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -78,6 +79,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderPearlNPC(this)); } + return super.getBukkitEntity(); } @@ -109,6 +112,7 @@ public class EnderPearlController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -118,9 +122,11 @@ public class EnderPearlController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } } 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 bec36fcd6..415ee982b 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 @@ -67,6 +67,7 @@ public class EnderSignalController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -78,6 +79,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderSignalNPC(this)); } + return super.getBukkitEntity(); } @@ -109,6 +112,7 @@ public class EnderSignalController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -118,6 +122,7 @@ public class EnderSignalController extends MobEntityController { } else { super.tick(); } + } } } 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 345a0da0b..48985db4d 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 @@ -76,6 +76,7 @@ public class EvokerFangsController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -87,6 +88,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -99,6 +101,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EvokerFangsNPC(this)); } + return super.getBukkitEntity(); } @@ -118,6 +121,7 @@ public class EvokerFangsController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -126,6 +130,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { npc.update(); } + } } 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 f9628744d..86040a23c 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 @@ -61,6 +61,7 @@ public class ExperienceOrbController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ExperienceOrbNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class ExperienceOrbController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class ExperienceOrbController extends MobEntityController { } else { super.tick(); } + } } 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 b95a77f13..31a9637ac 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 @@ -82,6 +82,7 @@ public class FallingBlockController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -93,6 +94,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -105,6 +107,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FallingBlockNPC(this)); } + return super.getBukkitEntity(); } @@ -124,6 +127,7 @@ public class FallingBlockController extends AbstractEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -137,9 +141,11 @@ public class FallingBlockController extends AbstractEntityController { setMot(mot); move(EnumMoveType.SELF, mot); } + } else { super.tick(); } + } @Override @@ -149,6 +155,7 @@ public class FallingBlockController extends AbstractEntityController { } else { NMSImpl.setSize(this, justCreated); } + } private static final double EPSILON = 0.001; 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 09b1fac24..a48c34ca9 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 @@ -61,6 +61,7 @@ public class FireworkController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class FireworkController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class FireworkController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FireworkNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class FireworkController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class FireworkController extends MobEntityController { } else { super.tick(); } + } } 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 43de2564b..98cfb1dd7 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 @@ -75,6 +75,7 @@ public class FishingHookController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -86,6 +87,7 @@ public class FishingHookController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -98,6 +100,7 @@ public class FishingHookController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FishingHookNPC(this)); } + return super.getBukkitEntity(); } @@ -117,6 +120,7 @@ public class FishingHookController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -141,10 +145,12 @@ public class FishingHookController extends MobEntityController { } catch (IllegalAccessException e) { e.printStackTrace(); } + npc.update(); } else { super.tick(); } + } } 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 a283eba6a..74f73e968 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 @@ -73,6 +73,7 @@ public class ItemController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -84,6 +85,7 @@ public class ItemController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -96,6 +98,7 @@ public class ItemController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemNPC(this)); } + return super.getBukkitEntity(); } @@ -115,6 +118,7 @@ public class ItemController extends AbstractEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -122,6 +126,7 @@ public class ItemController extends AbstractEntityController { if (npc == null) { super.pickup(entityhuman); } + } @Override @@ -131,6 +136,7 @@ public class ItemController extends AbstractEntityController { } else { super.tick(); } + } } 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 492d6afc2..c58fd72d0 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 @@ -73,6 +73,7 @@ public class ItemFrameController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -84,6 +85,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -96,6 +98,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemFrameNPC(this)); } + return super.getBukkitEntity(); } @@ -115,6 +118,7 @@ public class ItemFrameController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -129,6 +133,7 @@ public class ItemFrameController extends MobEntityController { } else { super.tick(); } + } } 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 6bd1793b6..d53fa9647 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 @@ -61,6 +61,7 @@ public class LargeFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LargeFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class LargeFireballController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,9 +116,11 @@ public class LargeFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -124,6 +130,7 @@ public class LargeFireballController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 9579d2457..78eac759c 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 @@ -61,6 +61,7 @@ public class LeashController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class LeashController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class LeashController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LeashNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class LeashController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -117,6 +121,7 @@ public class LeashController extends MobEntityController { } else { super.tick(); } + } } 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 71608809c..0d95b3c95 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 @@ -80,6 +80,7 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -91,6 +92,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LlamaSpitNPC(this)); } + return super.getBukkitEntity(); } @@ -122,6 +125,7 @@ public class LlamaSpitController extends AbstractEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -131,9 +135,11 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } 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 b56133652..ee4e11b24 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 @@ -61,6 +61,7 @@ public class MinecartChestController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartChestNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class MinecartChestController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class MinecartChestController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 cc57bc33c..fa93f49b4 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 @@ -61,6 +61,7 @@ public class MinecartCommandController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartCommandNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class MinecartCommandController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class MinecartCommandController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 e06009e84..46ed15f2f 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 @@ -61,6 +61,7 @@ public class MinecartFurnaceController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartFurnaceNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class MinecartFurnaceController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class MinecartFurnaceController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 95e0f9c3a..6e81c2f00 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 @@ -56,6 +56,7 @@ public class MinecartHopperController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -67,6 +68,7 @@ public class MinecartHopperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class MinecartHopperController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +102,7 @@ public class MinecartHopperController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 fe0229a4a..e90d6fb7e 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 @@ -61,6 +61,7 @@ public class MinecartRideableController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartRideableNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class MinecartRideableController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class MinecartRideableController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 5f2cefd7e..70d5928a7 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 @@ -56,6 +56,7 @@ public class MinecartSpawnerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -67,6 +68,7 @@ public class MinecartSpawnerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class MinecartSpawnerController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +102,7 @@ public class MinecartSpawnerController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 88c3f04b7..468111869 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 @@ -56,6 +56,7 @@ public class MinecartTNTController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -67,6 +68,7 @@ public class MinecartTNTController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class MinecartTNTController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +102,7 @@ public class MinecartTNTController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 ce3579bba..e45d84d6b 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 @@ -61,6 +61,7 @@ public class PaintingController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class PaintingController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class PaintingController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PaintingNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class PaintingController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -117,6 +121,7 @@ public class PaintingController extends MobEntityController { } else { super.tick(); } + } } 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 77553a2f7..2e7139491 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 @@ -61,6 +61,7 @@ public class ShulkerBulletController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ShulkerBulletNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class ShulkerBulletController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class ShulkerBulletController extends MobEntityController { } else { super.tick(); } + } } 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 a9d4fc68a..983cc3ea6 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 @@ -61,6 +61,7 @@ public class SmallFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SmallFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class SmallFireballController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,9 +116,11 @@ public class SmallFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } 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 d0c5ba28d..051f9bf65 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 @@ -61,6 +61,7 @@ public class SnowballController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class SnowballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class SnowballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnowballNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class SnowballController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class SnowballController extends MobEntityController { } else { super.tick(); } + } } 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 1e8a27c59..4137d3287 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 @@ -61,6 +61,7 @@ public class SpectralArrowController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SpectralArrowNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class SpectralArrowController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class SpectralArrowController extends MobEntityController { } else { super.tick(); } + } } 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 efc170b41..a9521b721 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 @@ -61,6 +61,7 @@ public class TNTPrimedController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TNTPrimedNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class TNTPrimedController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class TNTPrimedController extends MobEntityController { } else { super.tick(); } + } } 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 9335654c6..ccc0a27e1 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 @@ -61,6 +61,7 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ThrownExpBottleNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class ThrownExpBottleController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,9 +116,11 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } 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 ce9cc5e18..2eda23262 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 @@ -62,6 +62,7 @@ public class ThrownPotionController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -73,6 +74,7 @@ public class ThrownPotionController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -88,7 +90,9 @@ public class ThrownPotionController extends MobEntityController { } else { NMSImpl.setBukkitEntity(this, new SplashThrownPotionNPC(this)); } + } + return super.getBukkitEntity(); } @@ -108,6 +112,7 @@ public class ThrownPotionController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -117,6 +122,7 @@ public class ThrownPotionController extends MobEntityController { } else { super.tick(); } + } } 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 20bff29f5..49eb91a45 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 @@ -61,6 +61,7 @@ public class ThrownTridentController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ThrownTridentNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class ThrownTridentController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class ThrownTridentController extends MobEntityController { } else { super.tick(); } + } } 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 2cb4ab72c..f9640bf94 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 @@ -61,6 +61,7 @@ public class TippedArrowController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TippedArrowNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class TippedArrowController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class TippedArrowController extends MobEntityController { } else { super.tick(); } + } } 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 aec53a684..7f4de0ae6 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 @@ -61,6 +61,7 @@ public class WitherSkullController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitherSkullNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class WitherSkullController extends MobEntityController { if (vector != null) { super.h(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class WitherSkullController extends MobEntityController { } else { super.tick(); } + } } diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/CitizensBlockBreaker.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/CitizensBlockBreaker.java index f6663655d..e9a72e4f8 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/CitizensBlockBreaker.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/CitizensBlockBreaker.java @@ -48,6 +48,7 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { ItemStack current = getCurrentItem(); return current != null ? current.canDestroySpecialBlock(block) : false; } + } @Override @@ -65,10 +66,13 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { if (i > 0) { f += i * i + 1; } + } + if (handle.hasEffect(MobEffects.FASTER_DIG)) { f *= 1.0F + (handle.getEffect(MobEffects.FASTER_DIG).getAmplifier() + 1) * 0.2F; } + if (handle.hasEffect(MobEffects.SLOWER_DIG)) { float f1 = 1.0F; switch (handle.getEffect(MobEffects.SLOWER_DIG).getAmplifier()) { @@ -85,15 +89,20 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { default: f1 = 8.1E-4F; } + f *= f1; } + if (handle.a(TagsFluid.WATER) && !EnchantmentManager.h(handle)) { f /= 5.0F; } + } + if (!getHandle().onGround) { f /= 5.0F; } + return f; } } \ No newline at end of file diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/EmptyAdvancementDataPlayer.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/EmptyAdvancementDataPlayer.java index bea1cf80e..bd17f5cfe 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/EmptyAdvancementDataPlayer.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/EmptyAdvancementDataPlayer.java @@ -64,6 +64,7 @@ public class EmptyAdvancementDataPlayer extends AdvancementDataPlayer { } catch (Throwable e) { e.printStackTrace(); } + } private static final MethodHandle G = NMS.getGetter(AdvancementDataPlayer.class, "g"); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/ForwardingNPCHolder.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/ForwardingNPCHolder.java index 8b1232189..382b554a9 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/ForwardingNPCHolder.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/ForwardingNPCHolder.java @@ -17,6 +17,7 @@ public interface ForwardingNPCHolder extends NPCHolder, Entity { () -> Joiner.on(' ').join("ForwardingNPCHolder with an improper bukkit entity", this, handle)); return null; } + return ((NPCHolder) handle).getNPC(); } } diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSImpl.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSImpl.java index 7c3087baa..204f5122f 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSImpl.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSImpl.java @@ -337,17 +337,21 @@ public class NMSImpl implements NMSBridge { viewDistance = (int) PLAYER_CHUNK_MAP_VIEW_DISTANCE_GETTER.invoke(chunkMap); PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER.invoke(chunkMap, -1); } + } catch (Throwable e) { e.printStackTrace(); } + boolean success = getHandle(entity).world.addEntity(getHandle(entity), custom); try { if (chunkMap != null) { PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER.invoke(chunkMap, viewDistance); } + } catch (Throwable e) { e.printStackTrace(); } + return success; } @@ -363,12 +367,14 @@ public class NMSImpl implements NMSBridge { } else if (!handle.world.getPlayers().contains(handle)) { ((List) handle.world.getPlayers()).add(handle); } + try { CHUNKMAP_UPDATE_PLAYER_STATUS.invoke(((WorldServer) handle.world).getChunkProvider().playerChunkMap, handle, !remove); } catch (Throwable e) { e.printStackTrace(); } + // PlayerUpdateTask.addOrRemove(entity, remove); } @@ -382,10 +388,12 @@ public class NMSImpl implements NMSBridge { PlayerAnimation.ARM_SWING.play(humanHandle.getBukkitEntity()); return; } + if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).B(target); return; } + AttributeInstance attackDamage = handle.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE); float f = (float) (attackDamage == null ? 1 : attackDamage.getValue()); int i = 0; @@ -393,6 +401,7 @@ public class NMSImpl implements NMSBridge { f += EnchantmentManager.a(handle.getItemInMainHand(), target.getMonsterType()); i += EnchantmentManager.a(Enchantments.KNOCKBACK, handle); } + boolean flag = target.damageEntity(DamageSource.mobAttack(handle), f); if (!flag) return; @@ -401,10 +410,12 @@ public class NMSImpl implements NMSBridge { Math.cos(handle.yaw * Math.PI / 180.0F) * i * 0.5F); handle.setMot(handle.getMot().d(0.6, 1, 0.6)); } + int fireAspectLevel = EnchantmentManager.getFireAspectEnchantmentLevel(handle); if (fireAspectLevel > 0) { target.setOnFire(fireAspectLevel * 4); } + } @Override @@ -416,9 +427,11 @@ public class NMSImpl implements NMSBridge { } catch (Throwable t) { t.printStackTrace(); } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getControllerMove().f = false; } + } @Override @@ -451,14 +464,19 @@ public class NMSImpl implements NMSBridge { if (!changed && !ItemStack.matches(old, curr)) { changed = true; } + equipment.put(slot, curr); } + if (changed) { for (EnumItemSlot slot : EnumItemSlot.values()) { agg.send(new PacketPlayOutEntityEquipment(handle.getId(), slot, equipment.get(slot))); } + } + } + tracker.a(); } @@ -479,7 +497,9 @@ public class NMSImpl implements NMSBridge { if (callback != null) { callback.accept(entity); } + } + linked.clear(); } }; @@ -530,9 +550,11 @@ public class NMSImpl implements NMSBridge { return null; bserver = ((EnderDragonBattle) battleObject).bossBattle; } + } catch (Throwable e) { e.printStackTrace(); } + if (bserver == null) return null; BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10); @@ -541,6 +563,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return ret; } @@ -650,11 +673,13 @@ public class NMSImpl implements NMSBridge { if (SKULL_PROFILE_FIELD == null) return null; } + try { return (GameProfile) SKULL_PROFILE_FIELD.get(meta); } catch (Exception e) { return null; } + } @Override @@ -667,6 +692,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { throw new CommandException(Messages.INVALID_SOUND); } + } @Override @@ -682,6 +708,7 @@ public class NMSImpl implements NMSBridge { EntityLiving handle = NMSImpl.getHandle((LivingEntity) npc.getEntity()); if (handle == null) { } + return DEFAULT_SPEED; // return (float) // handle.getAttributeInstance(GenericAttributes.d).getValue(); @@ -726,7 +753,9 @@ public class NMSImpl implements NMSBridge { } else { ((EntityInsentient) raw).a(PathType.WATER, oldWater + 1F); } + } + navigation.q().b(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; @@ -739,6 +768,7 @@ public class NMSImpl implements NMSBridge { PathPoint pp = navigation.k().a(i); blocks.add(entity.getWorld().getBlockAt(pp.a, pp.b, pp.c)); } + return blocks; } @@ -758,13 +788,16 @@ public class NMSImpl implements NMSBridge { List blocks = getBlocks(entity, navigation); Util.sendBlockChanges(blocks, null); } + if (oldWater >= 0) { if (raw instanceof EntityPlayer) { ((EntityHumanNPC) raw).a(PathType.WATER, oldWater); } else { ((EntityInsentient) raw).a(PathType.WATER, oldWater); } + } + stopNavigation(navigation); } @@ -779,12 +812,15 @@ public class NMSImpl implements NMSBridge { SIZE_FIELD_SETTER.invoke(handle, new EntitySize(Math.min(0.99F, size.width), size.height, false)); } + } catch (Throwable e) { e.printStackTrace(); } + if (!function.apply(navigation)) { reason = CancelReason.STUCK; } + try { SIZE_FIELD_SETTER.invoke(handle, size); } catch (Throwable e) { @@ -792,11 +828,14 @@ public class NMSImpl implements NMSBridge { // minecraft requires that an entity fit onto both blocks if width >= 1f, but we'd prefer to // make it just fit on 1 so hack around it a bit. } + lastSpeed = params.speed(); } + if (params.debug() && !NMSImpl.isNavigationFinished(navigation)) { Util.sendBlockChanges(getBlocks(entity, navigation), Material.DANDELION); } + navigation.a((double) params.speed()); return NMSImpl.isNavigationFinished(navigation); } @@ -1009,30 +1048,37 @@ public class NMSImpl implements NMSBridge { if (zDiff < 0.0) { yaw += Math.abs(180 - yaw) * 2; } + if (handle instanceof EntityEnderDragon) { yaw = Util.getDragonYaw(handle.getBukkitEntity(), xDiff, zDiff); } else { yaw = yaw - 90; } + if (headOnly) { setHeadYaw(entity, (float) yaw); } else { look(entity, (float) yaw, (float) pitch); } + return; } + if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(to.getX(), to.getY(), to.getZ(), ((EntityInsentient) handle).dW(), ((EntityInsentient) handle).dU()); while (((EntityLiving) handle).aK >= 180F) { ((EntityLiving) handle).aK -= 360F; } + while (((EntityLiving) handle).aK < -180F) { ((EntityLiving) handle).aK += 360F; } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1045,18 +1091,22 @@ public class NMSImpl implements NMSBridge { } else { look(from, to.getLocation(), false, true); } + } else if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(target, ((EntityInsentient) handle).dW(), ((EntityInsentient) handle).dU()); while (((EntityLiving) handle).aK >= 180F) { ((EntityLiving) handle).aK -= 360F; } + while (((EntityLiving) handle).aK < -180F) { ((EntityLiving) handle).aK += 360F; } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1098,7 +1148,9 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return super.getBukkitView(); } + } + return this.bukkitEntity; } }; @@ -1145,11 +1197,13 @@ public class NMSImpl implements NMSBridge { if (key == null || type == null) { continue; } + CITIZENS_ENTITY_TYPES.put(clazz, type); int code = ENTITY_REGISTRY.a(type); ENTITY_REGISTRY.put(code, key, type); return; } + throw new IllegalArgumentException("unable to find valid entity superclass for class " + clazz.toString()); } @@ -1188,6 +1242,7 @@ public class NMSImpl implements NMSBridge { hook.hooked = null; hook.getBukkitEntity().remove(); } + } @Override @@ -1202,6 +1257,7 @@ public class NMSImpl implements NMSBridge { if (getHandle(entity) instanceof EntityHumanNPC) { ((EntityHumanNPC) getHandle(entity)).setTracked(replace); } + } @Override @@ -1211,9 +1267,11 @@ public class NMSImpl implements NMSBridge { if (bodyYaw == null) { bodyYaw = handle.yaw; } + if (pitch == null) { pitch = handle.pitch; } + List> toSend = Lists.newArrayList(); if (position) { EntityTracker entry = ((WorldServer) handle.world).getChunkProvider().playerChunkMap.trackedEntities @@ -1225,6 +1283,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + Vec3D pos = handle.getPositionVector().d(ete.b()); toSend.add(new PacketPlayOutRelEntityMoveLook(handle.getId(), (short) pos.x, (short) pos.y, (short) pos.z, (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); @@ -1232,9 +1291,11 @@ public class NMSImpl implements NMSBridge { toSend.add(new PacketPlayOutEntityLook(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); } + if (headYaw != null) { toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F))); } + sendPacketsNearby(null, from.getLocation(), toSend, 64); } @@ -1258,6 +1319,7 @@ public class NMSImpl implements NMSBridge { entities[i] = (EntityPlayer) skinnable; i++; } + NMSImpl.sendPacket(recipient, new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, entities)); } @@ -1278,12 +1340,14 @@ public class NMSImpl implements NMSBridge { if (TEAM_FIELD == null) { TEAM_FIELD = NMS.getGetter(team.getClass(), "team"); } + try { ScoreboardTeam nmsTeam = (ScoreboardTeam) TEAM_FIELD.invoke(team); sendPacket(recipient, new PacketPlayOutScoreboardTeam(nmsTeam, mode)); } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1319,6 +1383,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).setMoveDestination(x, y, z, speed); } + } @Override @@ -1331,6 +1396,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable ex) { ex.printStackTrace(); } + } @Override @@ -1350,6 +1416,7 @@ public class NMSImpl implements NMSBridge { if (!(handle instanceof EntityHuman)) { handle.aI = yaw; } + handle.aK = yaw; } @@ -1395,9 +1462,11 @@ public class NMSImpl implements NMSBridge { npc.data().get("flying-nogravity-float")); npc.data().remove("flying-nogravity-float"); } + } catch (Throwable t) { t.printStackTrace(); } + } @Override @@ -1427,11 +1496,13 @@ public class NMSImpl implements NMSBridge { if (SET_PROFILE_METHOD == null) return; } + try { SET_PROFILE_METHOD.invoke(meta, profile); } catch (Throwable t) { t.printStackTrace(); } + } @Override @@ -1445,6 +1516,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).setShouldJump(); } + } @Override @@ -1456,6 +1528,7 @@ public class NMSImpl implements NMSBridge { SET_POSE.invoke(getHandle(ocelot), pose); } catch (Throwable e) { } + } @Override @@ -1468,12 +1541,14 @@ public class NMSImpl implements NMSBridge { if (entity instanceof Player) { ((Player) entity).setSneaking(sneaking); } + EntityPose pose = sneaking ? EntityPose.CROUCHING : EntityPose.STANDING; try { ENTITY_SETPOSE.invoke(getHandle(entity), pose); } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1504,6 +1579,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return false; } @@ -1516,6 +1592,7 @@ public class NMSImpl implements NMSBridge { field.invoke(null, ENTITY_REGISTRY.get()); } catch (Throwable e) { } + } @Override @@ -1525,6 +1602,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1540,6 +1618,7 @@ public class NMSImpl implements NMSBridge { if (RANDOM.nextFloat() <= 0.85F && (handle.isInWater() || handle.aC())) { handle.setMot(handle.getMot().getX(), handle.getMot().getY() + power, handle.getMot().getZ()); } + } @Override @@ -1626,6 +1705,7 @@ public class NMSImpl implements NMSBridge { menuType = Containers.CRAFTING; break; } + Container active = handle.activeContainer; handle.playerConnection .sendPacket(new PacketPlayOutOpenWindow(active.windowId, menuType, new ChatComponentText(newTitle))); @@ -1648,6 +1728,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1659,8 +1740,10 @@ public class NMSImpl implements NMSBridge { if (en instanceof EntityHumanNPC) { ((EntityHumanNPC) en).updatePathfindingRange(pathfindingRange); } + return; } + if (PATHFINDING_RANGE == null) return; EntityInsentient handle = (EntityInsentient) en; @@ -1671,6 +1754,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } private static class CitizensInventoryAnvil extends CraftInventoryAnvil implements ForwardingInventory { @@ -1780,6 +1864,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + float oldw = size.width; float oldl = size.height; cb.accept(datawatcherobject); @@ -1787,6 +1872,7 @@ public class NMSImpl implements NMSBridge { living.setPosition(living.locX() - 0.01, living.locY(), living.locZ() - 0.01); living.setPosition(living.locX() + 0.01, living.locY(), living.locZ() + 0.01); } + } public static void clearGoals(NPC npc, PathfinderGoalSelector... goalSelectors) { @@ -1799,14 +1885,17 @@ public class NMSImpl implements NMSBridge { if (!list.isEmpty()) { npc.data().set("selector" + i, Lists.newArrayList(list)); } + list.clear(); } catch (Exception e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } catch (Throwable e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } + i++; } + } private static CompoundTag convertNBT(net.minecraft.server.v1_15_R1.NBTTagCompound tag) { @@ -1816,6 +1905,7 @@ public class NMSImpl implements NMSBridge { for (String key : tag.getKeys()) { tags.put(key, convertNBT(key, tag.get(key))); } + return new CompoundTag("", tags); } @@ -1846,8 +1936,10 @@ public class NMSImpl implements NMSBridge { for (int i = 0; i < list.size(); i++) { converted.add(convertNBT("", list.get(i))); } + return new ListTag(key, tagType, converted); } + } else if (base instanceof net.minecraft.server.v1_15_R1.NBTTagCompound) return convertNBT((net.minecraft.server.v1_15_R1.NBTTagCompound) base); else if (base instanceof net.minecraft.server.v1_15_R1.NBTTagEnd) @@ -1865,6 +1957,7 @@ public class NMSImpl implements NMSBridge { d0 = 0.01D; entity.fallDistance = 0.0F; } + double d1; float f1; double d2; @@ -1880,16 +1973,19 @@ public class NMSImpl implements NMSBridge { if (!entity.isNoGravity()) { entity.setMot(entity.getMot().add(0.0D, -d0 / 4.0D, 0.0D)); } + vec3d4 = entity.getMot(); if (entity.positionChanged && entity.e(vec3d4.x, vec3d4.y + 0.6000000238418579D - entity.locY() + d1, vec3d4.z)) { entity.setMot(vec3d4.x, 0.30000001192092896D, vec3d4.z); } + } else if (entity.isGliding()) { vec3d4 = entity.getMot(); if (vec3d4.y > -0.5D) { entity.fallDistance = 1.0F; } + vec3d5 = entity.getLookDirection(); f1 = entity.pitch * 0.017453292F; double d3 = Math.sqrt(vec3d5.x * vec3d5.x + vec3d5.z * vec3d5.z); @@ -1903,14 +1999,17 @@ public class NMSImpl implements NMSBridge { d5 = vec3d4.y * -0.1D * f3; vec3d4 = vec3d4.add(vec3d5.x * d5 / d3, d5, vec3d5.z * d5 / d3); } + if (f1 < 0.0F && d3 > 0.0D) { d5 = d4 * -MathHelper.sin(f1) * 0.04D; vec3d4 = vec3d4.add(-vec3d5.x * d5 / d3, d5 * 3.2D, -vec3d5.z * d5 / d3); } + if (d3 > 0.0D) { vec3d4 = vec3d4.add((vec3d5.x / d3 * d4 - vec3d4.x) * 0.1D, 0.0D, (vec3d5.z / d3 * d4 - vec3d4.z) * 0.1D); } + entity.setMot(vec3d4.d(0.9900000095367432D, 0.9800000190734863D, 0.9900000095367432D)); entity.move(EnumMoveType.SELF, entity.getMot()); if (entity.positionChanged && !entity.world.isClientSide) { @@ -1923,13 +2022,17 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + entity.damageEntity(DamageSource.FLY_INTO_WALL, f4); } + } + if (entity.onGround && !entity.world.isClientSide && entity.getFlag(7) && !CraftEventFactory.callToggleGlideEvent(entity, false).isCancelled()) { entity.setFlag(7, false); } + } else { BlockPosition blockposition = new BlockPosition(entity.locX(), entity.getBoundingBox().minY - 0.5D, entity.locZ()); @@ -1941,15 +2044,18 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + entity.move(EnumMoveType.SELF, entity.getMot()); vec3d2 = entity.getMot(); try { if ((entity.positionChanged || (boolean) JUMP_FIELD.invoke(entity)) && entity.isClimbing()) { vec3d2 = new Vec3D(vec3d2.x, 0.2D, vec3d2.z); } + } catch (Throwable e) { e.printStackTrace(); } + double d7 = vec3d2.y; if (entity.hasEffect(MobEffects.LEVITATION)) { d7 += (0.05D * (entity.getEffect(MobEffects.LEVITATION).getAmplifier() + 1) - vec3d2.y) * 0.2D; @@ -1960,11 +2066,14 @@ public class NMSImpl implements NMSBridge { } else { d7 = 0.0D; } + } else if (!entity.isNoGravity()) { d7 -= d0; } + entity.setMot(vec3d2.x * f1, d7 * 0.9800000190734863D, vec3d2.z * f1); } + } else { d1 = entity.locY(); f1 = entity.isSprinting() ? 0.9F : 0.8F; @@ -1973,22 +2082,27 @@ public class NMSImpl implements NMSBridge { if (f2 > 3.0F) { f2 = 3.0F; } + if (!entity.onGround) { f2 *= 0.5F; } + if (f2 > 0.0F) { f1 += (0.54600006F - f1) * f2 / 3.0F; f += (entity.dt() - f) * f2 / 3.0F; } + if (entity.hasEffect(MobEffects.DOLPHINS_GRACE)) { f1 = 0.96F; } + entity.a(f, vec3d); entity.move(EnumMoveType.SELF, entity.getMot()); vec3d5 = entity.getMot(); if (entity.positionChanged && entity.isClimbing()) { vec3d5 = new Vec3D(vec3d5.x, 0.2D, vec3d5.z); } + entity.setMot(vec3d5.d(f1, 0.800000011920929D, f1)); if (!entity.isNoGravity() && !entity.isSprinting()) { vec3d2 = entity.getMot(); @@ -1997,15 +2111,20 @@ public class NMSImpl implements NMSBridge { } else { d2 = vec3d2.y - d0 / 16.0D; } + entity.setMot(vec3d2.x, d2, vec3d2.z); } + vec3d2 = entity.getMot(); if (entity.positionChanged && entity.e(vec3d2.x, vec3d2.y + 0.6000000238418579D - entity.locY() + d1, vec3d2.z)) { entity.setMot(vec3d2.x, 0.30000001192092896D, vec3d2.z); } + } + } + entity.aC = entity.aD; d0 = entity.locX() - entity.lastX; double d8 = entity.locZ() - entity.lastZ; @@ -2014,6 +2133,7 @@ public class NMSImpl implements NMSBridge { if (f > 1.0F) { f = 1.0F; } + entity.aD += (f - entity.aD) * 0.4F; entity.aE += entity.aD; } @@ -2024,6 +2144,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -2059,6 +2180,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -2095,6 +2217,7 @@ public class NMSImpl implements NMSBridge { if (mat != null) { minecart.setDisplayBlock(Block.getByCombinedId(mat.getId()).getBlock().getBlockData()); } + minecart.setDisplayBlockOffset(offset); } @@ -2111,6 +2234,7 @@ public class NMSImpl implements NMSBridge { handle.setMot(handle.getMot().a(0.9)); return true; } + return false; } @@ -2121,6 +2245,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void restoreGoals(NPC npc, PathfinderGoalSelector... goalSelectors) { @@ -2135,13 +2260,16 @@ public class NMSImpl implements NMSBridge { if (old != null) { list.addAll(old); } + } catch (Exception e) { Messaging.logTr(Messages.ERROR_RESTORING_GOALS, e.getLocalizedMessage()); } catch (Throwable e) { Messaging.logTr(Messages.ERROR_RESTORING_GOALS, e.getLocalizedMessage()); } + i++; } + } public static void sendPacket(Player player, Packet packet) { @@ -2168,10 +2296,13 @@ public class NMSImpl implements NMSBridge { || location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) { continue; } + for (Packet packet : packets) { NMSImpl.sendPacket(player, packet); } + } + } public static void sendPacketsNearby(Player from, Location location, Packet... packets) { @@ -2184,6 +2315,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setBukkitEntity(Entity entity, CraftEntity bukkitEntity) { @@ -2192,6 +2324,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setLookControl(EntityInsentient mob, ControllerLook control) { @@ -2200,6 +2333,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setNotInSchool(EntityFish entity) { @@ -2207,9 +2341,11 @@ public class NMSImpl implements NMSBridge { if (ENTITY_FISH_NUM_IN_SCHOOL != null) { ENTITY_FISH_NUM_IN_SCHOOL.invoke(entity, 2); } + } catch (Throwable ex) { ex.printStackTrace(); } + } public static void setSize(Entity entity, boolean justCreated) { @@ -2232,10 +2368,13 @@ public class NMSImpl implements NMSBridge { float f = entitysize.width - entitysize1.width; entity.move(EnumMoveType.SELF, new Vec3D(f, 0.0D, f)); } + } + } catch (Throwable e) { e.printStackTrace(); } + } public static void stopNavigation(NavigationAbstract navigation) { @@ -2253,6 +2392,7 @@ public class NMSImpl implements NMSBridge { } else if (entity instanceof EntityHumanNPC) { ((EntityHumanNPC) entity).updateAI(); } + } public static void updateMinecraftAIState(NPC npc, EntityInsentient entity) { @@ -2265,6 +2405,7 @@ public class NMSImpl implements NMSBridge { getBehaviorMap(entity).putAll(behavior); npc.data().remove("behavior-map"); } + } else { NMSImpl.clearGoals(npc, entity.goalSelector, entity.targetSelector); TreeMap behaviorMap = getBehaviorMap(entity); @@ -2272,7 +2413,9 @@ public class NMSImpl implements NMSBridge { npc.data().set("behavior-map", new TreeMap(behaviorMap)); behaviorMap.clear(); } + } + } public static void updateNavigation(NavigationAbstract navigation) { @@ -2352,6 +2495,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage()); } + try { ENDERMAN_ANGRY = (DataWatcherObject) NMS.getField(EntityEnderman.class, "bw").get(null); } catch (IllegalArgumentException e) { @@ -2359,5 +2503,6 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } } diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PitchableLookControl.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PitchableLookControl.java index 76c4c31d3..f49c53946 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PitchableLookControl.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PitchableLookControl.java @@ -18,6 +18,7 @@ public class PitchableLookControl extends ControllerLook { } else { resetOnTick = () -> true; } + } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerAnimationImpl.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerAnimationImpl.java index 9317fd293..af805681b 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerAnimationImpl.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerAnimationImpl.java @@ -20,6 +20,7 @@ public class PlayerAnimationImpl { playDefaultAnimation(player, to, DEFAULTS.get(animation)); return; } + switch (animation) { case SNEAK: player.getBukkitEntity().setSneaking(true); @@ -50,6 +51,7 @@ public class PlayerAnimationImpl { default: throw new UnsupportedOperationException(); } + } protected static void playDefaultAnimation(EntityPlayer player, Iterable to, int code) { @@ -61,6 +63,7 @@ public class PlayerAnimationImpl { for (Player player : to) { NMSImpl.sendPacket(player, packet); } + } private static EnumMap DEFAULTS = Maps.newEnumMap(PlayerAnimation.class); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerControllerMove.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerControllerMove.java index b6a41257d..38b5a9adb 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerControllerMove.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerControllerMove.java @@ -45,6 +45,7 @@ public class PlayerControllerMove extends ControllerMove { this.a.bb = 0.0F; return; } + float f = (float) Math.toDegrees(Math.atan2(d1, d0)) - 90.0F; this.a.yaw = a(this.a.yaw, f, 90.0F); NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw); @@ -62,8 +63,11 @@ public class PlayerControllerMove extends ControllerMove { } else { ((EntityInsentient) this.a).getControllerJump().jump(); } + } + } + } @Override @@ -81,15 +85,18 @@ public class PlayerControllerMove extends ControllerMove { if (f3 > f2) { f3 = f2; } + if (f3 < -f2) { f3 = -f2; } + float f4 = f + f3; if (f4 < 0.0F) { f4 += 360.0F; } else if (f4 > 360.0F) { f4 -= 360.0F; } + return f4; } diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerNavigation.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerNavigation.java index 800686169..6a18f9f94 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerNavigation.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerNavigation.java @@ -88,21 +88,26 @@ public class PlayerNavigation extends NavigationAbstract { if (this.b.getType(var0).isAir()) { for (var2 = var0.down(); var2.getY() > 0 && this.b.getType(var2).isAir(); var2 = var2.down()) { } + if (var2.getY() > 0) return supera(var2.up(), var1); while (var2.getY() < this.b.getBuildHeight() && this.b.getType(var2).isAir()) { var2 = var2.up(); } + var0 = var2; } + if (!this.b.getType(var0).getMaterial().isBuildable()) return supera(var0, var1); else { for (var2 = var0.up(); var2.getY() < this.b.getBuildHeight() && this.b.getType(var2).getMaterial().isBuildable(); var2 = var2.up()) { } + return supera(var2, var1); } + } public void a(boolean var0) { @@ -163,10 +168,14 @@ public class PlayerNavigation extends NavigationAbstract { || var19 == PathType.DAMAGE_OTHER) return false; } + } + } + return true; } + } @Override @@ -178,6 +187,7 @@ public class PlayerNavigation extends NavigationAbstract { if (!var0.a(this.c)) { this.c = var0; } + if (this.m()) return false; else { @@ -191,8 +201,11 @@ public class PlayerNavigation extends NavigationAbstract { this.g = var3; return true; } + } + } + } @Override @@ -213,6 +226,7 @@ public class PlayerNavigation extends NavigationAbstract { this.q = var8.k(); this.r = var3; } + return var8; } } @@ -228,9 +242,11 @@ public class PlayerNavigation extends NavigationAbstract { if (var0.distanceSquared(this.g) < 2.25D) { this.o(); } + this.f = this.e; this.g = var0; } + if (this.c != null && !this.c.b()) { Vec3D var1 = this.c.g(); if (var1.equals(this.h)) { @@ -240,14 +256,17 @@ public class PlayerNavigation extends NavigationAbstract { double var2 = var0.f(this.h); this.k = this.a.dt() > 0.0F ? var2 / this.a.dt() * 1000.0D : 0.0D; } + if (this.k > 0.0D && this.i > this.k * 3.0D) { this.h = Vec3D.a; this.i = 0L; this.k = 0.0D; this.o(); } + this.j = SystemUtils.getMonotonicMillis(); } + } @Override @@ -275,9 +294,11 @@ public class PlayerNavigation extends NavigationAbstract { if (var7 >= 0.0D) { ++var19; } + if (var9 >= 0.0D) { ++var21; } + var19 /= var7; var21 /= var9; int var23 = var7 < 0.0D ? -1 : 1; @@ -298,10 +319,14 @@ public class PlayerNavigation extends NavigationAbstract { var6 += var24; var28 = var26 - var6; } + } while (this.a(var5, MathHelper.floor(var0.y), var6, var2, var3, var4, var0, var7, var9)); + } + return false; } + } @Override @@ -318,7 +343,9 @@ public class PlayerNavigation extends NavigationAbstract { if (var0.a(var2, this.c.e() - this.c.f())) { this.j(); } + } + } private boolean b(int var0, int var1, int var2, int var3, int var4, int var5, Vec3D var6, double var7, @@ -335,6 +362,7 @@ public class PlayerNavigation extends NavigationAbstract { var13 = var11.getX() + 0.5D - var6.x; var15 = var11.getZ() + 0.5D - var6.z; } while (var13 * var7 + var15 * var9 < 0.0D || this.b.getType(var11).a(this.b, var11, PathMode.LAND)); + return false; } @@ -344,6 +372,7 @@ public class PlayerNavigation extends NavigationAbstract { if (this.m) { this.j(); } + if (!this.m()) { Vec3D var0; if (this.a()) { @@ -355,7 +384,9 @@ public class PlayerNavigation extends NavigationAbstract { && MathHelper.floor(var0.z) == MathHelper.floor(var1.z)) { this.c.c(this.c.f() + 1); } + } + if (!this.m()) { var0 = this.c.a(this.a); BlockPosition var1 = new BlockPosition(var0); @@ -363,7 +394,9 @@ public class PlayerNavigation extends NavigationAbstract { this.b.getType(var1.down()).isAir() ? var0.y : PathfinderNormal.a(this.b, var1), var0.z, this.d); } + } + } public void c(boolean var0) { @@ -391,8 +424,11 @@ public class PlayerNavigation extends NavigationAbstract { this.c.b(var0); return; } + } + } + } @Override @@ -419,9 +455,11 @@ public class PlayerNavigation extends NavigationAbstract { this.n = this.b.getTime(); this.m = false; } + } else { this.m = true; } + } @Override @@ -438,6 +476,7 @@ public class PlayerNavigation extends NavigationAbstract { && Math.abs(this.a.locY() - var1.y) < 1.0D) { this.c.c(this.c.f() + 1); } + this.a(var0); } @@ -491,9 +530,13 @@ public class PlayerNavigation extends NavigationAbstract { if (var2 != null && var1.b >= var2.b) { this.c.a(var0 + 1, var2.a(var2.a, var1.b + 1, var2.c)); } + } + } + } + } private int t() { @@ -508,9 +551,11 @@ public class PlayerNavigation extends NavigationAbstract { var1 = this.b.getType(new BlockPosition(this.a.locX(), var0, this.a.locZ())).getBlock(); ++var2; } while (var2 <= 16); + return MathHelper.floor(this.a.locY()); } else return MathHelper.floor(this.a.locY() + 0.5D); + } private static EntityInsentient getDummyInsentient(EntityHumanNPC from, World world) { diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerPathfinder.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerPathfinder.java index 54a78bbd2..1f118887c 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerPathfinder.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerPathfinder.java @@ -42,7 +42,10 @@ public class PlayerPathfinder extends Pathfinder { this.a.a(); this.e.a(var0, var1); PathPoint var6 = this.e.b(); - Map var7 = var2.stream().collect(Collectors.toMap(var0x -> this.e.a((double) var0x.getX(), (double) var0x.getY(), (double) var0x.getZ()), Function.identity())); + Map var7 = var2.stream() + .collect(Collectors.toMap( + var0x -> this.e.a((double) var0x.getX(), (double) var0x.getY(), (double) var0x.getZ()), + Function.identity())); PathEntity var8 = this.a(var6, var7, var3, var4, var5); this.e.a(); return var8; @@ -54,7 +57,10 @@ public class PlayerPathfinder extends Pathfinder { this.a.a(); this.e.a(var0, var1); PathPoint var6 = this.e.b(); - Map var7 = var2.stream().collect(Collectors.toMap(var0x -> this.e.a((double) var0x.getX(), (double) var0x.getY(), (double) var0x.getZ()), Function.identity())); + Map var7 = var2.stream() + .collect(Collectors.toMap( + var0x -> this.e.a((double) var0x.getX(), (double) var0x.getY(), (double) var0x.getZ()), + Function.identity())); PathEntity var8 = this.a(var6, var7, var3, var4, var5); this.e.a(); return var8; @@ -68,6 +74,7 @@ public class PlayerPathfinder extends Pathfinder { var4 = var4.h; var3.add(0, var4); } + return new PathEntity(var3, var1, var2); } @@ -86,12 +93,14 @@ public class PlayerPathfinder extends Pathfinder { if (var6 >= var7) { break; } + PathPoint var8 = this.a.c(); var8.i = true; var5.stream().filter(var2x -> (var8.c(var2x) <= var3)).forEach(PathDestination::e); if (var5.stream().anyMatch(PathDestination::f)) { break; } + if (var8.a(var0) < var2) { int var9 = this.e.a(this.c, var8); for (int var10 = 0; var10 < var9; ++var10) { @@ -109,16 +118,23 @@ public class PlayerPathfinder extends Pathfinder { var11.g = var11.e + var11.f; this.a.a(var11); } + } + } + } + } + Stream var8; if (var5.stream().anyMatch(PathDestination::f)) { - var8 = var5.stream().filter(PathDestination::f).map(var1x -> this.a(var1x.d(), var1.get(var1x), true)).sorted(Comparator.comparingInt(PathEntity::e)); + var8 = var5.stream().filter(PathDestination::f).map(var1x -> this.a(var1x.d(), var1.get(var1x), true)) + .sorted(Comparator.comparingInt(PathEntity::e)); } else { var8 = getFallbackDestinations(var1, var5); } + Optional var9 = var8.findFirst(); if (!var9.isPresent()) return null; @@ -126,6 +142,7 @@ public class PlayerPathfinder extends Pathfinder { PathEntity var10 = (PathEntity) var9.get(); return var10; } + } private float a(PathPoint var0, Set var1) { @@ -136,6 +153,7 @@ public class PlayerPathfinder extends Pathfinder { var5 = var0.a(var6); var6.a(var5, var0); } + return var2; } @@ -143,6 +161,7 @@ public class PlayerPathfinder extends Pathfinder { Set var5) { if (Setting.DISABLE_MC_NAVIGATION_FALLBACK.asBoolean()) return Stream.empty(); - return var5.stream().map(var1x -> this.a(var1x.d(), var1.get(var1x), false)).sorted(Comparator.comparingDouble(PathEntity::l).thenComparingInt(PathEntity::e)); + return var5.stream().map(var1x -> this.a(var1x.d(), var1.get(var1x), false)) + .sorted(Comparator.comparingDouble(PathEntity::l).thenComparingInt(PathEntity::e)); } } diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerPathfinderAbstract.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerPathfinderAbstract.java index 8f78f9309..64d6965f5 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerPathfinderAbstract.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerPathfinderAbstract.java @@ -42,7 +42,8 @@ public abstract class PlayerPathfinderAbstract extends PathfinderAbstract { @Override protected PathPoint a(int var0, int var1, int var2) { - return (PathPoint) this.c.computeIfAbsent(PathPoint.b(var0, var1, var2), var3 -> new PathPoint(var0, var1, var2)); + return (PathPoint) this.c.computeIfAbsent(PathPoint.b(var0, var1, var2), + var3 -> new PathPoint(var0, var1, var2)); } @Override diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerPathfinderNormal.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerPathfinderNormal.java index 7eb8f8232..9ec427aec 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerPathfinderNormal.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerPathfinderNormal.java @@ -71,16 +71,20 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var4 == PathType.DOOR_WOOD_CLOSED && var1 && var2) { var4 = PathType.WALKABLE; } + if (var4 == PathType.DOOR_OPEN && !var2) { var4 = PathType.BLOCKED; } + if (var4 == PathType.RAIL && !(var0.getType(var3).getBlock() instanceof BlockMinecartTrackAbstract) && !(var0.getType(var3.down()).getBlock() instanceof BlockMinecartTrackAbstract)) { var4 = PathType.FENCE; } + if (var4 == PathType.LEAVES) { var4 = PathType.BLOCKED; } + return var4; } @@ -108,12 +112,15 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var4.a(var18) >= var4.a(var15)) { var15 = var18; } + } + if (var11 == PathType.OPEN && var4.a(var15) == 0.0F) return PathType.OPEN; else return var15; } + } @Override @@ -136,12 +143,15 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var4.a(var18) >= var4.a(var15)) { var15 = var18; } + } + if (var11 == PathType.OPEN && var4.a(var15) == 0.0F) return PathType.OPEN; else return var15; } + } public PathType a(IBlockAccess var0, int var1, int var2, int var3, int var4, int var5, int var6, boolean var7, @@ -157,10 +167,14 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var12 == 0 && var13 == 0 && var14 == 0) { var10 = var18; } + var9.add(var18); } + } + } + return var10; } @@ -179,6 +193,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var7.l = var11; var7.k = Math.max(var7.k, var12); } + if ((var11 != PathType.WALKABLE)) { if ((var7 == null || var7.k < 0.0F) && var3 > 0 && var11 != PathType.FENCE && var11 != PathType.TRAPDOOR) { @@ -195,8 +210,11 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (!this.a.getCubes(this.b, var19)) { var7 = null; } + } + } + if (var11 == PathType.WATER && !this.e()) { if (this.a(this.b, var0, var1 - 1, var2) != PathType.WATER) return var7; @@ -209,7 +227,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var7.l = var11; var7.k = Math.max(var7.k, this.b.a(var11)); } + } + if (var11 == PathType.OPEN) { AxisAlignedBB var15 = new AxisAlignedBB(var0 - var13 + 0.5D, var1 + 0.001D, var2 - var13 + 0.5D, var0 + var13 + 0.5D, var1 + this.b.getHeight(), var2 + var13 + 0.5D); @@ -223,7 +243,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var7.k = Math.max(var7.k, var12); return var7; } + } + int var16 = 0; int var17 = var1; while (var11 == PathType.OPEN) { @@ -235,12 +257,14 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var18.k = -1.0F; return var18; } + var18 = this.a(var0, var1, var2); if (var16++ >= this.b.bD()) { var18.l = PathType.BLOCKED; var18.k = -1.0F; return var18; } + var11 = this.a(this.b, var0, var1, var2); var12 = this.b.a(var11); if (var11 != PathType.OPEN && var12 >= 0.0F) { @@ -249,16 +273,22 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var18.k = Math.max(var18.k, var12); break; } + if (var12 < 0.0F) { var18.l = PathType.BLOCKED; var18.k = -1.0F; return var18; } + } + } + } + return var7; } + } private boolean a(PathPoint var0, PathPoint var1, PathPoint var2, PathPoint var3) { @@ -282,40 +312,50 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { } else { var3 = MathHelper.d(Math.max(1.0F, this.b.H)); } + } + double var5 = a(this.a, new BlockPosition(var1.a, var1.b, var1.c)); PathPoint var7 = this.a(var1.a, var1.b, var1.c + 1, var3, var5, EnumDirection.SOUTH); if (var7 != null && !var7.i && var7.k >= 0.0F) { var0[var2++] = var7; } + PathPoint var8 = this.a(var1.a - 1, var1.b, var1.c, var3, var5, EnumDirection.WEST); if (var8 != null && !var8.i && var8.k >= 0.0F) { var0[var2++] = var8; } + PathPoint var9 = this.a(var1.a + 1, var1.b, var1.c, var3, var5, EnumDirection.EAST); if (var9 != null && !var9.i && var9.k >= 0.0F) { var0[var2++] = var9; } + PathPoint var10 = this.a(var1.a, var1.b, var1.c - 1, var3, var5, EnumDirection.NORTH); if (var10 != null && !var10.i && var10.k >= 0.0F) { var0[var2++] = var10; } + PathPoint var11 = this.a(var1.a - 1, var1.b, var1.c - 1, var3, var5, EnumDirection.NORTH); if (this.a(var1, var8, var10, var11)) { var0[var2++] = var11; } + PathPoint var12 = this.a(var1.a + 1, var1.b, var1.c - 1, var3, var5, EnumDirection.NORTH); if (this.a(var1, var9, var10, var12)) { var0[var2++] = var12; } + PathPoint var13 = this.a(var1.a - 1, var1.b, var1.c + 1, var3, var5, EnumDirection.SOUTH); if (this.a(var1, var8, var7, var13)) { var0[var2++] = var13; } + PathPoint var14 = this.a(var1.a + 1, var1.b, var1.c + 1, var3, var5, EnumDirection.SOUTH); if (this.a(var1, var9, var7, var14)) { var0[var2++] = var14; } + return var2; } @@ -331,6 +371,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { ++var0; varx.c(this.b.locX(), var0, this.b.locZ()); } + --var0; } else if (this.b.onGround) { var0 = MathHelper.floor(this.b.locY() + 0.5D); @@ -339,8 +380,10 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { this.b); (this.a.getType(var1).isAir() || this.a.getType(var1).a(this.a, var1, PathMode.LAND)) && var1.getY() > 0; var1 = var1.down()) { } + var0 = var1.up().getY(); } + var1 = new BlockPosition(this.b); PathType var2 = this.a(this.b, var1.getX(), var0, var1.getZ()); if (this.b.a(var2) < 0.0F) { @@ -356,7 +399,9 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (this.b.a(var6) >= 0.0F) return this.a(varb.getX(), varb.getY(), varb.getZ()); } + } + return this.a(var1.getX(), var0, var1.getZ()); } @@ -381,13 +426,19 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var10 == Blocks.SWEET_BERRY_BUSH) { var4 = PathType.DANGER_OTHER; } + } else { var4 = PathType.DANGER_FIRE; } + } + } + } + } + } catch (Throwable var18) { var6 = var18; throw var18; @@ -399,11 +450,15 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { } catch (Throwable var17) { var6.addSuppressed(var17); } + } else { var5.close(); } + } + } + return var4; } @@ -418,19 +473,25 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (var6 == PathType.DAMAGE_FIRE || var5 == Blocks.MAGMA_BLOCK || var5 == Blocks.CAMPFIRE) { var4 = PathType.DAMAGE_FIRE; } + if (var6 == PathType.DAMAGE_CACTUS) { var4 = PathType.DAMAGE_CACTUS; } + if (var6 == PathType.DAMAGE_OTHER) { var4 = PathType.DAMAGE_OTHER; } + if (var6 == PathType.STICKY_HONEY) { var4 = PathType.STICKY_HONEY; } + } + if (var4 == PathType.WALKABLE) { var4 = a(var0, var1, var2, var3, var4); } + return var4; } diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerlistTracker.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerlistTracker.java index c898c4459..0c77423f7 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerlistTracker.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerlistTracker.java @@ -44,12 +44,14 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { if (res == null) { updateLastPlayer(player); } + return res; } }); } catch (Throwable e) { e.printStackTrace(); } + } else { try { Set delegate = super.trackedPlayers; @@ -60,6 +62,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { if (res) { updateLastPlayer(player); } + return res; } @@ -71,7 +74,9 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + } + } public PlayerlistTracker(PlayerChunkMap map, EntityTracker entry) { @@ -87,6 +92,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { Bukkit.getPluginManager().callEvent( new NPCLinkToPlayerEvent(((NPCHolder) tracker).getNPC(), lastUpdatedPlayer.getBukkitEntity())); } + } @Override @@ -110,7 +116,9 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + } + } super.updatePlayer(entityplayer); @@ -122,6 +130,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + return 0; } @@ -131,6 +140,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + return false; } @@ -140,6 +150,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -149,6 +160,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + return 0; } @@ -168,7 +180,9 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { TRACKING_MAP_SETTER = NMS.getFirstSetter(EntityTracker.class, Map.class); TRACKING_MAP_GETTER = NMS.getFirstGetter(EntityTracker.class, Map.class); } + } catch (Exception e) { } + } } diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ArmorStandController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ArmorStandController.java index 5860a25d8..a4c5ec2c9 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ArmorStandController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/ArmorStandController.java @@ -60,6 +60,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { ai = new BasicMobAI(this); } + } @Override @@ -86,6 +87,7 @@ public class ArmorStandController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -97,6 +99,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ArmorStandNPC(this)); } + return super.getBukkitEntity(); } @@ -128,6 +132,7 @@ public class ArmorStandController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -137,6 +142,7 @@ public class ArmorStandController extends MobEntityController { npc.update(); ai.tickAI(); } + } } } 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 1c677b891..27ee76009 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 @@ -59,6 +59,7 @@ public class BatController extends MobEntityController { if (npc != null) { setAsleep(false); } + } @Override @@ -81,6 +82,7 @@ public class BatController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -94,6 +96,7 @@ public class BatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -104,6 +107,7 @@ public class BatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,6 +125,7 @@ public class BatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BatNPC(this)); } + return super.getBukkitEntity(); } @@ -155,6 +160,7 @@ public class BatController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -171,8 +177,10 @@ public class BatController extends MobEntityController { if (npc.useMinecraftAI()) { super.mobTick(); } + npc.update(); } + } @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 285a1017e..89f463e12 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 @@ -78,6 +78,7 @@ public class BeeController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -91,6 +92,7 @@ public class BeeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -101,6 +103,7 @@ public class BeeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -118,6 +121,7 @@ public class BeeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BeeNPC(this)); } + return super.getBukkitEntity(); } @@ -152,6 +156,7 @@ public class BeeController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -168,8 +173,10 @@ public class BeeController extends MobEntityController { if (npc.useMinecraftAI()) { super.mobTick(); } + npc.update(); } + } @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 64ada45c2..7a9242e05 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 @@ -78,6 +78,7 @@ public class BlazeController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -91,6 +92,7 @@ public class BlazeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -101,6 +103,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -118,6 +121,7 @@ public class BlazeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BlazeNPC(this)); } + return super.getBukkitEntity(); } @@ -152,6 +156,7 @@ public class BlazeController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -165,6 +170,7 @@ public class BlazeController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 32dd286b1..51f27eeff 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 @@ -72,6 +72,7 @@ public class CatController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -80,6 +81,7 @@ public class CatController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -97,6 +99,7 @@ public class CatController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -117,6 +120,7 @@ public class CatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -127,6 +131,7 @@ public class CatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -146,6 +151,7 @@ public class CatController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -153,6 +159,7 @@ public class CatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CatNPC(this)); } + return super.getBukkitEntity(); } @@ -187,6 +194,7 @@ public class CatController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -209,6 +217,7 @@ public class CatController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 5c7e22fdd..a9dd685c8 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 @@ -70,6 +70,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -87,6 +88,7 @@ public class CaveSpiderController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -107,6 +109,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -117,6 +120,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -136,6 +140,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -143,6 +148,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CaveSpiderNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +183,7 @@ public class CaveSpiderController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -199,6 +206,7 @@ public class CaveSpiderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -215,6 +223,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } 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 e49d15e4e..5eba7e82d 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 @@ -72,6 +72,7 @@ public class ChickenController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -80,6 +81,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -97,6 +99,7 @@ public class ChickenController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -117,6 +120,7 @@ public class ChickenController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -127,6 +131,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -146,6 +151,7 @@ public class ChickenController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -153,6 +159,7 @@ public class ChickenController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ChickenNPC(this)); } + return super.getBukkitEntity(); } @@ -187,6 +194,7 @@ public class ChickenController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -209,6 +217,7 @@ public class ChickenController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -216,6 +225,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { this.eggLayTime = 100; // egg timer } + super.movementTick(); } 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 c74e6dc88..72f05e83d 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 @@ -71,6 +71,7 @@ public class CodController extends MobEntityController { this.oldMoveController = this.moveController; this.moveController = new ControllerMove(this); } + } @Override @@ -83,6 +84,7 @@ public class CodController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -100,6 +102,7 @@ public class CodController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -130,6 +133,7 @@ public class CodController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -140,6 +144,7 @@ public class CodController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -158,9 +163,11 @@ public class CodController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.g(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -168,6 +175,7 @@ public class CodController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CodNPC(this)); } + return super.getBukkitEntity(); } @@ -202,6 +210,7 @@ public class CodController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -223,18 +232,23 @@ public class CodController extends MobEntityController { if (!npc.useMinecraftAI()) { NMSImpl.setNotInSchool(this); } + NMSImpl.updateMinecraftAIState(npc, this); if (npc.useMinecraftAI() && this.moveController != this.oldMoveController) { this.moveController = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new EntityMoveControl(this); } + } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -243,10 +257,12 @@ public class CodController extends MobEntityController { if (npc != null) { this.v = false; } + super.movementTick(); if (npc != null) { this.v = lastInWater; } + } @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 938966bd1..def7e6450 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 @@ -77,6 +77,7 @@ public class CowController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -85,6 +86,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -102,6 +104,7 @@ public class CowController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -132,6 +135,7 @@ public class CowController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -142,6 +146,7 @@ public class CowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -161,6 +166,7 @@ public class CowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -168,6 +174,7 @@ public class CowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CowNPC(this)); } + return super.getBukkitEntity(); } @@ -202,6 +209,7 @@ public class CowController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -224,6 +232,7 @@ public class CowController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 f4aea327d..56649a37a 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 @@ -74,6 +74,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +92,7 @@ public class CreeperController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +113,7 @@ public class CreeperController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +124,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +144,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +152,7 @@ public class CreeperController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CreeperNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +187,7 @@ public class CreeperController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -188,6 +195,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isProtected()) { super.ignite(); } + } @Override @@ -210,6 +218,7 @@ public class CreeperController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -224,6 +233,7 @@ public class CreeperController extends MobEntityController { if (npc == null || allowPowered) { super.onLightningStrike(server, entitylightning); } + } public void setAllowPowered(boolean allowPowered) { @@ -237,6 +247,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } 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 1f37216e3..ea767798e 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 @@ -71,6 +71,7 @@ public class DolphinController extends MobEntityController { this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED) .setValue(this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getBaseValue() / 10); } + } @Override @@ -83,6 +84,7 @@ public class DolphinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -100,6 +102,7 @@ public class DolphinController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -125,6 +128,7 @@ public class DolphinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -135,6 +139,7 @@ public class DolphinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -153,9 +158,11 @@ public class DolphinController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d, dM())) { super.g(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -163,6 +170,7 @@ public class DolphinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DolphinNPC(this)); } + return super.getBukkitEntity(); } @@ -197,6 +205,7 @@ public class DolphinController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -224,6 +233,7 @@ public class DolphinController extends MobEntityController { if (npc != null && npc.isProtected()) { inProtectedTick = true; } + super.tick(); inProtectedTick = false; if (npc != null) { @@ -231,11 +241,14 @@ public class DolphinController extends MobEntityController { if (npc.useMinecraftAI() && this.moveController != this.oldMoveController) { this.moveController = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new EntityMoveControl(this); } + npc.update(); } + } } } 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 ee8ae7e38..6d2d62693 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 @@ -70,6 +70,7 @@ public class DrownedController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -87,6 +88,7 @@ public class DrownedController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -107,6 +109,7 @@ public class DrownedController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -117,6 +120,7 @@ public class DrownedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -136,6 +140,7 @@ public class DrownedController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -143,6 +148,7 @@ public class DrownedController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DrownedNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +183,7 @@ public class DrownedController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -199,6 +206,7 @@ public class DrownedController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 4659f3ded..ed218ceeb 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 @@ -84,6 +84,7 @@ public class EnderDragonController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -97,6 +98,7 @@ public class EnderDragonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -107,6 +109,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -124,6 +127,7 @@ public class EnderDragonController extends MobEntityController { if (getDragonControllerManager().a().getControllerPhase() == DragonControllerPhase.HOVER) { setMot(old); } + return res; } @@ -137,6 +141,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderDragonNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +176,7 @@ public class EnderDragonController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -184,16 +190,19 @@ public class EnderDragonController extends MobEntityController { npc.update(); NMSImpl.updateMinecraftAIState(npc, this); } + if (npc != null && !npc.useMinecraftAI()) { if (dl()) { setHealth(0F); return; } + if (this.d < 0) { for (int i = 0; i < this.c.length; ++i) { this.c[i][0] = this.yaw; this.c[i][1] = this.locY(); } + } if (++this.d == this.c.length) { @@ -216,12 +225,14 @@ public class EnderDragonController extends MobEntityController { if (getRidingPassenger() != null) { yaw = getRidingPassenger().getBukkitYaw() - 180; } + Vec3D mot = getMot(); if (mot.getX() != 0 || mot.getY() != 0 || mot.getZ() != 0) { mot = mot.d(0.98, 0.98, 0.98); if (getRidingPassenger() == null) { yaw = Util.getDragonYaw(getBukkitEntity(), mot.x, mot.z); } + setPosition(locX() + mot.getX(), locY() + mot.getY(), locZ() + mot.getZ()); setMot(mot); } @@ -235,8 +246,11 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + } + } + if (npc.data().get(NPC.Metadata.COLLIDABLE, false)) { try { KNOCKBACK.invoke(this, this.world.getEntities(this, @@ -250,10 +264,13 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable t) { t.printStackTrace(); } + } + } else { super.movementTick(); } + } @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 41a6c34ea..07543db8c 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 @@ -70,6 +70,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -94,6 +95,7 @@ public class EndermanController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -114,6 +116,7 @@ public class EndermanController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -124,6 +127,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -143,6 +147,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -150,6 +155,7 @@ public class EndermanController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EndermanNPC(this)); } + return super.getBukkitEntity(); } @@ -184,6 +190,7 @@ public class EndermanController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -207,9 +214,11 @@ public class EndermanController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -226,6 +235,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } 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 facd50291..4f8be2e44 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 @@ -70,6 +70,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -87,6 +88,7 @@ public class EndermiteController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -107,6 +109,7 @@ public class EndermiteController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -117,6 +120,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -136,6 +140,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -143,6 +148,7 @@ public class EndermiteController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EndermiteNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +183,7 @@ public class EndermiteController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -199,6 +206,7 @@ public class EndermiteController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -215,6 +223,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java index 609d07b60..7a06a6581 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java @@ -84,6 +84,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { skinTracker = null; } + } @Override @@ -91,6 +92,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -115,6 +117,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -125,8 +128,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable boolean damaged = super.damageEntity(damagesource, f); if (damaged && velocityChanged) { velocityChanged = false; - Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), (Runnable) () -> EntityHumanNPC.this.velocityChanged = true); + Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), + (Runnable) () -> EntityHumanNPC.this.velocityChanged = true); } + return damaged; } @@ -144,7 +149,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable return; super.die(damagesource); - Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), (Runnable) () -> ((WorldServer) world).removeEntity(EntityHumanNPC.this), 15); // give enough time for death and smoke animation + Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), + (Runnable) () -> ((WorldServer) world).removeEntity(EntityHumanNPC.this), 15); // give enough time for + // death and smoke + // animation } @Override @@ -154,6 +162,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -166,6 +175,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PlayerNPC(this)); } + return super.getBukkitEntity(); } @@ -187,6 +197,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (skinName == null) { skinName = npc.getName(); } + return skinName.toLowerCase(); } @@ -211,6 +222,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -227,6 +239,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable conn.setPacketListener(playerConnection); } catch (IOException e) { } + invulnerableTicks = 0; NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing setSkinFlags((byte) 0xFF); @@ -257,9 +270,11 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable jump(); jumpTicks = 10; } + } else { jumpTicks = 0; } + aR *= 0.98F; aT *= 0.98F; moveWithFallDamage(new Vec3D(this.aR, this.aS, this.aT)); // movement method @@ -267,6 +282,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (jumpTicks > 0) { jumpTicks--; } + } private void moveWithFallDamage(Vec3D vec) { @@ -275,6 +291,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (!npc.isProtected()) { a(this.locY() - y, onGround); } + } @Override @@ -288,6 +305,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable super.playerTick(); return; } + entityBaseTick(); boolean navigating = npc.getNavigator().isNavigating() || ai.getMoveControl().b(); if (!navigating && getBukkitEntity() != null @@ -296,16 +314,20 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable && (!npc.isProtected() || SpigotUtil.checkYSafe(locY(), getBukkitEntity().getWorld()))) { moveWithFallDamage(new Vec3D(0, 0, 0)); } + Vec3D mot = getMot(); if (Math.abs(mot.getX()) < EPSILON && Math.abs(mot.getY()) < EPSILON && Math.abs(mot.getZ()) < EPSILON) { setMot(new Vec3D(0, 0, 0)); } + if (navigating) { if (!NMSImpl.isNavigationFinished(ai.getNavigation())) { NMSImpl.updateNavigation(ai.getNavigation()); } + moveOnCurrentHeading(); } + ai.getMoveControl().a(); ai.getJumpControl().b(); collideNearby(); @@ -353,12 +375,16 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { axisalignedbb = this.getBoundingBox().grow(1.0, 0.5, 1.0); } + for (Entity entity : this.world.getEntities(this, axisalignedbb)) { if (!entity.dead) { entity.pickup(this); } + } + } + /* double diff = this.yaw - this.aK; if (diff != 40 && diff != -40) { @@ -393,8 +419,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable itemChanged = true; } + equipmentCache.put(slot, equipment); } + if (!itemChanged) return; Location current = getBukkitEntity().getLocation(); @@ -402,6 +430,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable for (EnumItemSlot slot : EnumItemSlot.values()) { list.add(Pair.of(slot, getEquipment(slot))); } + NMSImpl.sendPacketsNearby(getBukkitEntity(), current, new PacketPlayOutEntityEquipment(getId(), list)); } 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 5893122c0..5c2020c8a 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 @@ -64,6 +64,7 @@ public class EvokerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class EvokerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class EvokerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class EvokerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class EvokerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class EvokerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EvokerNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class EvokerController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class EvokerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 eff0b20c7..35d83f83d 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 @@ -66,6 +66,7 @@ public class FoxController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -74,6 +75,7 @@ public class FoxController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class FoxController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class FoxController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class FoxController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class FoxController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class FoxController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FoxNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class FoxController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +211,7 @@ public class FoxController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 924dd7990..d58af687c 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 @@ -72,6 +72,7 @@ public class GhastController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -85,6 +86,7 @@ public class GhastController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -95,6 +97,7 @@ public class GhastController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +115,7 @@ public class GhastController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GhastNPC(this)); } + return super.getBukkitEntity(); } @@ -146,6 +150,7 @@ public class GhastController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -164,6 +169,7 @@ public class GhastController extends MobEntityController { npc.update(); NMSImpl.updateMinecraftAIState(npc, this); } + super.mobTick(); } 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 5b0b3cc08..3f27da33c 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 @@ -64,6 +64,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class GiantController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class GiantController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class GiantController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class GiantController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GiantNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class GiantController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class GiantController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 3903d5b40..ca178cb29 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 @@ -64,6 +64,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class GuardianController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class GuardianController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class GuardianController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class GuardianController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GuardianNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class GuardianController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -197,8 +204,10 @@ public class GuardianController extends MobEntityController { } else { super.movementTick(); } + npc.update(); } + } @Override @@ -215,6 +224,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 dbcb365ee..f60c09b53 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 @@ -64,6 +64,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class GuardianElderController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GuardianElderNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class GuardianElderController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -197,8 +204,10 @@ public class GuardianElderController extends MobEntityController { } else { super.movementTick(); } + npc.update(); } + } @Override @@ -215,6 +224,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 45e07d821..1bc45006c 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 @@ -64,6 +64,7 @@ public class HoglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class HoglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class HoglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class HoglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class HoglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class HoglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HoglinNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class HoglinController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -192,10 +199,12 @@ public class HoglinController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.mobTick(); if (npc != null) { npc.update(); } + } @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 6cc945c96..a250c4e19 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 @@ -72,6 +72,7 @@ public class HorseController extends MobEntityController { horse.setDomestication(horse.getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -85,6 +86,7 @@ public class HorseController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -93,6 +95,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -110,6 +113,7 @@ public class HorseController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -130,6 +134,7 @@ public class HorseController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -140,6 +145,7 @@ public class HorseController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -171,6 +177,7 @@ public class HorseController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -178,6 +185,7 @@ public class HorseController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseNPC(this)); } + return super.getBukkitEntity(); } @@ -212,6 +220,7 @@ public class HorseController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -240,13 +249,16 @@ public class HorseController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } 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 1d1149955..f0f69bc2f 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 @@ -71,6 +71,7 @@ public class HorseDonkeyController extends MobEntityController { ((Donkey) getBukkitEntity()).setDomestication(((Donkey) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -84,6 +85,7 @@ public class HorseDonkeyController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -92,6 +94,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -109,6 +112,7 @@ public class HorseDonkeyController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -129,6 +133,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -139,6 +144,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -170,6 +176,7 @@ public class HorseDonkeyController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -177,6 +184,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseDonkeyNPC(this)); } + return super.getBukkitEntity(); } @@ -211,6 +219,7 @@ public class HorseDonkeyController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -238,16 +247,20 @@ public class HorseDonkeyController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 08849a71f..3a2f42478 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 @@ -71,6 +71,7 @@ public class HorseMuleController extends MobEntityController { ((Mule) getBukkitEntity()).setDomestication(((Mule) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -84,6 +85,7 @@ public class HorseMuleController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -92,6 +94,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -109,6 +112,7 @@ public class HorseMuleController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -129,6 +133,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -139,6 +144,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -170,6 +176,7 @@ public class HorseMuleController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -177,6 +184,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseMuleNPC(this)); } + return super.getBukkitEntity(); } @@ -211,6 +219,7 @@ public class HorseMuleController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -238,16 +247,20 @@ public class HorseMuleController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 55e9bd646..76d729f30 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 @@ -72,6 +72,7 @@ public class HorseSkeletonController extends MobEntityController { .setDomestication(((SkeletonHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -85,6 +86,7 @@ public class HorseSkeletonController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -93,6 +95,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -110,6 +113,7 @@ public class HorseSkeletonController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -130,6 +134,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -140,6 +145,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -171,6 +177,7 @@ public class HorseSkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -178,6 +185,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseSkeletonNPC(this)); } + return super.getBukkitEntity(); } @@ -212,6 +220,7 @@ public class HorseSkeletonController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -239,16 +248,20 @@ public class HorseSkeletonController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 b1f0aed59..8283717b2 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 @@ -72,6 +72,7 @@ public class HorseZombieController extends MobEntityController { .setDomestication(((ZombieHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -85,6 +86,7 @@ public class HorseZombieController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -93,6 +95,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -110,6 +113,7 @@ public class HorseZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -130,6 +134,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -140,6 +145,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -171,6 +177,7 @@ public class HorseZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -178,6 +185,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -212,6 +220,7 @@ public class HorseZombieController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -239,16 +248,20 @@ public class HorseZombieController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HumanController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HumanController.java index 4185feabd..878988f66 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HumanController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HumanController.java @@ -35,9 +35,11 @@ public class HumanController extends AbstractEntityController { if (npc.requiresNameHologram()) { name = teamName; } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } + final GameProfile profile = new GameProfile(uuid, name); final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile, new PlayerInteractManager(nmsWorld), npc); @@ -45,6 +47,7 @@ public class HumanController extends AbstractEntityController { if (skin != null) { skin.apply(handle); } + Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> { if (getBukkitEntity() == null || !getBukkitEntity().isValid() || getBukkitEntity() != handle.getBukkitEntity()) 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 84a13e585..c136a117e 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 @@ -64,6 +64,7 @@ public class IllusionerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class IllusionerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class IllusionerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class IllusionerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class IllusionerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class IllusionerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new IllusionerNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class IllusionerController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class IllusionerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 3075d8853..c2edce5df 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 @@ -64,6 +64,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class IronGolemController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class IronGolemController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class IronGolemController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new IronGolemNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class IronGolemController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class IronGolemController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 0bf4b266a..cf696fccc 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 @@ -71,6 +71,7 @@ public class LlamaController extends MobEntityController { ((Llama) getBukkitEntity()).setDomestication(((Llama) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -84,6 +85,7 @@ public class LlamaController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -92,6 +94,7 @@ public class LlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -109,6 +112,7 @@ public class LlamaController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -129,6 +133,7 @@ public class LlamaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -139,6 +144,7 @@ public class LlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -165,6 +171,7 @@ public class LlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -172,6 +179,7 @@ public class LlamaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LlamaNPC(this)); } + return super.getBukkitEntity(); } @@ -206,6 +214,7 @@ public class LlamaController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -233,16 +242,20 @@ public class LlamaController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, yaw, pitch); } + d(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 bb5417acb..7319df464 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 @@ -62,6 +62,7 @@ public class MagmaCubeController extends MobEntityController { this.oldMoveController = this.moveController; this.moveController = new EntityMoveControl(this); } + } @Override @@ -74,6 +75,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class MagmaCubeController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MagmaCubeNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class MagmaCubeController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -208,6 +216,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.pickup(human); } + } @Override @@ -218,11 +227,14 @@ public class MagmaCubeController extends MobEntityController { if (npc.useMinecraftAI() && this.moveController != this.oldMoveController) { this.moveController = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -232,6 +244,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MobEntityController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MobEntityController.java index 3be5737df..73e30dfe0 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MobEntityController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MobEntityController.java @@ -42,7 +42,9 @@ public abstract class MobEntityController extends AbstractEntityController { if (mob.getControllerLook().getClass() == ControllerLook.class) { NMSImpl.setLookControl(mob, new PitchableLookControl(mob)); } + } + entity.setPositionRotation(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch()); if (npc != null) { // entity.onGround isn't updated right away - we approximate here so @@ -51,15 +53,19 @@ public abstract class MobEntityController extends AbstractEntityController { if (beneath.isSolid()) { entity.setOnGround(true); } + try { UUID_FIELD.invoke(entity, npc.getUniqueId()); } catch (Throwable e) { e.printStackTrace(); } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } + } + return entity.getBukkitEntity(); } @@ -70,6 +76,7 @@ public abstract class MobEntityController extends AbstractEntityController { ex.printStackTrace(); return null; } + } private static Constructor getConstructor(Class clazz) { @@ -82,6 +89,7 @@ public abstract class MobEntityController extends AbstractEntityController { } catch (Exception ex) { throw new IllegalStateException("unable to find an entity constructor"); } + } private static final Map, Constructor> CONSTRUCTOR_CACHE = new WeakHashMap<>(); 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 244f193ec..05c518145 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 @@ -69,6 +69,7 @@ public class MushroomCowController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -77,6 +78,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -94,6 +96,7 @@ public class MushroomCowController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -121,6 +124,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -131,6 +135,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -150,6 +155,7 @@ public class MushroomCowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -157,6 +163,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MushroomCowNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +198,7 @@ public class MushroomCowController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -213,6 +221,7 @@ public class MushroomCowController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 91c65c3ca..1980c2cc7 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 @@ -67,6 +67,7 @@ public class OcelotController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -75,6 +76,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -92,6 +94,7 @@ public class OcelotController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -112,6 +115,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -122,6 +126,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -141,6 +146,7 @@ public class OcelotController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -148,6 +154,7 @@ public class OcelotController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new OcelotNPC(this)); } + return super.getBukkitEntity(); } @@ -182,6 +189,7 @@ public class OcelotController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -205,10 +213,12 @@ public class OcelotController extends MobEntityController { if (restorePose) { this.setPose(old); } + if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 e878d30a4..2f20e9709 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 @@ -66,6 +66,7 @@ public class PandaController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -74,6 +75,7 @@ public class PandaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class PandaController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class PandaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class PandaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class PandaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class PandaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PandaNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class PandaController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +211,7 @@ public class PandaController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 6a2e65cb7..921b51883 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 @@ -75,6 +75,7 @@ public class ParrotController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -96,6 +97,7 @@ public class ParrotController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -106,6 +108,7 @@ public class ParrotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -123,6 +126,7 @@ public class ParrotController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ParrotNPC(this)); } + return super.getBukkitEntity(); } @@ -157,6 +161,7 @@ public class ParrotController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -173,8 +178,10 @@ public class ParrotController extends MobEntityController { if (npc.useMinecraftAI()) { super.mobTick(); } + npc.update(); } + } @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 4c63261bd..db4696f31 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 @@ -67,6 +67,7 @@ public class PhantomController extends MobEntityController { this.lookController = new ControllerLook(this); // TODO: phantom pitch reversed } + } @Override @@ -80,6 +81,7 @@ public class PhantomController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -88,6 +90,7 @@ public class PhantomController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -105,6 +108,7 @@ public class PhantomController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -125,6 +129,7 @@ public class PhantomController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -135,6 +140,7 @@ public class PhantomController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -161,6 +167,7 @@ public class PhantomController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -168,6 +175,7 @@ public class PhantomController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PhantomNPC(this)); } + return super.getBukkitEntity(); } @@ -202,6 +210,7 @@ public class PhantomController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -231,15 +240,19 @@ public class PhantomController extends MobEntityController { this.moveController = this.oldMoveController; this.lookController = this.oldLookController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new EntityMoveControl(this); this.lookController = new ControllerLook(this); } + if (npc.isProtected()) { setOnFire(0); } + npc.update(); } + } @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 4c2f561d9..31e5619fd 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 @@ -68,6 +68,7 @@ public class PigController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -76,6 +77,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -93,6 +95,7 @@ public class PigController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -113,6 +116,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -123,6 +127,7 @@ public class PigController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -148,6 +153,7 @@ public class PigController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -155,6 +161,7 @@ public class PigController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PigNPC(this)); } + return super.getBukkitEntity(); } @@ -189,6 +196,7 @@ public class PigController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -211,6 +219,7 @@ public class PigController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -225,6 +234,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.onLightningStrike(server, entitylightning); } + } } 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 fb36b1f3a..1f1d3b4f0 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 @@ -64,6 +64,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class PigZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class PigZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class PigZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class PigZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PigZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class PigZombieController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class PigZombieController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 8cadb5333..46c8399ec 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 @@ -64,6 +64,7 @@ public class PiglinBruteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class PiglinBruteController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class PiglinBruteController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class PiglinBruteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class PiglinBruteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class PiglinBruteController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PiglinBruteNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class PiglinBruteController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -192,10 +199,12 @@ public class PiglinBruteController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.mobTick(); if (npc != null) { npc.update(); } + } @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 e868d9d4f..ee4a774d8 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 @@ -64,6 +64,7 @@ public class PiglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class PiglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class PiglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class PiglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class PiglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class PiglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PiglinNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class PiglinController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -192,10 +199,12 @@ public class PiglinController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.mobTick(); if (npc != null) { npc.update(); } + } @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 f85ac88ba..cc9c79654 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 @@ -66,6 +66,7 @@ public class PillagerController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -74,6 +75,7 @@ public class PillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class PillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class PillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class PillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class PillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class PillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class PillagerController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +211,7 @@ public class PillagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 dfc811ced..4a8d4a4bf 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 @@ -64,6 +64,7 @@ public class PolarBearController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -82,6 +83,7 @@ public class PolarBearController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -95,6 +97,7 @@ public class PolarBearController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -105,6 +108,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -122,6 +126,7 @@ public class PolarBearController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PolarBearNPC(this)); } + return super.getBukkitEntity(); } @@ -156,6 +161,7 @@ public class PolarBearController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -170,6 +176,7 @@ public class PolarBearController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 df8bd0e72..3d8a901ac 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 @@ -68,6 +68,7 @@ public class PufferFishController extends MobEntityController { this.oldMoveController = this.moveController; this.moveController = new ControllerMove(this); } + } @Override @@ -80,6 +81,7 @@ public class PufferFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -104,6 +106,7 @@ public class PufferFishController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -134,6 +137,7 @@ public class PufferFishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -144,6 +148,7 @@ public class PufferFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -162,9 +167,11 @@ public class PufferFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.g(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -172,6 +179,7 @@ public class PufferFishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PufferFishNPC(this)); } + return super.getBukkitEntity(); } @@ -206,6 +214,7 @@ public class PufferFishController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -229,11 +238,14 @@ public class PufferFishController extends MobEntityController { if (npc.useMinecraftAI() && this.moveController != this.oldMoveController) { this.moveController = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -244,11 +256,13 @@ public class PufferFishController extends MobEntityController { this.v = false; setPuffState(0); } + super.movementTick(); if (npc != null) { this.v = lastInWater; setPuffState(lastPuffState); } + } @Override @@ -263,11 +277,13 @@ public class PufferFishController extends MobEntityController { if (npc != null) { NMSImpl.resetPuffTicks(this); } + super.tick(); PufferFishTrait trait = null; if (npc != null && (trait = npc.getTraitNullable(PufferFishTrait.class)) != null) { setPuffState(trait.getPuffState()); } + } private static float s(int i) { @@ -279,6 +295,7 @@ public class PufferFishController extends MobEntityController { default: return 1.0F; } + } } 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 8b5fcb668..196751bff 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 @@ -67,6 +67,7 @@ public class RabbitController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -75,6 +76,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -92,6 +94,7 @@ public class RabbitController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -112,6 +115,7 @@ public class RabbitController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -122,6 +126,7 @@ public class RabbitController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -141,6 +146,7 @@ public class RabbitController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -148,6 +154,7 @@ public class RabbitController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new RabbitNPC(this)); } + return super.getBukkitEntity(); } @@ -187,6 +194,7 @@ public class RabbitController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -210,8 +218,10 @@ public class RabbitController extends MobEntityController { if (npc.getNavigator().isNavigating()) { NMS.setShouldJump(getBukkitEntity()); } + npc.update(); } + } @Override @@ -229,6 +239,7 @@ public class RabbitController extends MobEntityController { this.datawatcher.set(NMSImpl.getRabbitTypeField(), i); return; } + super.setRabbitType(i); } } 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 a0818e758..01c6e1876 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 @@ -66,6 +66,7 @@ public class RavagerController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -74,6 +75,7 @@ public class RavagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class RavagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class RavagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class RavagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class RavagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class RavagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new RavagerNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class RavagerController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +211,7 @@ public class RavagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 3cf18dae0..6f10df49e 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 @@ -65,6 +65,7 @@ public class SalmonController extends MobEntityController { this.oldMoveController = this.moveController; this.moveController = new ControllerMove(this); } + } @Override @@ -77,6 +78,7 @@ public class SalmonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -94,6 +96,7 @@ public class SalmonController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -124,6 +127,7 @@ public class SalmonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -134,6 +138,7 @@ public class SalmonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -152,9 +157,11 @@ public class SalmonController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.g(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -162,6 +169,7 @@ public class SalmonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SalmonNPC(this)); } + return super.getBukkitEntity(); } @@ -196,6 +204,7 @@ public class SalmonController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -219,14 +228,18 @@ public class SalmonController extends MobEntityController { if (npc.useMinecraftAI() && this.moveController != this.oldMoveController) { this.moveController = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new EntityMoveControl(this); } + } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -235,10 +248,12 @@ public class SalmonController extends MobEntityController { if (npc != null) { this.v = false; } + super.movementTick(); if (npc != null) { this.v = lastInWater; } + } @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 4420f3232..1dbef1f9e 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 @@ -66,6 +66,7 @@ public class SheepController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -74,6 +75,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class SheepController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class SheepController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class SheepController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class SheepController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class SheepController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SheepNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class SheepController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +211,7 @@ public class SheepController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 bbfd86165..19de619a5 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 @@ -65,6 +65,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -82,6 +83,7 @@ public class ShulkerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -102,6 +104,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -112,6 +115,7 @@ public class ShulkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -131,6 +135,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -138,6 +143,7 @@ public class ShulkerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ShulkerNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +178,7 @@ public class ShulkerController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -192,6 +199,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || npc.useMinecraftAI()) { super.movementTick(); } + } @Override @@ -213,10 +221,12 @@ public class ShulkerController extends MobEntityController { if (npc.useMinecraftAI()) { super.tick(); } + npc.update(); } else { super.tick(); } + } @Override @@ -226,6 +236,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 9bd0581c9..96b668076 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 @@ -64,6 +64,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class SilverfishController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class SilverfishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class SilverfishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SilverfishNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class SilverfishController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class SilverfishController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 87776cf5c..73165a44f 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 @@ -64,6 +64,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class SkeletonController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class SkeletonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class SkeletonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SkeletonNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class SkeletonController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class SkeletonController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 c37e701b5..1b8edf688 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 @@ -64,6 +64,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class SkeletonStrayController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new StrayNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class SkeletonStrayController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class SkeletonStrayController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 5c8d95dcb..fabde813e 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 @@ -64,6 +64,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class SkeletonWitherController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SkeletonWitherNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class SkeletonWitherController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class SkeletonWitherController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 c77d73fbb..f6602e08e 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 @@ -62,6 +62,7 @@ public class SlimeController extends MobEntityController { this.oldMoveController = this.moveController; this.moveController = new EntityMoveControl(this); } + } @Override @@ -74,6 +75,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class SlimeController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class SlimeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SlimeNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class SlimeController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -208,6 +216,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.pickup(human); } + } @Override @@ -218,11 +227,14 @@ public class SlimeController extends MobEntityController { if (npc.useMinecraftAI() && this.moveController != this.oldMoveController) { this.moveController = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -232,6 +244,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 91a1342a9..8edeb88af 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 @@ -64,6 +64,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class SnowmanController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class SnowmanController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class SnowmanController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnowmanNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class SnowmanController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class SnowmanController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 eb4483a30..df3646ca7 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 @@ -64,6 +64,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class SpiderController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class SpiderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class SpiderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SpiderNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class SpiderController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class SpiderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 ddb111b7b..18c604c05 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 @@ -64,6 +64,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class SquidController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class SquidController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class SquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class SquidController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SquidNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class SquidController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class SquidController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 eede9b797..1dea2b8a9 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 @@ -64,6 +64,7 @@ public class StriderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class StriderController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class StriderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class StriderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class StriderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class StriderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new StriderNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class StriderController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class StriderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 222928859..2c1da6d55 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 @@ -67,6 +67,7 @@ public class TraderLlamaController extends MobEntityController { ((TraderLlama) getBukkitEntity()) .setDomestication(((TraderLlama) getBukkitEntity()).getMaxDomestication()); } + } @Override @@ -80,6 +81,7 @@ public class TraderLlamaController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -88,6 +90,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -105,6 +108,7 @@ public class TraderLlamaController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -125,6 +129,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -135,6 +140,7 @@ public class TraderLlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -154,6 +160,7 @@ public class TraderLlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -161,6 +168,7 @@ public class TraderLlamaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TraderLlamaNPC(this)); } + return super.getBukkitEntity(); } @@ -195,6 +203,7 @@ public class TraderLlamaController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -219,15 +228,19 @@ public class TraderLlamaController extends MobEntityController { if (npc.useMinecraftAI()) { super.mobTick(); } + try { if (bw != null) { bw.invoke(this, 10); // DespawnDelay } + } catch (Throwable e) { } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @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 f651261c7..080eceac2 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 @@ -65,6 +65,7 @@ public class TropicalFishController extends MobEntityController { this.oldMoveController = this.moveController; this.moveController = new ControllerMove(this); } + } @Override @@ -77,6 +78,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -94,6 +96,7 @@ public class TropicalFishController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -124,6 +127,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -134,6 +138,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -152,9 +157,11 @@ public class TropicalFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.g(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -162,6 +169,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TropicalFishNPC(this)); } + return super.getBukkitEntity(); } @@ -196,6 +204,7 @@ public class TropicalFishController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -217,18 +226,23 @@ public class TropicalFishController extends MobEntityController { if (!npc.useMinecraftAI()) { NMSImpl.setNotInSchool(this); } + NMSImpl.updateMinecraftAIState(npc, this); if (npc.useMinecraftAI() && this.moveController != this.oldMoveController) { this.moveController = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new EntityMoveControl(this); } + } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -237,10 +251,12 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { this.v = false; } + super.movementTick(); if (npc != null) { this.v = lastInWater; } + } @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 38512b439..6e95aab91 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 @@ -66,6 +66,7 @@ public class TurtleController extends MobEntityController { this.moveController = new ControllerMove(this); this.bi = new EmptyControllerJump(this); } + } @Override @@ -78,6 +79,7 @@ public class TurtleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -95,6 +97,7 @@ public class TurtleController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -115,6 +118,7 @@ public class TurtleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -125,6 +129,7 @@ public class TurtleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -143,9 +148,11 @@ public class TurtleController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.g(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -153,6 +160,7 @@ public class TurtleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TurtleNPC(this)); } + return super.getBukkitEntity(); } @@ -187,6 +195,7 @@ public class TurtleController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -211,12 +220,15 @@ public class TurtleController extends MobEntityController { this.moveController = this.oldMoveController; this.bi = this.oldJumpController; } + if (!npc.useMinecraftAI() && this.moveController == this.oldMoveController) { this.moveController = new EntityMoveControl(this); this.bi = new EmptyControllerJump(this); } + npc.update(); } + } @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 f7cacf41e..30f078b5d 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 @@ -53,6 +53,7 @@ public class VexController extends MobEntityController { if (npc != null) { setNoGravity(true); } + } @Override @@ -75,6 +76,7 @@ public class VexController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -88,6 +90,7 @@ public class VexController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -98,6 +101,7 @@ public class VexController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +119,7 @@ public class VexController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VexNPC(this)); } + return super.getBukkitEntity(); } @@ -149,6 +154,7 @@ public class VexController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -163,6 +169,7 @@ public class VexController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 8906ad46f..57575eb6d 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 @@ -67,6 +67,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.3); } + } @Override @@ -80,6 +81,7 @@ public class VillagerController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -88,6 +90,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -105,6 +108,7 @@ public class VillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -116,7 +120,9 @@ public class VillagerController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.b(entityhuman, enumhand); } @@ -137,6 +143,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -147,6 +154,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -165,6 +173,7 @@ public class VillagerController extends MobEntityController { blockingATrade = false; return true; } + return super.eN(); } @@ -175,6 +184,7 @@ public class VillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -182,6 +192,7 @@ public class VillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -216,6 +227,7 @@ public class VillagerController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -236,10 +248,12 @@ public class VillagerController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.mobTick(); if (npc != null) { npc.update(); } + } @Override @@ -254,6 +268,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.onLightningStrike(server, entitylightning); } + } } 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 33a560554..560efa0f3 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 @@ -66,6 +66,7 @@ public class VindicatorController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -74,6 +75,7 @@ public class VindicatorController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class VindicatorController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -111,6 +114,7 @@ public class VindicatorController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -121,6 +125,7 @@ public class VindicatorController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -140,6 +145,7 @@ public class VindicatorController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -147,6 +153,7 @@ public class VindicatorController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VindicatorNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +188,7 @@ public class VindicatorController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +211,7 @@ public class VindicatorController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 d7ef5e408..d665c67ae 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 @@ -79,6 +79,7 @@ public class WanderingTraderController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -87,6 +88,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -104,6 +106,7 @@ public class WanderingTraderController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -115,7 +118,9 @@ public class WanderingTraderController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.b(entityhuman, enumhand); } @@ -136,6 +141,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -146,6 +152,7 @@ public class WanderingTraderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -164,6 +171,7 @@ public class WanderingTraderController extends MobEntityController { blockingATrade = false; return true; } + return super.eN(); } @@ -174,6 +182,7 @@ public class WanderingTraderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -181,6 +190,7 @@ public class WanderingTraderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WanderingTraderNPC(this)); } + return super.getBukkitEntity(); } @@ -215,6 +225,7 @@ public class WanderingTraderController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } public boolean isBlockingTrades() { @@ -239,16 +250,20 @@ public class WanderingTraderController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.mobTick(); if (npc != null) { try { if (bq != null) { bq.invoke(this, 10); // DespawnDelay } + } catch (Throwable e) { } + npc.update(); } + } @Override @@ -263,6 +278,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null) { super.onLightningStrike(server, entitylightning); } + } public void setBlockTrades(boolean blocked) { 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 e1f191d39..483fdb79a 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 @@ -64,6 +64,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class WitchController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class WitchController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class WitchController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class WitchController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitchNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class WitchController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class WitchController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -209,6 +217,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 9dee01464..deb16cecd 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 @@ -72,6 +72,7 @@ public class WitherController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -85,6 +86,7 @@ public class WitherController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -95,6 +97,7 @@ public class WitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +115,7 @@ public class WitherController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitherNPC(this)); } + return super.getBukkitEntity(); } @@ -146,6 +150,7 @@ public class WitherController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -167,8 +172,10 @@ public class WitherController extends MobEntityController { if (npc.useMinecraftAI()) { super.mobTick(); } + npc.update(); } + } @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 3dcae1684..a8b3bdbc5 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 @@ -68,6 +68,7 @@ public class WolfController extends MobEntityController { super.a(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::a); } @@ -76,6 +77,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -93,6 +95,7 @@ public class WolfController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -113,6 +116,7 @@ public class WolfController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -123,6 +127,7 @@ public class WolfController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -142,6 +147,7 @@ public class WolfController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -149,6 +155,7 @@ public class WolfController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WolfNPC(this)); } + return super.getBukkitEntity(); } @@ -183,6 +190,7 @@ public class WolfController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -205,6 +213,7 @@ public class WolfController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 d3781e7ea..292df7122 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 @@ -64,6 +64,7 @@ public class ZoglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class ZoglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class ZoglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class ZoglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class ZoglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class ZoglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZoglinNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class ZoglinController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -191,10 +198,12 @@ public class ZoglinController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.mobTick(); if (npc != null) { npc.update(); } + } @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 f44b6ff9c..ed2f71c5f 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 @@ -64,6 +64,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class ZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class ZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class ZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class ZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class ZombieController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class ZombieController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 97d5e5eac..de8138f1f 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 @@ -64,6 +64,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class ZombieHuskController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class ZombieHuskController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieHuskNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class ZombieHuskController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class ZombieHuskController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 c01bba771..9600935f8 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 @@ -64,6 +64,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -81,6 +82,7 @@ public class ZombieVillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -101,6 +103,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +114,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class ZombieVillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -137,6 +142,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieVillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +177,7 @@ public class ZombieVillagerController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class ZombieVillagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @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 eed610887..b42b905b1 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 @@ -67,6 +67,7 @@ public class AreaEffectCloudController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -78,6 +79,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new AreaEffectCloudNPC(this)); } + return super.getBukkitEntity(); } @@ -109,6 +112,7 @@ public class AreaEffectCloudController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -118,6 +122,7 @@ public class AreaEffectCloudController extends MobEntityController { } else { super.tick(); } + } } } 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 5153fea8a..a1c5699e5 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 @@ -80,6 +80,7 @@ public class BoatController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -91,6 +92,7 @@ public class BoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class BoatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BoatNPC(this)); } + return super.getBukkitEntity(); } @@ -122,6 +125,7 @@ public class BoatController extends MobEntityController { this.aC = getBoundingBox().maxY; return entityboat_enumstatus; } + if (t()) return EnumStatus.IN_WATER; float f = k(); @@ -129,6 +133,7 @@ public class BoatController extends MobEntityController { this.aD = f; return EnumStatus.ON_LAND; } + return EnumStatus.IN_AIR; } @@ -138,6 +143,7 @@ public class BoatController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } private boolean t() { @@ -162,9 +168,13 @@ public class BoatController extends MobEntityController { this.aC = Math.max(f, this.aC); m = flag | (axisalignedbb.minY < f ? true : false); } + } + } + } + return m; } @@ -199,7 +209,9 @@ public class BoatController extends MobEntityController { if (getRidingPassenger() instanceof EntityHuman) { this.aD /= 2.0F; } + } + Vec3D vec3d = getMot(); setMot(vec3d.x * this.ap, vec3d.y + d1, vec3d.z * this.ap); this.ar *= this.ap; @@ -207,14 +219,18 @@ public class BoatController extends MobEntityController { Vec3D vec3d1 = getMot(); setMot(vec3d1.x, vec3d1.y + d2 * 0.0615D, vec3d1.z); } + } + move(EnumMoveType.SELF, getMot()); if (isVehicle()) { this.yaw += this.ar; } + } else { super.tick(); } + } private EnumStatus u() { @@ -239,9 +255,13 @@ public class BoatController extends MobEntityController { return EnumStatus.UNDER_FLOWING_WATER; flag = true; } + } + } + } + return flag ? EnumStatus.UNDER_WATER : null; } @@ -252,6 +272,7 @@ public class BoatController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } 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 b7ca835bf..cff4ad832 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 @@ -67,6 +67,7 @@ public class DragonFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -78,6 +79,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DragonFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -109,6 +112,7 @@ public class DragonFireballController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -118,9 +122,11 @@ public class DragonFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -130,6 +136,7 @@ public class DragonFireballController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } } 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 48f6f36ae..3b3799c50 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 @@ -83,6 +83,7 @@ public class EggController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -94,6 +95,7 @@ public class EggController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -106,6 +108,7 @@ public class EggController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EggNPC(this)); } + return super.getBukkitEntity(); } @@ -125,6 +128,7 @@ public class EggController extends AbstractEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,9 +138,11 @@ public class EggController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } } 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 ba7138012..b05a97eab 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 @@ -67,6 +67,7 @@ public class EnderCrystalController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -78,6 +79,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderCrystalNPC(this)); } + return super.getBukkitEntity(); } @@ -109,6 +112,7 @@ public class EnderCrystalController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -118,6 +122,7 @@ public class EnderCrystalController extends MobEntityController { } else { super.tick(); } + } } } 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 865e12072..fa7108627 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 @@ -67,6 +67,7 @@ public class EnderPearlController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -78,6 +79,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderPearlNPC(this)); } + return super.getBukkitEntity(); } @@ -109,6 +112,7 @@ public class EnderPearlController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -118,9 +122,11 @@ public class EnderPearlController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } } 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 af1da93e5..16bb9621d 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 @@ -67,6 +67,7 @@ public class EnderSignalController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -78,6 +79,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderSignalNPC(this)); } + return super.getBukkitEntity(); } @@ -109,6 +112,7 @@ public class EnderSignalController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -118,6 +122,7 @@ public class EnderSignalController extends MobEntityController { } else { super.tick(); } + } } } 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 d3f3da26e..80378864f 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 @@ -76,6 +76,7 @@ public class EvokerFangsController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -87,6 +88,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -99,6 +101,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EvokerFangsNPC(this)); } + return super.getBukkitEntity(); } @@ -118,6 +121,7 @@ public class EvokerFangsController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -126,6 +130,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { npc.update(); } + } } 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 5d4573f8f..d667b8feb 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 @@ -61,6 +61,7 @@ public class ExperienceOrbController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ExperienceOrbNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class ExperienceOrbController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class ExperienceOrbController extends MobEntityController { } else { super.tick(); } + } } 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 18c4b4ca4..f94aa879e 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 @@ -82,6 +82,7 @@ public class FallingBlockController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -93,6 +94,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -105,6 +107,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FallingBlockNPC(this)); } + return super.getBukkitEntity(); } @@ -124,6 +127,7 @@ public class FallingBlockController extends AbstractEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -137,9 +141,11 @@ public class FallingBlockController extends AbstractEntityController { setMot(mot); move(EnumMoveType.SELF, mot); } + } else { super.tick(); } + } @Override @@ -149,6 +155,7 @@ public class FallingBlockController extends AbstractEntityController { } else { NMSImpl.setSize(this, justCreated); } + } private static final double EPSILON = 0.001; 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 6935e73fc..02a07787c 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 @@ -61,6 +61,7 @@ public class FireworkController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class FireworkController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class FireworkController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FireworkNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class FireworkController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class FireworkController extends MobEntityController { } else { super.tick(); } + } } 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 b914b029e..bb3689a4c 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 @@ -77,6 +77,7 @@ public class FishingHookController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -88,6 +89,7 @@ public class FishingHookController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -100,6 +102,7 @@ public class FishingHookController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FishingHookNPC(this)); } + return super.getBukkitEntity(); } @@ -127,6 +130,7 @@ public class FishingHookController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -141,10 +145,12 @@ public class FishingHookController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + npc.update(); } else { super.tick(); } + } private static MethodHandle G = NMS.getSetter(EntityFishingHook.class, "g"); 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 75639a721..e258151d0 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 @@ -73,6 +73,7 @@ public class ItemController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -84,6 +85,7 @@ public class ItemController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -96,6 +98,7 @@ public class ItemController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemNPC(this)); } + return super.getBukkitEntity(); } @@ -115,6 +118,7 @@ public class ItemController extends AbstractEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -122,6 +126,7 @@ public class ItemController extends AbstractEntityController { if (npc == null) { super.pickup(entityhuman); } + } @Override @@ -131,6 +136,7 @@ public class ItemController extends AbstractEntityController { } else { super.tick(); } + } } 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 c01c3d893..af4a03afc 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 @@ -73,6 +73,7 @@ public class ItemFrameController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -84,6 +85,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -96,6 +98,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemFrameNPC(this)); } + return super.getBukkitEntity(); } @@ -115,6 +118,7 @@ public class ItemFrameController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -129,6 +133,7 @@ public class ItemFrameController extends MobEntityController { } else { super.tick(); } + } } 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 212a0330c..776151661 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 @@ -61,6 +61,7 @@ public class LargeFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LargeFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class LargeFireballController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,9 +116,11 @@ public class LargeFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -124,6 +130,7 @@ public class LargeFireballController extends MobEntityController { } else { NMSImpl.setSize(this, justCreated); } + } } 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 ecaacff36..869e328d5 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 @@ -61,6 +61,7 @@ public class LeashController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class LeashController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class LeashController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LeashNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class LeashController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -117,6 +121,7 @@ public class LeashController extends MobEntityController { } else { super.tick(); } + } } 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 86c765f4a..804852d34 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 @@ -80,6 +80,7 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -91,6 +92,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LlamaSpitNPC(this)); } + return super.getBukkitEntity(); } @@ -122,6 +125,7 @@ public class LlamaSpitController extends AbstractEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -131,9 +135,11 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } 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 2740d3e25..9176f9943 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 @@ -61,6 +61,7 @@ public class MinecartChestController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartChestNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class MinecartChestController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class MinecartChestController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 82b66556b..1a16afee4 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 @@ -61,6 +61,7 @@ public class MinecartCommandController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartCommandNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class MinecartCommandController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class MinecartCommandController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 d60b295ae..311a566c0 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 @@ -61,6 +61,7 @@ public class MinecartFurnaceController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartFurnaceNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class MinecartFurnaceController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class MinecartFurnaceController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 c82c8da6a..6c6e7f0f1 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 @@ -56,6 +56,7 @@ public class MinecartHopperController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -67,6 +68,7 @@ public class MinecartHopperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class MinecartHopperController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +102,7 @@ public class MinecartHopperController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 7d3242145..6ea3e66f6 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 @@ -61,6 +61,7 @@ public class MinecartRideableController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartRideableNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class MinecartRideableController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class MinecartRideableController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 e2a0fae68..4e5bf205b 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 @@ -56,6 +56,7 @@ public class MinecartSpawnerController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -67,6 +68,7 @@ public class MinecartSpawnerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class MinecartSpawnerController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +102,7 @@ public class MinecartSpawnerController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 e8ca1483c..74fa24c19 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 @@ -56,6 +56,7 @@ public class MinecartTNTController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -67,6 +68,7 @@ public class MinecartTNTController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +92,7 @@ public class MinecartTNTController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +102,7 @@ public class MinecartTNTController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 470d37cbd..2b552a87f 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 @@ -61,6 +61,7 @@ public class PaintingController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class PaintingController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class PaintingController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PaintingNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class PaintingController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -117,6 +121,7 @@ public class PaintingController extends MobEntityController { } else { super.tick(); } + } } 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 b1d8205d1..1b0f6f7df 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 @@ -61,6 +61,7 @@ public class ShulkerBulletController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ShulkerBulletNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class ShulkerBulletController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class ShulkerBulletController extends MobEntityController { } else { super.tick(); } + } } 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 ffdfb8f22..286a5159c 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 @@ -61,6 +61,7 @@ public class SmallFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SmallFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class SmallFireballController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,9 +116,11 @@ public class SmallFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } 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 fc2b77369..10db5d61d 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 @@ -61,6 +61,7 @@ public class SnowballController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class SnowballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class SnowballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnowballNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class SnowballController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class SnowballController extends MobEntityController { } else { super.tick(); } + } } 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 b564b41d2..92b30cbc8 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 @@ -61,6 +61,7 @@ public class SpectralArrowController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SpectralArrowNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class SpectralArrowController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class SpectralArrowController extends MobEntityController { } else { super.tick(); } + } } 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 660cf623d..fa63d8431 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 @@ -61,6 +61,7 @@ public class TNTPrimedController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TNTPrimedNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class TNTPrimedController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class TNTPrimedController extends MobEntityController { } else { super.tick(); } + } } 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 63ef1a1cb..11654b6d9 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 @@ -61,6 +61,7 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ThrownExpBottleNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class ThrownExpBottleController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,9 +116,11 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } } 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 4963d6ae9..421f62424 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 @@ -62,6 +62,7 @@ public class ThrownPotionController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -73,6 +74,7 @@ public class ThrownPotionController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -88,7 +90,9 @@ public class ThrownPotionController extends MobEntityController { } else { NMSImpl.setBukkitEntity(this, new SplashThrownPotionNPC(this)); } + } + return super.getBukkitEntity(); } @@ -108,6 +112,7 @@ public class ThrownPotionController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -117,6 +122,7 @@ public class ThrownPotionController extends MobEntityController { } else { super.tick(); } + } } 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 293db5e95..473e999b1 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 @@ -61,6 +61,7 @@ public class ThrownTridentController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ThrownTridentNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class ThrownTridentController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class ThrownTridentController extends MobEntityController { } else { super.tick(); } + } } 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 96dbcc34e..194485be8 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 @@ -61,6 +61,7 @@ public class TippedArrowController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TippedArrowNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class TippedArrowController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class TippedArrowController extends MobEntityController { } else { super.tick(); } + } } 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 1e31ab6fb..e4a41549b 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 @@ -61,6 +61,7 @@ public class WitherSkullController extends MobEntityController { if (!npc.isPushableByFluids()) { setMot(old); } + return res; } @@ -72,6 +73,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -84,6 +86,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitherSkullNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +106,7 @@ public class WitherSkullController extends MobEntityController { if (vector != null) { super.i(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +116,7 @@ public class WitherSkullController extends MobEntityController { } else { super.tick(); } + } } diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/CitizensBlockBreaker.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/CitizensBlockBreaker.java index 719293a41..3459aeebc 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/CitizensBlockBreaker.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/CitizensBlockBreaker.java @@ -48,6 +48,7 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { ItemStack current = getCurrentItem(); return current != null ? current.canDestroySpecialBlock(block) : false; } + } @Override @@ -65,10 +66,13 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { if (i > 0) { f += i * i + 1; } + } + if (handle.hasEffect(MobEffects.FASTER_DIG)) { f *= 1.0F + (handle.getEffect(MobEffects.FASTER_DIG).getAmplifier() + 1) * 0.2F; } + if (handle.hasEffect(MobEffects.SLOWER_DIG)) { float f1 = 1.0F; switch (handle.getEffect(MobEffects.SLOWER_DIG).getAmplifier()) { @@ -85,15 +89,20 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { default: f1 = 8.1E-4F; } + f *= f1; } + if (handle.a(TagsFluid.WATER) && !EnchantmentManager.h(handle)) { f /= 5.0F; } + } + if (!getHandle().isOnGround()) { f /= 5.0F; } + return f; } } \ No newline at end of file diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EmptyAdvancementDataPlayer.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EmptyAdvancementDataPlayer.java index 0af5556fd..04223a5f6 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EmptyAdvancementDataPlayer.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EmptyAdvancementDataPlayer.java @@ -68,6 +68,7 @@ public class EmptyAdvancementDataPlayer extends AdvancementDataPlayer { } catch (Throwable e) { e.printStackTrace(); } + } private static final MethodHandle H = NMS.getGetter(AdvancementDataPlayer.class, "h"); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityMoveControl.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityMoveControl.java index d6e339d6a..1c9b1ca21 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityMoveControl.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityMoveControl.java @@ -46,6 +46,7 @@ public class EntityMoveControl extends ControllerMove { this.a.aT = 0.0F; return; } + float f = (float) Math.toDegrees(Math.atan2(d1, d0)) - 90.0F; this.a.yaw = a(this.a.yaw, f, 90.0F); NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw); @@ -58,11 +59,14 @@ public class EntityMoveControl extends ControllerMove { if (((EntitySlime) a).isAggressive()) { this.h /= 3; } + ai.getJumpControl().jump(); } else if (d2 >= NMS.getStepHeight(a.getBukkitEntity()) && d0 * d0 + d1 * d1 < 1.0D) { ai.getJumpControl().jump(); } + } + } @Override @@ -80,15 +84,18 @@ public class EntityMoveControl extends ControllerMove { if (f3 > f2) { f3 = f2; } + if (f3 < -f2) { f3 = -f2; } + float f4 = f + f3; if (f4 < 0.0F) { f4 += 360.0F; } else if (f4 > 360.0F) { f4 -= 360.0F; } + return f4; } diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityNavigation.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityNavigation.java index 2161cdf95..7004c5e42 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityNavigation.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityNavigation.java @@ -90,20 +90,25 @@ public class EntityNavigation extends NavigationAbstract { while (var2.getY() > 0 && this.b.getType(var2).isAir()) { var2 = var2.down(); } + if (var2.getY() > 0) return supera(var2.up(), var1); while (var2.getY() < this.b.getBuildHeight() && this.b.getType(var2).isAir()) { var2 = var2.up(); } + var0 = var2; } + if (this.b.getType(var0).getMaterial().isBuildable()) { BlockPosition var2 = var0.up(); while (var2.getY() < this.b.getBuildHeight() && this.b.getType(var2).getMaterial().isBuildable()) { var2 = var2.up(); } + return supera(var2, var1); } + return supera(var0, var1); } @@ -164,8 +169,11 @@ public class EntityNavigation extends NavigationAbstract { || var19 == PathType.DAMAGE_OTHER) return false; } + } + } + return true; } @@ -175,9 +183,11 @@ public class EntityNavigation extends NavigationAbstract { this.c = null; return false; } + if (!var0.a(this.c)) { this.c = var0; } + if (m()) return false; D_(); @@ -219,6 +229,7 @@ public class EntityNavigation extends NavigationAbstract { this.q = var3; e(); } + return var8; } @@ -236,9 +247,11 @@ public class EntityNavigation extends NavigationAbstract { } else { this.t = false; } + this.f = this.e; this.g = var0; } + if (this.c != null && !this.c.c()) { BaseBlockPosition var1 = this.c.g(); if (var1.equals(this.h)) { @@ -248,12 +261,15 @@ public class EntityNavigation extends NavigationAbstract { double var2 = var0.f(Vec3D.c(this.h)); this.k = this.a.dN() > 0.0F ? var2 / this.a.dN() * 1000.0D : 0.0D; } + if (this.k > 0.0D && this.i > this.k * 3.0D) { e(); o(); } + this.j = SystemUtils.getMonotonicMillis(); } + } @Override @@ -281,9 +297,11 @@ public class EntityNavigation extends NavigationAbstract { if (var7 >= 0.0D) { var19++; } + if (var9 >= 0.0D) { var21++; } + var19 /= var7; var21 /= var9; int var23 = var7 < 0.0D ? -1 : 1; @@ -302,9 +320,11 @@ public class EntityNavigation extends NavigationAbstract { var6 += var24; var28 = var26 - var6; } + if (!a(var5, MathHelper.floor(var0.y), var6, var2, var3, var4, var0, var7, var9)) return false; } + return true; } @@ -323,6 +343,7 @@ public class EntityNavigation extends NavigationAbstract { if (var0.a(var2, this.c.e() - this.c.f())) { j(); } + } private boolean b(int var0, int var1, int var2, int var3, int var4, int var5, Vec3D var6, double var7, @@ -334,9 +355,11 @@ public class EntityNavigation extends NavigationAbstract { if (var13 * var7 + var15 * var9 < 0.0D) { continue; } + if (!this.b.getType(var12).a(this.b, var12, PathMode.LAND)) return false; } + return true; } @@ -363,6 +386,7 @@ public class EntityNavigation extends NavigationAbstract { if (this.m) { j(); } + if (m()) return; if (a()) { @@ -374,7 +398,9 @@ public class EntityNavigation extends NavigationAbstract { && MathHelper.floor(vec3D1.z) == MathHelper.floor(vec3D2.z)) { this.c.a(); } + } + if (m()) return; Vec3D var0 = this.c.a(this.a); @@ -404,8 +430,11 @@ public class EntityNavigation extends NavigationAbstract { this.c.b(var0); return; } + } + } + } private void e() { @@ -443,9 +472,11 @@ public class EntityNavigation extends NavigationAbstract { this.n = this.b.getTime(); this.m = false; } + } else { this.m = true; } + } @Override @@ -468,6 +499,7 @@ public class EntityNavigation extends NavigationAbstract { if (var8 || b2 || b(this.c.h().l) && b(var0)) { this.c.a(); } + a(var0); } @@ -521,8 +553,11 @@ public class EntityNavigation extends NavigationAbstract { if (var2 != null && var1.b >= var2.b) { this.c.a(var0 + 1, var1.a(var2.a, var1.b + 1, var2.c)); } + } + } + } @Override @@ -542,6 +577,7 @@ public class EntityNavigation extends NavigationAbstract { if (++var2 > 16) return MathHelper.floor(this.a.locY()); } + return var0; } diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityPathfinder.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityPathfinder.java index 3996b39b6..8fda0ce98 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityPathfinder.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityPathfinder.java @@ -42,7 +42,10 @@ public class EntityPathfinder extends Pathfinder { this.d.a(); this.c.a(var0, var1); PathPoint var6 = this.c.b(); - Map var7 = var2.stream().collect(Collectors.toMap(var0x -> this.c.a((double) var0x.getX(), (double) var0x.getY(), (double) var0x.getZ()), Function.identity())); + Map var7 = var2.stream() + .collect(Collectors.toMap( + var0x -> this.c.a((double) var0x.getX(), (double) var0x.getY(), (double) var0x.getZ()), + Function.identity())); PathEntity var8 = this.a(var6, var7, var3, var4, var5); this.c.a(); return var8; @@ -52,7 +55,10 @@ public class EntityPathfinder extends Pathfinder { this.d.a(); this.c.a(var0, var1); PathPoint var6 = this.c.b(); - Map var7 = var2.stream().collect(Collectors.toMap(var0x -> this.c.a((double) var0x.getX(), (double) var0x.getY(), (double) var0x.getZ()), Function.identity())); + Map var7 = var2.stream() + .collect(Collectors.toMap( + var0x -> this.c.a((double) var0x.getX(), (double) var0x.getY(), (double) var0x.getZ()), + Function.identity())); PathEntity var8 = this.a(var6, var7, var3, var4, var5); this.c.a(); return var8; @@ -66,6 +72,7 @@ public class EntityPathfinder extends Pathfinder { var4 = var4.h; var3.add(0, var4); } + return new PathEntity(var3, var1, var2); } @@ -88,13 +95,17 @@ public class EntityPathfinder extends Pathfinder { pathDestination.e(); var8.add(pathDestination); } + } + if (!var8.isEmpty()) { break; } + if (pathPoint.a(var0) >= var2) { continue; } + int i = this.c.a(this.a, pathPoint); for (int var12 = 0; var12 < i; var12++) { PathPoint var13 = this.a[var12]; @@ -111,16 +122,24 @@ public class EntityPathfinder extends Pathfinder { var13.g = var13.e + var13.f; this.d.a(var13); } + } + } + } - Optional var10 = !var8.isEmpty() ? var8.stream().map(var1x -> this.a(var1x.d(), (BlockPosition) var1.get(var1x), true)).min(Comparator.comparingInt(PathEntity::e)) : getFallbackDestinations(var1, var5).findFirst(); + + Optional var10 = !var8.isEmpty() + ? var8.stream().map(var1x -> this.a(var1x.d(), (BlockPosition) var1.get(var1x), true)).min( + Comparator.comparingInt(PathEntity::e)) + : getFallbackDestinations(var1, var5).findFirst(); if (!var10.isPresent()) return null; else { PathEntity var11 = (PathEntity) var10.get(); return var11; } + } private float a(PathPoint var0, Set var1) { @@ -130,6 +149,7 @@ public class EntityPathfinder extends Pathfinder { var4.a(var5, var0); var2 = Math.min(var5, var2); } + return var2; } @@ -137,6 +157,7 @@ public class EntityPathfinder extends Pathfinder { Set var5) { if (Setting.DISABLE_MC_NAVIGATION_FALLBACK.asBoolean()) return Stream.empty(); - return var5.stream().map(var1x -> this.a(var1x.d(), var1.get(var1x), false)).sorted(Comparator.comparingDouble(PathEntity::n).thenComparingInt(PathEntity::e)); + return var5.stream().map(var1x -> this.a(var1x.d(), var1.get(var1x), false)) + .sorted(Comparator.comparingDouble(PathEntity::n).thenComparingInt(PathEntity::e)); } } diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityPathfinderNormal.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityPathfinderNormal.java index c1047a4e5..f94c57535 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityPathfinderNormal.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityPathfinderNormal.java @@ -74,23 +74,28 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { } private PathType a(EntityLiving var0, int var1, int var2, int var3) { - return this.k.computeIfAbsent(BlockPosition.a(var1, var2, var3), var4 -> this.a(this.a, var1, var2, var3, var0, this.d, this.e, this.f, this.d(), this.c())); + return this.k.computeIfAbsent(BlockPosition.a(var1, var2, var3), + var4 -> this.a(this.a, var1, var2, var3, var0, this.d, this.e, this.f, this.d(), this.c())); } protected PathType a(IBlockAccess var0, boolean var1, boolean var2, BlockPosition var3, PathType var4) { if (var4 == PathType.DOOR_WOOD_CLOSED && var1 && var2) { var4 = PathType.WALKABLE; } + if (var4 == PathType.DOOR_OPEN && !var2) { var4 = PathType.BLOCKED; } + if (var4 == PathType.RAIL && !(var0.getType(var3).getBlock() instanceof BlockMinecartTrackAbstract) && !(var0.getType(var3.down()).getBlock() instanceof BlockMinecartTrackAbstract)) { var4 = PathType.UNPASSABLE_RAIL; } + if (var4 == PathType.LEAVES) { var4 = PathType.BLOCKED; } + return var4; } @@ -117,7 +122,9 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { if (mvmt.getPathfindingMalus(var15) >= mvmt.getPathfindingMalus(var13)) { var13 = var15; } + } + if (var11 == PathType.OPEN && mvmt.getPathfindingMalus(var13) == 0.0F && var5 <= 1) return PathType.OPEN; return var13; @@ -140,7 +147,9 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { if (mvmt.getPathfindingMalus(var15) >= mvmt.getPathfindingMalus(var13)) { var13 = var15; } + } + if (var11 == PathType.OPEN && mvmt.getPathfindingMalus(var13) == 0.0F && var5 <= 1) return PathType.OPEN; return var13; @@ -159,10 +168,14 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { if (var12 == 0 && var13 == 0 && var14 == 0) { var10 = var18; } + var9.add(var18); } + } + } + return var10; } @@ -180,9 +193,11 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { var8.l = var12; var8.k = Math.max(var8.k, var13); } + if (var7 == PathType.FENCE && var8 != null && var8.k >= 0.0F && !a(var8)) { var8 = null; } + if (var12 == PathType.WALKABLE) return var8; if ((var8 == null || var8.k < 0.0F) && var3 > 0 && var12 != PathType.FENCE && var12 != PathType.UNPASSABLE_RAIL @@ -197,8 +212,11 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { if (a(var20)) { var8 = null; } + } + } + if (var12 == PathType.WATER && !e()) { if (a(this.b, var0, var1 - 1, var2) != PathType.WATER) return var8; @@ -211,9 +229,12 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { var8.k = Math.max(var8.k, mvmt.getPathfindingMalus(var12)); continue; } + return var8; } + } + if (var12 == PathType.OPEN) { int var16 = 0; int var17 = var1; @@ -225,12 +246,14 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { var18.k = -1.0F; return var18; } + if (var16++ >= this.b.bP()) { PathPoint var18 = a(var0, var1, var2); var18.l = PathType.BLOCKED; var18.k = -1.0F; return var18; } + var12 = a(this.b, var0, var1, var2); var13 = mvmt.getPathfindingMalus(var12); if (var12 != PathType.OPEN && var13 >= 0.0F) { @@ -239,20 +262,25 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { var8.k = Math.max(var8.k, var13); break; } + if (var13 < 0.0F) { PathPoint var18 = a(var0, var1, var2); var18.l = PathType.BLOCKED; var18.k = -1.0F; return var18; } + } + } + if (var12 == PathType.FENCE) { var8 = a(var0, var1, var2); var8.i = true; var8.l = var12; var8.k = var12.a(); } + return var8; } @@ -266,6 +294,7 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { if (a(var2)) return false; } + return true; } @@ -294,39 +323,48 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { if (mvmt.getPathfindingMalus(var4) >= 0.0F && var5 != PathType.STICKY_HONEY) { var3 = MathHelper.d(Math.max(1.0F, this.b.G)); } + double var6 = aa(this.a, new BlockPosition(var1.a, var1.b, var1.c)); PathPoint var8 = a(var1.a, var1.b, var1.c + 1, var3, var6, EnumDirection.SOUTH, var5); if (a(var8, var1)) { var0[var2++] = var8; } + PathPoint var9 = a(var1.a - 1, var1.b, var1.c, var3, var6, EnumDirection.WEST, var5); if (a(var9, var1)) { var0[var2++] = var9; } + PathPoint var10 = a(var1.a + 1, var1.b, var1.c, var3, var6, EnumDirection.EAST, var5); if (a(var10, var1)) { var0[var2++] = var10; } + PathPoint var11 = a(var1.a, var1.b, var1.c - 1, var3, var6, EnumDirection.NORTH, var5); if (a(var11, var1)) { var0[var2++] = var11; } + PathPoint var12 = a(var1.a - 1, var1.b, var1.c - 1, var3, var6, EnumDirection.NORTH, var5); if (a(var1, var9, var11, var12)) { var0[var2++] = var12; } + PathPoint var13 = a(var1.a + 1, var1.b, var1.c - 1, var3, var6, EnumDirection.NORTH, var5); if (a(var1, var10, var11, var13)) { var0[var2++] = var13; } + PathPoint var14 = a(var1.a - 1, var1.b, var1.c + 1, var3, var6, EnumDirection.SOUTH, var5); if (a(var1, var9, var8, var14)) { var0[var2++] = var14; } + PathPoint var15 = a(var1.a + 1, var1.b, var1.c + 1, var3, var6, EnumDirection.SOUTH, var5); if (a(var1, var10, var8, var15)) { var0[var2++] = var15; } + return var2; } @@ -340,12 +378,14 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { var0++; var2 = this.a.getType(var1.c(this.b.locX(), var0, this.b.locZ())); } + var0--; } else if (e() && this.b.isInWater()) { while (var2.getBlock() == Blocks.WATER || var2.getFluid() == FluidTypes.WATER.a(false)) { var0++; var2 = this.a.getType(var1.c(this.b.locX(), var0, this.b.locZ())); } + var0--; } else if (this.b.isOnGround()) { var0 = MathHelper.floor(this.b.locY() + 0.5D); @@ -356,8 +396,10 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { && blockPosition.getY() > 0) { blockPosition = blockPosition.down(); } + var0 = blockPosition.up().getY(); } + BlockPosition var3 = this.b.getChunkCoordinates(); PathType var4 = a(this.b, var3.getX(), var0, var3.getZ()); if (mvmt.getPathfindingMalus(var4) < 0.0F) { @@ -371,7 +413,9 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { var6.k = mvmt.getPathfindingMalus(var6.l); return var6; } + } + PathPoint var5 = a(var3.getX(), var0, var3.getZ()); var5.l = a(this.b, var5.a()); var5.k = mvmt.getPathfindingMalus(var5.l); @@ -396,19 +440,25 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { if (var6 == PathType.DAMAGE_FIRE) { var5 = PathType.DAMAGE_FIRE; } + if (var6 == PathType.DAMAGE_CACTUS) { var5 = PathType.DAMAGE_CACTUS; } + if (var6 == PathType.DAMAGE_OTHER) { var5 = PathType.DAMAGE_OTHER; } + if (var6 == PathType.STICKY_HONEY) { var5 = PathType.STICKY_HONEY; } + } + if (var5 == PathType.WALKABLE) { var5 = a(var0, var1.d(var2, var3, var4), var5); } + return var5; } @@ -431,9 +481,13 @@ public class EntityPathfinderNormal extends EntityPathfinderAbstract { if (var0.getFluid(var1).a(TagsFluid.WATER)) return PathType.WATER_BORDER; } + } + } + } + return var2; } diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/ForwardingNPCHolder.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/ForwardingNPCHolder.java index 3333550bd..5e1021238 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/ForwardingNPCHolder.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/ForwardingNPCHolder.java @@ -14,8 +14,10 @@ public interface ForwardingNPCHolder extends NPCHolder, Entity { if (Messaging.isDebugging()) { Messaging.debug("ForwardingNPCHolder with an improper bukkit entity", this, handle); } + return null; } + return ((NPCHolder) handle).getNPC(); } } diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/MobAI.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/MobAI.java index c82ee0473..a7280c223 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/MobAI.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/MobAI.java @@ -41,6 +41,7 @@ public interface MobAI { if (!NMSImpl.isNavigationFinished(navigation)) { NMSImpl.updateNavigation(navigation); } + } default void updatePathfindingRange(float range) { @@ -171,6 +172,7 @@ public interface MobAI { }; } else if (handle instanceof MobAI) return (MobAI) handle; + return null; } } diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/NMSImpl.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/NMSImpl.java index a255e5e24..45bb54ae0 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/NMSImpl.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/NMSImpl.java @@ -351,17 +351,21 @@ public class NMSImpl implements NMSBridge { viewDistance = (int) PLAYER_CHUNK_MAP_VIEW_DISTANCE_GETTER.invoke(chunkMap); PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER.invoke(chunkMap, -1); } + } catch (Throwable e) { e.printStackTrace(); } + boolean success = getHandle(entity).world.addEntity(getHandle(entity), custom); try { if (chunkMap != null) { PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER.invoke(chunkMap, viewDistance); } + } catch (Throwable e) { e.printStackTrace(); } + return success; } @@ -377,12 +381,14 @@ public class NMSImpl implements NMSBridge { } else if (!handle.world.getPlayers().contains(handle)) { ((List) handle.world.getPlayers()).add(handle); } + try { CHUNKMAP_UPDATE_PLAYER_STATUS.invoke(((WorldServer) handle.world).getChunkProvider().playerChunkMap, handle, !remove); } catch (Throwable e) { e.printStackTrace(); } + // PlayerUpdateTask.addOrRemove(entity, remove); } @@ -395,10 +401,12 @@ public class NMSImpl implements NMSBridge { PlayerAnimation.ARM_SWING.play((Player) handle.getBukkitEntity()); return; } + if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).attackEntity(target); return; } + AttributeModifiable attackDamage = handle.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE); float f = (float) (attackDamage == null ? 1 : attackDamage.getValue()); int i = 0; @@ -406,6 +414,7 @@ public class NMSImpl implements NMSBridge { f += EnchantmentManager.a(handle.getItemInMainHand(), target.getMonsterType()); i += EnchantmentManager.a(Enchantments.KNOCKBACK, handle); } + boolean flag = target.damageEntity(DamageSource.mobAttack(handle), f); if (!flag) return; @@ -414,10 +423,12 @@ public class NMSImpl implements NMSBridge { Math.cos(handle.yaw * Math.PI / 180.0F) * i * 0.5F); handle.setMot(handle.getMot().d(0.6, 1, 0.6)); } + int fireAspectLevel = EnchantmentManager.getFireAspectEnchantmentLevel(handle); if (fireAspectLevel > 0) { target.setOnFire(fireAspectLevel * 4); } + } @Override @@ -432,7 +443,9 @@ public class NMSImpl implements NMSBridge { } catch (Throwable t) { t.printStackTrace(); } + } + } @Override @@ -465,16 +478,21 @@ public class NMSImpl implements NMSBridge { if (!changed && !ItemStack.matches(old, curr)) { changed = true; } + equipment.put(slot, curr); } + if (changed) { List> vals = Lists.newArrayList(); for (EnumItemSlot slot : EnumItemSlot.values()) { vals.add(com.mojang.datafixers.util.Pair.of(slot, equipment.get(slot))); } + agg.send(new PacketPlayOutEntityEquipment(handle.getId(), vals)); } + } + tracker.a(); } @@ -495,7 +513,9 @@ public class NMSImpl implements NMSBridge { if (callback != null) { callback.accept(entity); } + } + linked.clear(); } }; @@ -546,9 +566,11 @@ public class NMSImpl implements NMSBridge { return null; bserver = ((EnderDragonBattle) battleObject).bossBattle; } + } catch (Throwable e) { e.printStackTrace(); } + if (bserver == null) return null; BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10); @@ -557,6 +579,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return ret; } @@ -666,11 +689,13 @@ public class NMSImpl implements NMSBridge { if (SKULL_PROFILE_FIELD == null) return null; } + try { return (GameProfile) SKULL_PROFILE_FIELD.get(meta); } catch (Exception e) { return null; } + } @Override @@ -688,9 +713,11 @@ public class NMSImpl implements NMSBridge { MinecraftKey key = (MinecraftKey) SOUNDEFFECT_KEY.invoke(effect); return key.getKey(); } + } catch (Throwable e) { throw new CommandException(Messages.INVALID_SOUND); } + } @Override @@ -706,6 +733,7 @@ public class NMSImpl implements NMSBridge { EntityLiving handle = NMSImpl.getHandle((LivingEntity) npc.getEntity()); if (handle == null) { } + return DEFAULT_SPEED; // return (float) // handle.getAttributeInstance(GenericAttributes.d).getValue(); @@ -750,7 +778,9 @@ public class NMSImpl implements NMSBridge { } else { ((EntityInsentient) raw).a(PathType.WATER, oldWater + 1F); } + } + navigation.q().b(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; @@ -763,6 +793,7 @@ public class NMSImpl implements NMSBridge { PathPoint pp = navigation.k().a(i); blocks.add(entity.getWorld().getBlockAt(pp.a, pp.b, pp.c)); } + return blocks; } @@ -782,13 +813,16 @@ public class NMSImpl implements NMSBridge { List blocks = getBlocks(entity, navigation); Util.sendBlockChanges(blocks, null); } + if (oldWater >= 0) { if (raw instanceof MobAI) { ((MobAI) raw).setPathfindingMalus(PathType.WATER, oldWater); } else { ((EntityInsentient) raw).a(PathType.WATER, oldWater); } + } + stopNavigation(navigation); } @@ -803,12 +837,15 @@ public class NMSImpl implements NMSBridge { SIZE_FIELD_SETTER.invoke(handle, new EntitySize(Math.min(0.99F, size.width), size.height, false)); } + } catch (Throwable e) { e.printStackTrace(); } + if (!function.apply(navigation)) { reason = CancelReason.STUCK; } + try { SIZE_FIELD_SETTER.invoke(handle, size); } catch (Throwable e) { @@ -816,11 +853,14 @@ public class NMSImpl implements NMSBridge { // minecraft requires that an entity fit onto both blocks if width >= 1f, but we'd prefer to // make it just fit on 1 so hack around it a bit. } + lastSpeed = params.speed(); } + if (params.debug() && !NMSImpl.isNavigationFinished(navigation)) { Util.sendBlockChanges(getBlocks(entity, navigation), Material.DANDELION); } + navigation.a((double) params.speed()); return NMSImpl.isNavigationFinished(navigation); } @@ -1039,30 +1079,37 @@ public class NMSImpl implements NMSBridge { if (zDiff < 0.0) { yaw += Math.abs(180 - yaw) * 2; } + if (handle.getBukkitEntity().getType() == EntityType.ENDER_DRAGON) { yaw = Util.getDragonYaw(handle.getBukkitEntity(), xDiff, zDiff); } else { yaw = yaw - 90; } + if (headOnly) { setHeadYaw(entity, (float) yaw); } else { look(entity, (float) yaw, (float) pitch); } + return; } + if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(to.getX(), to.getY(), to.getZ(), ((EntityInsentient) handle).ep(), ((EntityInsentient) handle).O()); while (((EntityLiving) handle).aC >= 180F) { ((EntityLiving) handle).aC -= 360F; } + while (((EntityLiving) handle).aC < -180F) { ((EntityLiving) handle).aC += 360F; } + } else if (handle instanceof NPCHolder) { ((NPCHolder) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1075,18 +1122,22 @@ public class NMSImpl implements NMSBridge { } else { look(from, to.getLocation(), false, true); } + } else if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(target, ((EntityInsentient) handle).ep(), ((EntityInsentient) handle).O()); while (((EntityLiving) handle).aC >= 180F) { ((EntityLiving) handle).aC -= 360F; } + while (((EntityLiving) handle).aC < -180F) { ((EntityLiving) handle).aC += 360F; } + } else if (handle instanceof NPCHolder) { ((NPCHolder) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1123,6 +1174,7 @@ public class NMSImpl implements NMSBridge { this.resultInventory, this, anvil), this); } + return this.bukkitEntity; } }; @@ -1169,11 +1221,13 @@ public class NMSImpl implements NMSBridge { if (key == null || type == null) { continue; } + CITIZENS_ENTITY_TYPES.put(clazz, type); int code = ENTITY_REGISTRY.a(type); ENTITY_REGISTRY.put(code, key, type); return; } + throw new IllegalArgumentException("unable to find valid entity superclass for class " + clazz.toString()); } @@ -1211,6 +1265,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + if (hooked == null) return; NPC npc = CitizensAPI.getNPCRegistry().getNPC(hooked.getBukkitEntity()); @@ -1222,8 +1277,10 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + hook.getBukkitEntity().remove(); } + } @Override @@ -1238,6 +1295,7 @@ public class NMSImpl implements NMSBridge { if (getHandle(entity) instanceof EntityHumanNPC) { ((EntityHumanNPC) getHandle(entity)).setTracked(replace); } + } @Override @@ -1247,9 +1305,11 @@ public class NMSImpl implements NMSBridge { if (bodyYaw == null) { bodyYaw = handle.yaw; } + if (pitch == null) { pitch = handle.pitch; } + List> toSend = Lists.newArrayList(); if (position) { EntityTracker entry = ((WorldServer) handle.world).getChunkProvider().playerChunkMap.trackedEntities @@ -1261,6 +1321,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + Vec3D pos = handle.getPositionVector().d(ete.b()); toSend.add(new PacketPlayOutRelEntityMoveLook(handle.getId(), (short) pos.x, (short) pos.y, (short) pos.z, (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.isOnGround())); @@ -1268,9 +1329,11 @@ public class NMSImpl implements NMSBridge { toSend.add(new PacketPlayOutEntityLook(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.isOnGround())); } + if (headYaw != null) { toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F))); } + sendPacketsNearby(null, from.getLocation(), toSend, 64); } @@ -1294,6 +1357,7 @@ public class NMSImpl implements NMSBridge { entities[i] = (EntityPlayer) skinnable; i++; } + NMSImpl.sendPacket(recipient, new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, entities)); } @@ -1314,12 +1378,14 @@ public class NMSImpl implements NMSBridge { if (TEAM_FIELD == null) { TEAM_FIELD = NMS.getGetter(team.getClass(), "team"); } + try { ScoreboardTeam nmsTeam = (ScoreboardTeam) TEAM_FIELD.invoke(team); sendPacket(recipient, new PacketPlayOutScoreboardTeam(nmsTeam, mode)); } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1355,6 +1421,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof MobAI) { ((MobAI) handle).getMoveControl().a(x, y, z, speed); } + } @Override @@ -1379,6 +1446,7 @@ public class NMSImpl implements NMSBridge { if (!(handle instanceof EntityHuman)) { handle.aA = yaw; // TODO: why this } + handle.setHeadRotation(yaw); } @@ -1424,9 +1492,11 @@ public class NMSImpl implements NMSBridge { npc.data().get("flying-nogravity-float")); npc.data().remove("flying-nogravity-float"); } + } catch (Throwable t) { t.printStackTrace(); } + } @Override @@ -1463,11 +1533,13 @@ public class NMSImpl implements NMSBridge { if (SET_PROFILE_METHOD == null) return; } + try { SET_PROFILE_METHOD.invoke(meta, profile); } catch (Throwable t) { t.printStackTrace(); } + } @Override @@ -1481,6 +1553,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof MobAI) { ((MobAI) handle).getJumpControl().jump(); } + } @Override @@ -1498,6 +1571,7 @@ public class NMSImpl implements NMSBridge { if (entity instanceof Player) { ((Player) entity).setSneaking(sneaking); } + EntityPose pose = sneaking ? EntityPose.CROUCHING : EntityPose.STANDING; getHandle(entity).setPose(pose); } @@ -1530,6 +1604,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return false; } @@ -1542,6 +1617,7 @@ public class NMSImpl implements NMSBridge { field.invoke(null, ENTITY_REGISTRY.get()); } catch (Throwable e) { } + } @Override @@ -1551,6 +1627,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1566,6 +1643,7 @@ public class NMSImpl implements NMSBridge { if (RANDOM.nextFloat() <= 0.85F && handle.isInWater()) { handle.setMot(handle.getMot().getX(), handle.getMot().getY() + power, handle.getMot().getZ()); } + } @Override @@ -1655,6 +1733,7 @@ public class NMSImpl implements NMSBridge { menuType = Containers.CRAFTING; break; } + Container active = handle.activeContainer; handle.playerConnection .sendPacket(new PacketPlayOutOpenWindow(active.windowId, menuType, new ChatComponentText(newTitle))); @@ -1677,6 +1756,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1688,6 +1768,7 @@ public class NMSImpl implements NMSBridge { ((MobAI) en).updatePathfindingRange(pathfindingRange); return; } + if (NAVIGATION_S == null) return; NavigationAbstract navigation = ((EntityInsentient) en).getNavigation(); @@ -1699,6 +1780,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } private static class CitizensInventoryAnvil extends CraftInventoryAnvil implements ForwardingInventory { @@ -1808,6 +1890,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + float oldw = size.width; float oldl = size.height; cb.accept(datawatcherobject); @@ -1815,6 +1898,7 @@ public class NMSImpl implements NMSBridge { living.setPosition(living.locX() - 0.01, living.locY(), living.locZ() - 0.01); living.setPosition(living.locX() + 0.01, living.locY(), living.locZ() + 0.01); } + } public static void clearGoals(NPC npc, PathfinderGoalSelector... goalSelectors) { @@ -1827,14 +1911,17 @@ public class NMSImpl implements NMSBridge { if (!list.isEmpty()) { npc.data().set("selector" + i, Lists.newArrayList(list)); } + list.clear(); } catch (Exception e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } catch (Throwable e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } + i++; } + } private static CompoundTag convertNBT(net.minecraft.server.v1_16_R3.NBTTagCompound tag) { @@ -1844,6 +1931,7 @@ public class NMSImpl implements NMSBridge { for (String key : tag.getKeys()) { tags.put(key, convertNBT(key, tag.get(key))); } + return new CompoundTag("", tags); } @@ -1874,8 +1962,10 @@ public class NMSImpl implements NMSBridge { for (int i = 0; i < list.size(); i++) { converted.add(convertNBT("", list.get(i))); } + return new ListTag(key, tagType, converted); } + } else if (base instanceof net.minecraft.server.v1_16_R3.NBTTagCompound) return convertNBT((net.minecraft.server.v1_16_R3.NBTTagCompound) base); else if (base instanceof net.minecraft.server.v1_16_R3.NBTTagEnd) @@ -1891,6 +1981,7 @@ public class NMSImpl implements NMSBridge { d0 = 0.01D; entity.fallDistance = 0.0F; } + Fluid fluid = entity.world.getFluid(entity.getChunkCoordinates()); if (entity.isInWater() /*&& entity.cT() */ && !entity.a(fluid.getType())) { double d1 = entity.locY(); @@ -1900,28 +1991,34 @@ public class NMSImpl implements NMSBridge { if (f2 > 3.0F) { f2 = 3.0F; } + if (!entity.isOnGround()) { f2 *= 0.5F; } + if (f2 > 0.0F) { f += (0.54600006F - f) * f2 / 3.0F; f1 += (entity.dN() - f1) * f2 / 3.0F; } + if (entity.hasEffect(MobEffects.DOLPHINS_GRACE)) { f = 0.96F; } + entity.a(f1, vec3d); entity.move(EnumMoveType.SELF, entity.getMot()); Vec3D vec3d1 = entity.getMot(); if (entity.positionChanged && entity.isClimbing()) { vec3d1 = new Vec3D(vec3d1.x, 0.2D, vec3d1.z); } + entity.setMot(vec3d1.d(f, 0.800000011920929D, f)); Vec3D vec3d2 = entity.a(d0, flag, entity.getMot()); entity.setMot(vec3d2); if (entity.positionChanged && entity.e(vec3d2.x, vec3d2.y + 0.6D - entity.locY() + d1, vec3d2.z)) { entity.setMot(vec3d2.x, 0.30000001192092896D, vec3d2.z); } + } else if (entity.aQ() /*&& entity.cT()*/ && !entity.a(fluid.getType())) { double d1 = entity.locY(); entity.a(0.02F, vec3d); @@ -1933,18 +2030,22 @@ public class NMSImpl implements NMSBridge { } else { entity.setMot(entity.getMot().a(0.5D)); } + if (!entity.isNoGravity()) { entity.setMot(entity.getMot().add(0.0D, -d0 / 4.0D, 0.0D)); } + Vec3D vec3d3 = entity.getMot(); if (entity.positionChanged && entity.e(vec3d3.x, vec3d3.y + 0.6D - entity.locY() + d1, vec3d3.z)) { entity.setMot(vec3d3.x, 0.3D, vec3d3.z); } + } else if (entity.isGliding()) { Vec3D vec3d4 = entity.getMot(); if (vec3d4.y > -0.5D) { entity.fallDistance = 1.0F; } + Vec3D vec3d5 = entity.getLookDirection(); float f = entity.pitch * 0.017453292F; double d2 = Math.sqrt(vec3d5.x * vec3d5.x + vec3d5.z * vec3d5.z); @@ -1957,14 +2058,17 @@ public class NMSImpl implements NMSBridge { double d5 = vec3d4.y * -0.1D * f3; vec3d4 = vec3d4.add(vec3d5.x * d5 / d2, d5, vec3d5.z * d5 / d2); } + if (f < 0.0F && d2 > 0.0D) { double d5 = d3 * -MathHelper.sin(f) * 0.04D; vec3d4 = vec3d4.add(-vec3d5.x * d5 / d2, d5 * 3.2D, -vec3d5.z * d5 / d2); } + if (d2 > 0.0D) { vec3d4 = vec3d4.add((vec3d5.x / d2 * d3 - vec3d4.x) * 0.1D, 0.0D, (vec3d5.z / d2 * d3 - vec3d4.z) * 0.1D); } + entity.setMot(vec3d4.d(0.9900000095367432D, 0.9800000190734863D, 0.9900000095367432D)); entity.move(EnumMoveType.SELF, entity.getMot()); if (entity.positionChanged && !entity.world.isClientSide) { @@ -1977,13 +2081,17 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + entity.damageEntity(DamageSource.FLY_INTO_WALL, f4); } + } + if (entity.isOnGround() && !entity.world.isClientSide && entity.getFlag(7) && !CraftEventFactory.callToggleGlideEvent(entity, false).isCancelled()) { entity.setFlag(7, false); } + } else { BlockPosition blockposition = new BlockPosition(entity.locX(), entity.getBoundingBox().minY - 0.5000001D, entity.locZ());// entity.ar(); @@ -2000,12 +2108,16 @@ public class NMSImpl implements NMSBridge { } else { d7 = 0.0D; } + } else if (!entity.isNoGravity()) { d7 -= d0; } + entity.setMot(vec3d6.x * f, d7 * 0.9800000190734863D, vec3d6.z * f); } + } + entity.a(entity, entity instanceof EntityBird); } @@ -2015,6 +2127,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -2050,6 +2163,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -2059,6 +2173,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -2095,6 +2210,7 @@ public class NMSImpl implements NMSBridge { if (mat != null) { minecart.setDisplayBlock(Block.getByCombinedId(mat.getId()).getBlock().getBlockData()); } + minecart.setDisplayBlockOffset(offset); } @@ -2111,6 +2227,7 @@ public class NMSImpl implements NMSBridge { handle.setMot(handle.getMot().a(0.9)); return true; } + return false; } @@ -2121,6 +2238,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void restoreGoals(NPC npc, PathfinderGoalSelector... goalSelectors) { @@ -2135,13 +2253,16 @@ public class NMSImpl implements NMSBridge { if (old != null) { list.addAll(old); } + } catch (Exception e) { Messaging.logTr(Messages.ERROR_RESTORING_GOALS, e.getLocalizedMessage()); } catch (Throwable e) { Messaging.logTr(Messages.ERROR_RESTORING_GOALS, e.getLocalizedMessage()); } + i++; } + } public static void sendPacket(Player player, Packet packet) { @@ -2168,10 +2289,13 @@ public class NMSImpl implements NMSBridge { || location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) { continue; } + for (Packet packet : packets) { NMSImpl.sendPacket(player, packet); } + } + } public static void sendPacketsNearby(Player from, Location location, Packet... packets) { @@ -2184,6 +2308,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setAttribute(EntityLiving entity, AttributeBase attribute, double value) { @@ -2201,8 +2326,10 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + range = entity.getAttributeMap().a(attribute); } + range.setValue(value); } @@ -2212,6 +2339,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setLookControl(EntityInsentient mob, ControllerLook control) { @@ -2220,6 +2348,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setNotInSchool(EntityFish entity) { @@ -2227,9 +2356,11 @@ public class NMSImpl implements NMSBridge { if (ENTITY_FISH_NUM_IN_SCHOOL != null) { ENTITY_FISH_NUM_IN_SCHOOL.invoke(entity, 2); } + } catch (Throwable ex) { ex.printStackTrace(); } + } public static void setSize(Entity entity, boolean justCreated) { @@ -2252,10 +2383,13 @@ public class NMSImpl implements NMSBridge { float f = entitysize.width - entitysize1.width; entity.move(EnumMoveType.SELF, new Vec3D(f, 0.0D, f)); } + } + } catch (Throwable e) { e.printStackTrace(); } + } public static void setSize(Entity entity, EntitySize size) { @@ -2265,6 +2399,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void stopNavigation(NavigationAbstract navigation) { @@ -2282,6 +2417,7 @@ public class NMSImpl implements NMSBridge { } else if (entity instanceof MobAI) { ((MobAI) entity).tickAI(); } + } public static void updateMinecraftAIState(NPC npc, EntityInsentient entity) { @@ -2294,6 +2430,7 @@ public class NMSImpl implements NMSBridge { getBehaviorMap(entity).putAll(behavior); npc.data().remove("behavior-map"); } + } else { NMSImpl.clearGoals(npc, entity.goalSelector, entity.targetSelector); TreeMap behaviorMap = getBehaviorMap(entity); @@ -2301,7 +2438,9 @@ public class NMSImpl implements NMSBridge { npc.data().set("behavior-map", new TreeMap(behaviorMap)); behaviorMap.clear(); } + } + } public static void updateNavigation(NavigationAbstract navigation) { @@ -2383,6 +2522,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage()); } + try { ENDERMAN_ANGRY = (DataWatcherObject) NMS.getField(EntityEnderman.class, "bo").get(null); } catch (IllegalArgumentException e) { @@ -2390,5 +2530,6 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } } diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PitchableLookControl.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PitchableLookControl.java index 24bca6353..2c54d27a6 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PitchableLookControl.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PitchableLookControl.java @@ -18,6 +18,7 @@ public class PitchableLookControl extends ControllerLook { } else { resetOnTick = () -> true; } + } @Override diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerAnimationImpl.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerAnimationImpl.java index 3201d1aa9..cc87f9f6a 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerAnimationImpl.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerAnimationImpl.java @@ -21,6 +21,7 @@ public class PlayerAnimationImpl { playDefaultAnimation(player, to, DEFAULTS.get(animation)); return; } + switch (animation) { case SNEAK: player.setPose(EntityPose.CROUCHING); @@ -51,6 +52,7 @@ public class PlayerAnimationImpl { default: throw new UnsupportedOperationException(); } + } protected static void playDefaultAnimation(EntityPlayer player, Iterable to, int code) { @@ -62,6 +64,7 @@ public class PlayerAnimationImpl { for (Player player : to) { NMSImpl.sendPacket(player, packet); } + } private static EnumMap DEFAULTS = Maps.newEnumMap(PlayerAnimation.class); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerlistTracker.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerlistTracker.java index d7e78ac18..bf6b6c663 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerlistTracker.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerlistTracker.java @@ -44,12 +44,14 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { if (res == null) { updateLastPlayer(player); } + return res; } }); } catch (Throwable e) { e.printStackTrace(); } + } else { try { Set delegate = super.trackedPlayers; @@ -60,6 +62,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { if (res) { updateLastPlayer(player); } + return res; } @@ -71,7 +74,9 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + } + } public PlayerlistTracker(PlayerChunkMap map, EntityTracker entry) { @@ -87,6 +92,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { Bukkit.getPluginManager().callEvent( new NPCLinkToPlayerEvent(((NPCHolder) tracker).getNPC(), lastUpdatedPlayer.getBukkitEntity())); } + } @Override @@ -110,7 +116,9 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + } + } super.updatePlayer(entityplayer); @@ -122,6 +130,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + return 0; } @@ -131,6 +140,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + return false; } @@ -140,6 +150,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -149,6 +160,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { } catch (Throwable e) { e.printStackTrace(); } + return 0; } @@ -168,7 +180,9 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { TRACKING_MAP_SETTER = NMS.getFirstSetter(EntityTracker.class, Map.class); TRACKING_MAP_GETTER = NMS.getFirstGetter(EntityTracker.class, Map.class); } + } catch (Exception e) { } + } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ArmorStandController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ArmorStandController.java index 0624e34b3..74bcfe00d 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ArmorStandController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/ArmorStandController.java @@ -59,6 +59,7 @@ public class ArmorStandController extends MobEntityController { if (ai != null) { ai = new BasicMobAI(this); } + } @Override @@ -71,6 +72,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ArmorStandNPC(this)); } + return super.getBukkitEntity(); } @@ -106,6 +108,7 @@ public class ArmorStandController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -116,6 +119,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +134,7 @@ public class ArmorStandController extends MobEntityController { npc.update(); ai.tickAI(); } + } @Override @@ -141,6 +146,7 @@ public class ArmorStandController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 980e4c92a..da3b4f502 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 @@ -76,6 +76,7 @@ public class AxolotlController extends MobEntityController { this.getAttribute(Attributes.MOVEMENT_SPEED) .setBaseValue(this.getAttribute(Attributes.MOVEMENT_SPEED).getBaseValue() / 10); } + } @Override @@ -97,6 +98,7 @@ public class AxolotlController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -104,6 +106,7 @@ public class AxolotlController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -116,6 +119,7 @@ public class AxolotlController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new AxolotlNPC(this)); } + return super.getBukkitEntity(); } @@ -202,6 +206,7 @@ public class AxolotlController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -212,6 +217,7 @@ public class AxolotlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -227,11 +233,14 @@ public class AxolotlController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -240,9 +249,11 @@ public class AxolotlController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -254,6 +265,7 @@ public class AxolotlController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 23ae6e15d..1d9157cca 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 @@ -58,6 +58,7 @@ public class BatController extends MobEntityController { if (npc != null) { setResting(false); } + } @Override @@ -72,6 +73,7 @@ public class BatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -83,8 +85,10 @@ public class BatController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -97,6 +101,7 @@ public class BatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BatNPC(this)); } + return super.getBukkitEntity(); } @@ -158,6 +163,7 @@ public class BatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -168,6 +174,7 @@ public class BatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -184,6 +191,7 @@ public class BatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 a78719cf9..c03db84a7 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 @@ -69,6 +69,7 @@ public class BeeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,8 +81,10 @@ public class BeeController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -94,6 +97,7 @@ public class BeeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BeeNPC(this)); } + return super.getBukkitEntity(); } @@ -155,6 +159,7 @@ public class BeeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -165,6 +170,7 @@ public class BeeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -181,6 +187,7 @@ public class BeeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 912df860f..02229d242 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 @@ -69,6 +69,7 @@ public class BlazeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -77,6 +78,7 @@ public class BlazeController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -89,6 +91,7 @@ public class BlazeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BlazeNPC(this)); } + return super.getBukkitEntity(); } @@ -150,6 +153,7 @@ public class BlazeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -160,6 +164,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -176,6 +181,7 @@ public class BlazeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 e63900c4d..5f9fff582 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 @@ -79,6 +79,7 @@ public class CatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -86,6 +87,7 @@ public class CatController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -95,6 +97,7 @@ public class CatController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -107,6 +110,7 @@ public class CatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CatNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +180,7 @@ public class CatController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -185,6 +190,7 @@ public class CatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -195,6 +201,7 @@ public class CatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -209,6 +216,7 @@ public class CatController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -220,6 +228,7 @@ public class CatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 6dfef8c6c..35174ada9 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 @@ -78,6 +78,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -85,6 +86,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -94,6 +96,7 @@ public class CaveSpiderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -106,6 +109,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CaveSpiderNPC(this)); } + return super.getBukkitEntity(); } @@ -175,6 +179,7 @@ public class CaveSpiderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -185,6 +190,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -194,6 +200,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -208,6 +215,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -219,6 +227,7 @@ public class CaveSpiderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 6159667ae..0e6fa24d7 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 @@ -65,6 +65,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { this.eggTime = 100; } + super.aiStep(); } @@ -87,6 +88,7 @@ public class ChickenController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -94,6 +96,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -103,6 +106,7 @@ public class ChickenController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -115,6 +119,7 @@ public class ChickenController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ChickenNPC(this)); } + return super.getBukkitEntity(); } @@ -184,6 +189,7 @@ public class ChickenController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -193,6 +199,7 @@ public class ChickenController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +210,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -217,6 +225,7 @@ public class ChickenController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -228,6 +237,7 @@ public class ChickenController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 02a08d2d1..722895630 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 @@ -70,6 +70,7 @@ public class CodController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -78,10 +79,12 @@ public class CodController extends MobEntityController { if (npc != null) { this.verticalCollision = false; } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; } + } @Override @@ -103,6 +106,7 @@ public class CodController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class CodController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -118,18 +123,23 @@ public class CodController extends MobEntityController { if (!npc.useMinecraftAI()) { NMSImpl.setNotInSchool(this); } + NMSImpl.updateMinecraftAIState(npc, this); if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -142,6 +152,7 @@ public class CodController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CodNPC(this)); } + return super.getBukkitEntity(); } @@ -221,6 +232,7 @@ public class CodController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -231,6 +243,7 @@ public class CodController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -244,9 +257,11 @@ public class CodController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -258,6 +273,7 @@ public class CodController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 e7607411a..c75d2ce72 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 @@ -84,6 +84,7 @@ public class CowController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -91,6 +92,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -100,6 +102,7 @@ public class CowController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -112,6 +115,7 @@ public class CowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CowNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +195,7 @@ public class CowController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -200,6 +205,7 @@ public class CowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -210,6 +216,7 @@ public class CowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -224,6 +231,7 @@ public class CowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -235,6 +243,7 @@ public class CowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 0ecc281af..fa7e83546 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 @@ -82,6 +82,7 @@ public class CreeperController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -89,6 +90,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -98,6 +100,7 @@ public class CreeperController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -110,6 +113,7 @@ public class CreeperController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CreeperNPC(this)); } + return super.getBukkitEntity(); } @@ -148,6 +152,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isProtected()) { super.ignite(); } + } @Override @@ -186,6 +191,7 @@ public class CreeperController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -196,6 +202,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -205,6 +212,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -221,6 +229,7 @@ public class CreeperController extends MobEntityController { if (npc == null || allowPowered) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -230,6 +239,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -241,6 +251,7 @@ public class CreeperController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 57d0a1610..569ee3156 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 @@ -70,6 +70,7 @@ public class DolphinController extends MobEntityController { this.getAttribute(Attributes.MOVEMENT_SPEED) .setBaseValue(this.getAttribute(Attributes.MOVEMENT_SPEED).getBaseValue() / 10); } + } @Override @@ -91,6 +92,7 @@ public class DolphinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -98,6 +100,7 @@ public class DolphinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -110,6 +113,7 @@ public class DolphinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DolphinNPC(this)); } + return super.getBukkitEntity(); } @@ -184,6 +188,7 @@ public class DolphinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -194,6 +199,7 @@ public class DolphinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -206,6 +212,7 @@ public class DolphinController extends MobEntityController { if (npc != null && npc.isProtected()) { inProtectedTick = true; } + super.tick(); inProtectedTick = false; if (npc != null) { @@ -213,11 +220,14 @@ public class DolphinController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -226,9 +236,11 @@ public class DolphinController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -240,6 +252,7 @@ public class DolphinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 3655861bf..6be1671d8 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 @@ -78,6 +78,7 @@ public class DrownedController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -85,6 +86,7 @@ public class DrownedController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -94,6 +96,7 @@ public class DrownedController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -106,6 +109,7 @@ public class DrownedController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DrownedNPC(this)); } + return super.getBukkitEntity(); } @@ -175,6 +179,7 @@ public class DrownedController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -185,6 +190,7 @@ public class DrownedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -199,6 +205,7 @@ public class DrownedController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -210,6 +217,7 @@ public class DrownedController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 0cf42d3dc..a17fc69ad 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 @@ -69,16 +69,19 @@ public class EnderDragonController extends MobEntityController { npc.update(); NMSImpl.updateMinecraftAIState(npc, this); } + if (npc != null && !npc.useMinecraftAI()) { if (isDeadOrDying()) { setHealth(0F); return; } + if (this.posPointer < 0) { for (int i = 0; i < this.positions.length; ++i) { this.positions[i][0] = this.getYRot(); this.positions[i][1] = this.getY(); } + } if (++this.posPointer == this.positions.length) { @@ -103,12 +106,14 @@ public class EnderDragonController extends MobEntityController { if (getFirstPassenger() != null) { setYRot(getFirstPassenger().getBukkitYaw() - 180); } + Vec3 mot = getDeltaMovement(); if (mot.x != 0 || mot.y != 0 || mot.z != 0) { mot = mot.multiply(0.98, 0.98, 0.98); if (getFirstPassenger() == null) { setYRot(Util.getDragonYaw(getBukkitEntity(), mot.x, mot.z)); } + setPos(getX() + mot.x, getY() + mot.y, getZ() + mot.z); setDeltaMovement(mot); } @@ -122,8 +127,11 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + } + } + if (npc.data().get(NPC.Metadata.COLLIDABLE, false)) { try { KNOCKBACK.invoke(this, @@ -141,10 +149,13 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable t) { t.printStackTrace(); } + } + } else { super.aiStep(); } + } @Override @@ -159,6 +170,7 @@ public class EnderDragonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -171,6 +183,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderDragonNPC(this)); } + return super.getBukkitEntity(); } @@ -232,6 +245,7 @@ public class EnderDragonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -242,6 +256,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -254,6 +269,7 @@ public class EnderDragonController extends MobEntityController { if (getPhaseManager().getCurrentPhase().getPhase() == EnderDragonPhase.HOVERING) { setDeltaMovement(old); } + return res; } @@ -271,6 +287,7 @@ public class EnderDragonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } 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 40c1192cf..11f107cff 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 @@ -81,6 +81,7 @@ public class EndermanController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -88,6 +89,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -98,9 +100,11 @@ public class EndermanController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -113,6 +117,7 @@ public class EndermanController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EndermanNPC(this)); } + return super.getBukkitEntity(); } @@ -182,6 +187,7 @@ public class EndermanController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -192,6 +198,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +208,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -223,6 +231,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -234,6 +243,7 @@ public class EndermanController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 06eacc26e..b051c0801 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 @@ -78,6 +78,7 @@ public class EndermiteController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -85,6 +86,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -94,6 +96,7 @@ public class EndermiteController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -106,6 +109,7 @@ public class EndermiteController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EndermiteNPC(this)); } + return super.getBukkitEntity(); } @@ -175,6 +179,7 @@ public class EndermiteController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -185,6 +190,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -194,6 +200,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -208,6 +215,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -219,6 +227,7 @@ public class EndermiteController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EntityHumanNPC.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EntityHumanNPC.java index 06164bb96..5cef3d842 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EntityHumanNPC.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EntityHumanNPC.java @@ -74,10 +74,12 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } catch (Throwable e) { e.printStackTrace(); } + initialise(minecraftServer); } else { skinTracker = null; } + } @Override @@ -99,6 +101,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -120,6 +123,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable super.doTick(); return; } + super.baseTick(); boolean navigating = npc.getNavigator().isNavigating() || ai.getMoveControl().hasWanted(); if (!navigating && getBukkitEntity() != null @@ -128,16 +132,20 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable && (!npc.isProtected() || SpigotUtil.checkYSafe(getY(), getBukkitEntity().getWorld()))) { moveWithFallDamage(Vec3.ZERO); } + Vec3 mot = getDeltaMovement(); if (Math.abs(mot.x) < EPSILON && Math.abs(mot.y) < EPSILON && Math.abs(mot.z) < EPSILON) { setDeltaMovement(Vec3.ZERO); } + if (navigating) { if (!ai.getNavigation().isDone()) { ai.getNavigation().tick(); } + moveOnCurrentHeading(); } + ai.getJumpControl().tick(); ai.getMoveControl().tick(); detectEquipmentUpdates(); @@ -155,10 +163,13 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } else { axisalignedbb = this.getBoundingBox().inflate(1.0, 0.5, 1.0); } + for (Entity entity : this.level.getEntities(this, axisalignedbb)) { entity.playerTouch(this); } + } + } @Override @@ -166,6 +177,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (playerlistTracker != null) { playerlistTracker.updateLastPlayer(); } + return super.getAddEntityPacket(); } @@ -179,6 +191,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PlayerNPC(this)); } + return super.getBukkitEntity(); } @@ -208,6 +221,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (skinName == null) { skinName = npc.getName(); } + return skinName.toLowerCase(); } @@ -236,8 +250,10 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable boolean damaged = super.hurt(damagesource, f); if (damaged && hurtMarked) { hurtMarked = false; - Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), (Runnable) () -> EntityHumanNPC.this.hurtMarked = true); + Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), + (Runnable) () -> EntityHumanNPC.this.hurtMarked = true); } + return damaged; } @@ -249,6 +265,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } catch (IOException e) { // swallow } + this.invulnerableTime = 0; NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing setSkinFlags((byte) 0xFF); @@ -278,9 +295,11 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable jumpFromGround(); jumpTicks = 10; } + } else { jumpTicks = 0; } + xxa *= 0.98F; zza *= 0.98F; moveWithFallDamage(new Vec3(this.xxa, this.yya, this.zza)); @@ -288,6 +307,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (jumpTicks > 0) { jumpTicks--; } + } private void moveWithFallDamage(Vec3 vec) { @@ -296,6 +316,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (!npc.isProtected()) { doCheckFallDamage(getY() - y, onGround); } + } @Override @@ -312,6 +333,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -322,6 +344,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -372,6 +395,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } private void updatePackets(boolean navigating) { 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 3077328d8..0b1e1cd35 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 @@ -72,6 +72,7 @@ public class EvokerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class EvokerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class EvokerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class EvokerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EvokerNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class EvokerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class EvokerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -193,6 +199,7 @@ public class EvokerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -204,6 +211,7 @@ public class EvokerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 ed0e1615c..53b8d11cc 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 @@ -73,6 +73,7 @@ public class FoxController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class FoxController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class FoxController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class FoxController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FoxNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class FoxController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -179,6 +184,7 @@ public class FoxController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +195,7 @@ public class FoxController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -203,6 +210,7 @@ public class FoxController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -214,6 +222,7 @@ public class FoxController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 2c8749cf5..c50d69004 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 @@ -63,6 +63,7 @@ public class GhastController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -71,6 +72,7 @@ public class GhastController extends MobEntityController { npc.update(); NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); } @@ -84,6 +86,7 @@ public class GhastController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GhastNPC(this)); } + return super.getBukkitEntity(); } @@ -150,6 +153,7 @@ public class GhastController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -160,6 +164,7 @@ public class GhastController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -176,6 +181,7 @@ public class GhastController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 1c9987a13..c1acac0b3 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 @@ -72,6 +72,7 @@ public class GiantController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class GiantController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class GiantController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GiantNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class GiantController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class GiantController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -188,6 +194,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -202,6 +209,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +221,7 @@ public class GiantController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 bb22d76e1..51d7b10cc 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 @@ -72,6 +72,7 @@ public class GlowSquidController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class GlowSquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class GlowSquidController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class GlowSquidController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GlowSquidNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class GlowSquidController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class GlowSquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -188,6 +194,7 @@ public class GlowSquidController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -202,6 +209,7 @@ public class GlowSquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +221,7 @@ public class GlowSquidController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 7136cb818..0c49f9372 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 @@ -73,6 +73,7 @@ public class GoatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class GoatController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class GoatController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class GoatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GoatNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class GoatController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -179,6 +184,7 @@ public class GoatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +195,7 @@ public class GoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -203,6 +210,7 @@ public class GoatController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -214,6 +222,7 @@ public class GoatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 d2fa8a141..83e79d8ee 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 @@ -64,8 +64,10 @@ public class GuardianController extends MobEntityController { } else { super.aiStep(); } + npc.update(); } + } @Override @@ -87,6 +89,7 @@ public class GuardianController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -94,6 +97,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -106,6 +110,7 @@ public class GuardianController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GuardianNPC(this)); } + return super.getBukkitEntity(); } @@ -175,6 +180,7 @@ public class GuardianController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -185,6 +191,7 @@ public class GuardianController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -194,6 +201,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -208,6 +216,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -219,6 +228,7 @@ public class GuardianController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 eee5dfa50..c4866b4a4 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 @@ -64,8 +64,10 @@ public class GuardianElderController extends MobEntityController { } else { super.aiStep(); } + npc.update(); } + } @Override @@ -87,6 +89,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -94,6 +97,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -106,6 +110,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GuardianElderNPC(this)); } + return super.getBukkitEntity(); } @@ -175,6 +180,7 @@ public class GuardianElderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -185,6 +191,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -194,6 +201,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -208,6 +216,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -219,6 +228,7 @@ public class GuardianElderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 3b1c8fdd8..524c93582 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 @@ -72,6 +72,7 @@ public class HoglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class HoglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -87,10 +89,12 @@ public class HoglinController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -103,6 +107,7 @@ public class HoglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HoglinNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +177,7 @@ public class HoglinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -182,6 +188,7 @@ public class HoglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -196,6 +203,7 @@ public class HoglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -207,6 +215,7 @@ public class HoglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 bd9ed643d..bcb274464 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 @@ -71,6 +71,7 @@ public class HorseController extends MobEntityController { horse.setDomestication(horse.getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -97,6 +98,7 @@ public class HorseController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -104,6 +106,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -119,13 +122,16 @@ public class HorseController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } @@ -140,6 +146,7 @@ public class HorseController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseNPC(this)); } + return super.getBukkitEntity(); } @@ -216,6 +223,7 @@ public class HorseController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -225,6 +233,7 @@ public class HorseController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -235,6 +244,7 @@ public class HorseController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -249,6 +259,7 @@ public class HorseController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -260,6 +271,7 @@ public class HorseController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 9af9559c8..e0d22332d 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 @@ -71,6 +71,7 @@ public class HorseDonkeyController extends MobEntityController { .setDomestication(((org.bukkit.entity.Donkey) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -97,6 +98,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -104,6 +106,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -118,16 +121,20 @@ public class HorseDonkeyController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -140,6 +147,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseDonkeyNPC(this)); } + return super.getBukkitEntity(); } @@ -216,6 +224,7 @@ public class HorseDonkeyController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -225,6 +234,7 @@ public class HorseDonkeyController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -235,6 +245,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -249,6 +260,7 @@ public class HorseDonkeyController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -260,6 +272,7 @@ public class HorseDonkeyController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 6a25a23a5..941327811 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 @@ -71,6 +71,7 @@ public class HorseMuleController extends MobEntityController { .setDomestication(((org.bukkit.entity.Mule) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -97,6 +98,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -104,6 +106,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -118,16 +121,20 @@ public class HorseMuleController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -140,6 +147,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseMuleNPC(this)); } + return super.getBukkitEntity(); } @@ -216,6 +224,7 @@ public class HorseMuleController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -225,6 +234,7 @@ public class HorseMuleController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -235,6 +245,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -249,6 +260,7 @@ public class HorseMuleController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -260,6 +272,7 @@ public class HorseMuleController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 0979a436e..e02cf9ac2 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 @@ -71,6 +71,7 @@ public class HorseSkeletonController extends MobEntityController { .setDomestication(((org.bukkit.entity.SkeletonHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -97,6 +98,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -104,6 +106,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -118,16 +121,20 @@ public class HorseSkeletonController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -140,6 +147,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseSkeletonNPC(this)); } + return super.getBukkitEntity(); } @@ -216,6 +224,7 @@ public class HorseSkeletonController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -225,6 +234,7 @@ public class HorseSkeletonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -235,6 +245,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -249,6 +260,7 @@ public class HorseSkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -260,6 +272,7 @@ public class HorseSkeletonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 1c3da6d73..71f7c24e7 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 @@ -71,6 +71,7 @@ public class HorseZombieController extends MobEntityController { .setDomestication(((org.bukkit.entity.ZombieHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -97,6 +98,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -104,6 +106,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -118,16 +121,20 @@ public class HorseZombieController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -140,6 +147,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -216,6 +224,7 @@ public class HorseZombieController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -225,6 +234,7 @@ public class HorseZombieController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -235,6 +245,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -249,6 +260,7 @@ public class HorseZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -260,6 +272,7 @@ public class HorseZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HumanController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HumanController.java index 43e4a27bc..669c81d46 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HumanController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HumanController.java @@ -35,15 +35,18 @@ public class HumanController extends AbstractEntityController { if (npc.requiresNameHologram()) { name = teamName; } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(teamName); } + final GameProfile profile = new GameProfile(uuid, name); final EntityHumanNPC handle = new EntityHumanNPC(MinecraftServer.getServer(), nmsWorld, profile, npc); Skin skin = handle.getSkinTracker().getSkin(); if (skin != null) { skin.apply(handle); } + Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> { if (getBukkitEntity() == null || !getBukkitEntity().isValid() || getBukkitEntity() != handle.getBukkitEntity()) 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 e990eb915..1153e1048 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 @@ -72,6 +72,7 @@ public class IllusionerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class IllusionerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class IllusionerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class IllusionerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new IllusionerNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class IllusionerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class IllusionerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -193,6 +199,7 @@ public class IllusionerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -204,6 +211,7 @@ public class IllusionerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 37fbf5f8c..e9d5819b4 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 @@ -72,6 +72,7 @@ public class IronGolemController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class IronGolemController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class IronGolemController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new IronGolemNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class IronGolemController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -188,6 +194,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -202,6 +209,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +221,7 @@ public class IronGolemController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 a51cf12d1..39330bd0b 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 @@ -71,6 +71,7 @@ public class LlamaController extends MobEntityController { .setDomestication(((org.bukkit.entity.Llama) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -92,6 +93,7 @@ public class LlamaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -99,6 +101,7 @@ public class LlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -113,16 +116,20 @@ public class LlamaController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -135,6 +142,7 @@ public class LlamaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LlamaNPC(this)); } + return super.getBukkitEntity(); } @@ -211,6 +219,7 @@ public class LlamaController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -220,6 +229,7 @@ public class LlamaController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -230,6 +240,7 @@ public class LlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -244,6 +255,7 @@ public class LlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -255,6 +267,7 @@ public class LlamaController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 0e52f51c0..ebb02b0f3 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 @@ -61,6 +61,7 @@ public class MagmaCubeController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new EntityMoveControl(this); } + } @Override @@ -82,6 +83,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -89,6 +91,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -101,6 +104,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MagmaCubeNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.playerTouch(human); } + } @Override @@ -177,6 +182,7 @@ public class MagmaCubeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -187,6 +193,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -196,6 +203,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -211,11 +219,14 @@ public class MagmaCubeController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -225,6 +236,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -236,6 +248,7 @@ public class MagmaCubeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MobEntityController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MobEntityController.java index a973f482f..3e44da98b 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MobEntityController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MobEntityController.java @@ -41,18 +41,23 @@ public abstract class MobEntityController extends AbstractEntityController { if (mob.getLookControl().getClass() == LookControl.class) { NMSImpl.setLookControl(mob, new PitchableLookControl(mob)); } + } + // entity.onGround isn't updated right away - we approximate here so // that things like pathfinding still work *immediately* after spawn. org.bukkit.Material beneath = at.getBlock().getRelative(BlockFace.DOWN).getType(); if (beneath.isSolid()) { entity.setOnGround(true); } + entity.setUUID(npc.getUniqueId()); if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } + } + return entity.getBukkitEntity(); } @@ -63,6 +68,7 @@ public abstract class MobEntityController extends AbstractEntityController { ex.printStackTrace(); return null; } + } private static Constructor getConstructor(Class clazz) { @@ -75,6 +81,7 @@ public abstract class MobEntityController extends AbstractEntityController { } catch (Exception ex) { throw new IllegalStateException("unable to find an entity constructor"); } + } private static final Map, Constructor> CONSTRUCTOR_CACHE = new WeakHashMap<>(); 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 86afd2e28..44e93ee96 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 @@ -76,6 +76,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -83,6 +84,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -92,6 +94,7 @@ public class MushroomCowController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -104,6 +107,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MushroomCowNPC(this)); } + return super.getBukkitEntity(); } @@ -180,6 +184,7 @@ public class MushroomCowController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -189,6 +194,7 @@ public class MushroomCowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -199,6 +205,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -213,6 +220,7 @@ public class MushroomCowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -224,6 +232,7 @@ public class MushroomCowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 06602a83d..f1d7dbf9f 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 @@ -74,6 +74,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -91,10 +93,12 @@ public class OcelotController extends MobEntityController { if (restorePose) { this.setPose(old); } + if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -107,6 +111,7 @@ public class OcelotController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new OcelotNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +181,7 @@ public class OcelotController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -185,6 +191,7 @@ public class OcelotController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -195,6 +202,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -209,6 +217,7 @@ public class OcelotController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -220,6 +229,7 @@ public class OcelotController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 165635ca3..c23305e4f 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 @@ -73,6 +73,7 @@ public class PandaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class PandaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class PandaController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class PandaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PandaNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class PandaController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -179,6 +184,7 @@ public class PandaController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +195,7 @@ public class PandaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -203,6 +210,7 @@ public class PandaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -214,6 +222,7 @@ public class PandaController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 3c85beccf..27c5a8e4c 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 @@ -66,6 +66,7 @@ public class ParrotController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -77,8 +78,10 @@ public class ParrotController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -91,6 +94,7 @@ public class ParrotController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ParrotNPC(this)); } + return super.getBukkitEntity(); } @@ -160,6 +164,7 @@ public class ParrotController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -170,6 +175,7 @@ public class ParrotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -186,6 +192,7 @@ public class ParrotController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 2dfb793cf..7e546a4b9 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 @@ -66,6 +66,7 @@ public class PhantomController extends MobEntityController { this.lookControl = new LookControl(this); // TODO: phantom pitch reversed } + } @Override @@ -77,15 +78,19 @@ public class PhantomController extends MobEntityController { this.moveControl = this.oldMoveController; this.lookControl = this.oldLookController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); this.lookControl = new LookControl(this); } + if (npc.isProtected()) { this.setSecondsOnFire(0); } + npc.update(); } + } @Override @@ -107,6 +112,7 @@ public class PhantomController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -114,6 +120,7 @@ public class PhantomController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -126,6 +133,7 @@ public class PhantomController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PhantomNPC(this)); } + return super.getBukkitEntity(); } @@ -202,6 +210,7 @@ public class PhantomController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -211,6 +220,7 @@ public class PhantomController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -221,6 +231,7 @@ public class PhantomController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -240,6 +251,7 @@ public class PhantomController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -251,6 +263,7 @@ public class PhantomController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 4d1943bd6..2f1078bad 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 @@ -81,6 +81,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -88,6 +89,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -97,6 +99,7 @@ public class PigController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -109,6 +112,7 @@ public class PigController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PigNPC(this)); } + return super.getBukkitEntity(); } @@ -178,6 +182,7 @@ public class PigController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -187,6 +192,7 @@ public class PigController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -197,6 +203,7 @@ public class PigController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -209,6 +216,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -218,6 +226,7 @@ public class PigController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -229,6 +238,7 @@ public class PigController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 9a6bbabd2..178c4194c 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 @@ -72,6 +72,7 @@ public class PigZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class PigZombieController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class PigZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PigZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class PigZombieController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -192,9 +198,11 @@ public class PigZombieController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -206,6 +214,7 @@ public class PigZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 f87a38e51..b2f7a0fd8 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 @@ -72,6 +72,7 @@ public class PiglinBruteController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class PiglinBruteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -87,10 +89,12 @@ public class PiglinBruteController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -103,6 +107,7 @@ public class PiglinBruteController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PiglinBruteNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +177,7 @@ public class PiglinBruteController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -182,6 +188,7 @@ public class PiglinBruteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -196,6 +203,7 @@ public class PiglinBruteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -207,6 +215,7 @@ public class PiglinBruteController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 ac7feefa7..13933cee7 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 @@ -72,6 +72,7 @@ public class PiglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class PiglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -87,10 +89,12 @@ public class PiglinController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -103,6 +107,7 @@ public class PiglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PiglinNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +177,7 @@ public class PiglinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -182,6 +188,7 @@ public class PiglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -196,6 +203,7 @@ public class PiglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -207,6 +215,7 @@ public class PiglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 91d1bd3d8..521022c92 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 @@ -73,6 +73,7 @@ public class PillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class PillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class PillagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class PillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class PillagerController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -179,6 +184,7 @@ public class PillagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +195,7 @@ public class PillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -203,6 +210,7 @@ public class PillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -214,6 +222,7 @@ public class PillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 a6f608fe4..92add5a4b 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 @@ -64,6 +64,7 @@ public class PolarBearController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -73,6 +74,7 @@ public class PolarBearController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -85,6 +87,7 @@ public class PolarBearController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PolarBearNPC(this)); } + return super.getBukkitEntity(); } @@ -146,6 +149,7 @@ public class PolarBearController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -155,6 +159,7 @@ public class PolarBearController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -165,6 +170,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -181,6 +187,7 @@ public class PolarBearController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 6d0d84f7f..ab94d5d37 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 @@ -67,6 +67,7 @@ public class PufferFishController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -77,11 +78,13 @@ public class PufferFishController extends MobEntityController { this.verticalCollision = false; setPuffState(0); } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; setPuffState(lastPuffState); } + } @Override @@ -103,6 +106,7 @@ public class PufferFishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -110,6 +114,7 @@ public class PufferFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -120,11 +125,14 @@ public class PufferFishController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -137,6 +145,7 @@ public class PufferFishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PufferFishNPC(this)); } + return super.getBukkitEntity(); } @@ -223,6 +232,7 @@ public class PufferFishController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -233,6 +243,7 @@ public class PufferFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -245,11 +256,13 @@ public class PufferFishController extends MobEntityController { if (npc != null) { NMSImpl.resetPuffTicks(this); } + super.tick(); PufferFishTrait trait = null; if (npc != null && (trait = npc.getTraitNullable(PufferFishTrait.class)) != null) { setPuffState(trait.getPuffState()); } + } @Override @@ -258,9 +271,11 @@ public class PufferFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -272,6 +287,7 @@ public class PufferFishController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } @@ -284,6 +300,7 @@ public class PufferFishController extends MobEntityController { default: return 1.0F; } + } } 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 3b822a10d..cb6cd7191 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 @@ -74,6 +74,7 @@ public class RabbitController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -91,8 +93,10 @@ public class RabbitController extends MobEntityController { if (npc.getNavigator().isNavigating()) { NMS.setShouldJump(getBukkitEntity()); } + npc.update(); } + } @Override @@ -105,6 +109,7 @@ public class RabbitController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new RabbitNPC(this)); } + return super.getBukkitEntity(); } @@ -179,6 +184,7 @@ public class RabbitController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -188,6 +194,7 @@ public class RabbitController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -198,6 +205,7 @@ public class RabbitController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -213,6 +221,7 @@ public class RabbitController extends MobEntityController { this.entityData.set(NMSImpl.getRabbitTypeField(), i); return; } + super.setRabbitType(i); } @@ -223,6 +232,7 @@ public class RabbitController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -234,6 +244,7 @@ public class RabbitController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 7f304c219..fc405dbce 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 @@ -73,6 +73,7 @@ public class RavagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class RavagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class RavagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class RavagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new RavagerNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class RavagerController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -179,6 +184,7 @@ public class RavagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +195,7 @@ public class RavagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -203,6 +210,7 @@ public class RavagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -214,6 +222,7 @@ public class RavagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 9590bd14a..5806cd94f 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 @@ -64,6 +64,7 @@ public class SalmonController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -72,10 +73,12 @@ public class SalmonController extends MobEntityController { if (npc != null) { this.verticalCollision = false; } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; } + } @Override @@ -97,6 +100,7 @@ public class SalmonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -104,6 +108,7 @@ public class SalmonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -114,14 +119,18 @@ public class SalmonController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -134,6 +143,7 @@ public class SalmonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SalmonNPC(this)); } + return super.getBukkitEntity(); } @@ -213,6 +223,7 @@ public class SalmonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -223,6 +234,7 @@ public class SalmonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -236,9 +248,11 @@ public class SalmonController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -250,6 +264,7 @@ public class SalmonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 6ae633369..9060e1a64 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 @@ -73,6 +73,7 @@ public class SheepController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SheepController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SheepController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SheepNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SheepController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -179,6 +184,7 @@ public class SheepController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +195,7 @@ public class SheepController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -203,6 +210,7 @@ public class SheepController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -214,6 +222,7 @@ public class SheepController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 a65ccc237..adf2da5cc 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 @@ -59,6 +59,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || npc.useMinecraftAI()) { super.aiStep(); } + } @Override @@ -80,6 +81,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -87,6 +89,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -104,6 +107,7 @@ public class ShulkerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ShulkerNPC(this)); } + return super.getBukkitEntity(); } @@ -173,6 +177,7 @@ public class ShulkerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -183,6 +188,7 @@ public class ShulkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -192,6 +198,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -206,10 +213,12 @@ public class ShulkerController extends MobEntityController { if (npc.useMinecraftAI()) { super.tick(); } + npc.update(); } else { super.tick(); } + } @Override @@ -219,6 +228,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -230,6 +240,7 @@ public class ShulkerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 9b4097a94..db7995224 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 @@ -72,6 +72,7 @@ public class SilverfishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class SilverfishController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class SilverfishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SilverfishNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class SilverfishController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -188,6 +194,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -202,6 +209,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +221,7 @@ public class SilverfishController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 b7598dc83..3e30f37c2 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 @@ -72,6 +72,7 @@ public class SkeletonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class SkeletonController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class SkeletonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SkeletonNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class SkeletonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -188,6 +194,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -202,6 +209,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +221,7 @@ public class SkeletonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 1f17f4321..6018ac279 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 @@ -72,6 +72,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class SkeletonStrayController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new StrayNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class SkeletonStrayController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -188,6 +194,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -202,6 +209,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +221,7 @@ public class SkeletonStrayController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 a52c0e969..938b2d44d 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 @@ -72,6 +72,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class SkeletonWitherController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SkeletonWitherNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class SkeletonWitherController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -188,6 +194,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -202,6 +209,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +221,7 @@ public class SkeletonWitherController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 1a0982a5d..cd1b51a5a 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 @@ -61,6 +61,7 @@ public class SlimeController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new EntityMoveControl(this); } + } @Override @@ -82,6 +83,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -89,6 +91,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -101,6 +104,7 @@ public class SlimeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SlimeNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.playerTouch(human); } + } @Override @@ -177,6 +182,7 @@ public class SlimeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -187,6 +193,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -196,6 +203,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -211,11 +219,14 @@ public class SlimeController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -225,6 +236,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -236,6 +248,7 @@ public class SlimeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 4a7d9c302..810eed165 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 @@ -72,6 +72,7 @@ public class SnowmanController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class SnowmanController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class SnowmanController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnowmanNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class SnowmanController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -188,6 +194,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -202,6 +209,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +221,7 @@ public class SnowmanController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 e8b644a16..fa601040b 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 @@ -72,6 +72,7 @@ public class SpiderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class SpiderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class SpiderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SpiderNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class SpiderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -188,6 +194,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -202,6 +209,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +221,7 @@ public class SpiderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 99e0c2eb7..3760ab614 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 @@ -72,6 +72,7 @@ public class SquidController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class SquidController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class SquidController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SquidNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class SquidController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class SquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -188,6 +194,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -202,6 +209,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +221,7 @@ public class SquidController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 757b0331a..020ee744b 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 @@ -72,6 +72,7 @@ public class StriderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class StriderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class StriderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class StriderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new StriderNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class StriderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class StriderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -193,6 +199,7 @@ public class StriderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -204,6 +211,7 @@ public class StriderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 bda3388b9..2283645ce 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 @@ -64,6 +64,7 @@ public class TraderLlamaController extends MobEntityController { ((org.bukkit.entity.TraderLlama) getBukkitEntity()) .setDomestication(((org.bukkit.entity.TraderLlama) getBukkitEntity()).getMaxDomestication()); } + } @Override @@ -85,6 +86,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -92,6 +94,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -103,10 +106,12 @@ public class TraderLlamaController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + setDespawnDelay(10); NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -119,6 +124,7 @@ public class TraderLlamaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TraderLlamaNPC(this)); } + return super.getBukkitEntity(); } @@ -188,6 +194,7 @@ public class TraderLlamaController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -197,6 +204,7 @@ public class TraderLlamaController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -207,6 +215,7 @@ public class TraderLlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -221,6 +230,7 @@ public class TraderLlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -232,6 +242,7 @@ public class TraderLlamaController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 0f2100054..ce25bb08e 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 @@ -64,6 +64,7 @@ public class TropicalFishController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -72,10 +73,12 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { this.verticalCollision = false; } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; } + } @Override @@ -97,6 +100,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -104,6 +108,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -112,18 +117,23 @@ public class TropicalFishController extends MobEntityController { if (!npc.useMinecraftAI()) { NMSImpl.setNotInSchool(this); } + NMSImpl.updateMinecraftAIState(npc, this); if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -136,6 +146,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TropicalFishNPC(this)); } + return super.getBukkitEntity(); } @@ -215,6 +226,7 @@ public class TropicalFishController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -225,6 +237,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -238,9 +251,11 @@ public class TropicalFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -252,6 +267,7 @@ public class TropicalFishController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 e4a2f6fde..594198ed4 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 @@ -65,6 +65,7 @@ public class TurtleController extends MobEntityController { this.moveControl = new MoveControl(this); this.jumpControl = new EmptyControllerJump(this); } + } @Override @@ -86,6 +87,7 @@ public class TurtleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -93,6 +95,7 @@ public class TurtleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -104,12 +107,15 @@ public class TurtleController extends MobEntityController { this.moveControl = this.oldMoveController; this.jumpControl = this.oldJumpController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); this.jumpControl = new EmptyControllerJump(this); } + npc.update(); } + } @Override @@ -122,6 +128,7 @@ public class TurtleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TurtleNPC(this)); } + return super.getBukkitEntity(); } @@ -191,6 +198,7 @@ public class TurtleController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -201,6 +209,7 @@ public class TurtleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -214,9 +223,11 @@ public class TurtleController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -228,6 +239,7 @@ public class TurtleController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } 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 cfb4e1712..71b35574f 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 @@ -52,6 +52,7 @@ public class VexController extends MobEntityController { if (npc != null) { setNoGravity(true); } + } @Override @@ -66,6 +67,7 @@ public class VexController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -75,6 +77,7 @@ public class VexController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -87,6 +90,7 @@ public class VexController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VexNPC(this)); } + return super.getBukkitEntity(); } @@ -148,6 +152,7 @@ public class VexController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -158,6 +163,7 @@ public class VexController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -174,6 +180,7 @@ public class VexController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 6fba1c092..70d3a4485 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 @@ -64,6 +64,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(0.3); } + } @Override @@ -85,6 +86,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -92,6 +94,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -99,10 +102,12 @@ public class VillagerController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -115,6 +120,7 @@ public class VillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -165,6 +171,7 @@ public class VillagerController extends MobEntityController { blockingATrade = false; return true; } + return super.isTrading(); } @@ -187,7 +194,9 @@ public class VillagerController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.mobInteract(entityhuman, enumhand); } @@ -205,6 +214,7 @@ public class VillagerController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -214,6 +224,7 @@ public class VillagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -224,6 +235,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -236,6 +248,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -245,6 +258,7 @@ public class VillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -256,6 +270,7 @@ public class VillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 4abcc2c13..d2c6490c8 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 @@ -73,6 +73,7 @@ public class VindicatorController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class VindicatorController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class VindicatorController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class VindicatorController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VindicatorNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class VindicatorController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -179,6 +184,7 @@ public class VindicatorController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +195,7 @@ public class VindicatorController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -203,6 +210,7 @@ public class VindicatorController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -214,6 +222,7 @@ public class VindicatorController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 43ba246c7..e6d79748c 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 @@ -83,6 +83,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -90,6 +91,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -97,11 +99,13 @@ public class WanderingTraderController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); if (npc != null) { setDespawnDelay(10); npc.update(); } + } @Override @@ -114,6 +118,7 @@ public class WanderingTraderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WanderingTraderNPC(this)); } + return super.getBukkitEntity(); } @@ -168,6 +173,7 @@ public class WanderingTraderController extends MobEntityController { blockingATrade = false; return true; } + return super.isTrading(); } @@ -190,7 +196,9 @@ public class WanderingTraderController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.mobInteract(entityhuman, enumhand); } @@ -208,6 +216,7 @@ public class WanderingTraderController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -217,6 +226,7 @@ public class WanderingTraderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -227,6 +237,7 @@ public class WanderingTraderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -243,6 +254,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -252,6 +264,7 @@ public class WanderingTraderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -263,6 +276,7 @@ public class WanderingTraderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 f7e7a81dd..c49e9f7c9 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 @@ -72,6 +72,7 @@ public class WitchController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class WitchController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class WitchController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitchNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class WitchController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class WitchController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -188,6 +194,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -202,6 +209,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +221,7 @@ public class WitchController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 cb0aa32ef..331ed3c8c 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 @@ -63,6 +63,7 @@ public class WitherController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -74,8 +75,10 @@ public class WitherController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -93,6 +96,7 @@ public class WitherController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitherNPC(this)); } + return super.getBukkitEntity(); } @@ -160,6 +164,7 @@ public class WitherController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -170,6 +175,7 @@ public class WitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -186,6 +192,7 @@ public class WitherController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 800887591..af2f13e2c 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 @@ -75,6 +75,7 @@ public class WolfController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,6 +83,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class WolfController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -103,6 +106,7 @@ public class WolfController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WolfNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +176,7 @@ public class WolfController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -181,6 +186,7 @@ public class WolfController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -191,6 +197,7 @@ public class WolfController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -210,6 +217,7 @@ public class WolfController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class WolfController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 870923f21..da8e79135 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 @@ -72,6 +72,7 @@ public class ZoglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class ZoglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -86,10 +88,12 @@ public class ZoglinController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -102,6 +106,7 @@ public class ZoglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZoglinNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +176,7 @@ public class ZoglinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +187,7 @@ public class ZoglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -195,6 +202,7 @@ public class ZoglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -206,6 +214,7 @@ public class ZoglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 78db4f90a..b5c924334 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 @@ -72,6 +72,7 @@ public class ZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class ZombieController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class ZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class ZombieController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -193,6 +199,7 @@ public class ZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -204,6 +211,7 @@ public class ZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 9804acf44..17ecc8e79 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 @@ -72,6 +72,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class ZombieHuskController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieHuskNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class ZombieHuskController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -193,6 +199,7 @@ public class ZombieHuskController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -204,6 +211,7 @@ public class ZombieHuskController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 fc6ff08df..f54796277 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 @@ -72,6 +72,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,6 +90,7 @@ public class ZombieVillagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -100,6 +103,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieVillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +173,7 @@ public class ZombieVillagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -179,6 +184,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -193,6 +199,7 @@ public class ZombieVillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -204,6 +211,7 @@ public class ZombieVillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 ad4663dde..1499002e7 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 @@ -58,6 +58,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new AreaEffectCloudNPC(this)); } + return super.getBukkitEntity(); } @@ -88,6 +89,7 @@ public class AreaEffectCloudController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -98,6 +100,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +115,7 @@ public class AreaEffectCloudController extends MobEntityController { } else { super.tick(); } + } @Override @@ -123,6 +127,7 @@ public class AreaEffectCloudController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 6b58b45a3..cd6d85598 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 @@ -71,6 +71,7 @@ public class BoatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BoatNPC(this)); } + return super.getBukkitEntity(); } @@ -90,6 +91,7 @@ public class BoatController extends MobEntityController { this.aC = getBoundingBox().maxY; return entityboat_Status; } + if (t()) return Status.IN_WATER; float f = getGroundFriction(); @@ -97,6 +99,7 @@ public class BoatController extends MobEntityController { this.aD = f; return Status.ON_LAND; } + return Status.IN_AIR; } @@ -117,6 +120,7 @@ public class BoatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -127,6 +131,7 @@ public class BoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -136,6 +141,7 @@ public class BoatController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -165,9 +171,13 @@ public class BoatController extends MobEntityController { this.aC = Math.max(f, this.aC); m = flag | (axisalignedbb.minY < f ? true : false); } + } + } + } + return m; } @@ -202,7 +212,9 @@ public class BoatController extends MobEntityController { if (getControllingPassenger() instanceof ServerPlayer) { this.aD /= 2.0F; } + } + Vec3 vec3d = getDeltaMovement(); setDeltaMovement(vec3d.x * this.ap, vec3d.y + d1, vec3d.z * this.ap); this.ar *= this.ap; @@ -210,14 +222,18 @@ public class BoatController extends MobEntityController { Vec3 vec3d1 = getDeltaMovement(); setDeltaMovement(vec3d1.x, vec3d1.y + d2 * 0.0615D, vec3d1.z); } + } + move(MoverType.SELF, getDeltaMovement()); if (isVehicle()) { setYRot((float) (getYRot() + this.ar)); } + } else { super.tick(); } + } private Status u() { @@ -242,9 +258,13 @@ public class BoatController extends MobEntityController { return Status.UNDER_FLOWING_WATER; flag = true; } + } + } + } + return flag ? Status.UNDER_WATER : null; } @@ -257,6 +277,7 @@ public class BoatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 43c9b0b58..47b55edec 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 @@ -58,6 +58,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DragonFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -88,6 +89,7 @@ public class DragonFireballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -98,6 +100,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +110,7 @@ public class DragonFireballController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -121,9 +125,11 @@ public class DragonFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -135,6 +141,7 @@ public class DragonFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 158a7456c..a02f03d04 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 @@ -73,6 +73,7 @@ public class EggController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EggNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +104,7 @@ public class EggController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -113,6 +115,7 @@ public class EggController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -127,9 +130,11 @@ public class EggController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -141,6 +146,7 @@ public class EggController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 1d617dacb..9724c263f 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 @@ -58,6 +58,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderCrystalNPC(this)); } + return super.getBukkitEntity(); } @@ -88,6 +89,7 @@ public class EnderCrystalController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -98,6 +100,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +115,7 @@ public class EnderCrystalController extends MobEntityController { } else { super.tick(); } + } @Override @@ -123,6 +127,7 @@ public class EnderCrystalController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 d6d372e98..baa7135bb 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 @@ -59,6 +59,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderPearlNPC(this)); } + return super.getBukkitEntity(); } @@ -89,6 +90,7 @@ public class EnderPearlController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +101,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -113,9 +116,11 @@ public class EnderPearlController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -127,6 +132,7 @@ public class EnderPearlController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 2d639faea..3875b5fe7 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 @@ -59,6 +59,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderSignalNPC(this)); } + return super.getBukkitEntity(); } @@ -89,6 +90,7 @@ public class EnderSignalController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +101,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -113,6 +116,7 @@ public class EnderSignalController extends MobEntityController { } else { super.tick(); } + } @Override @@ -124,6 +128,7 @@ public class EnderSignalController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 9ce8bcde4..39ec77b3f 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 @@ -56,6 +56,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EvokerFangsNPC(this)); } + return super.getBukkitEntity(); } @@ -96,6 +97,7 @@ public class EvokerFangsController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -106,6 +108,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -119,6 +122,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -130,6 +134,7 @@ public class EvokerFangsController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 2ee63d538..b1649dca8 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 @@ -52,6 +52,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ExperienceOrbNPC(this)); } + return super.getBukkitEntity(); } @@ -82,6 +83,7 @@ public class ExperienceOrbController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +94,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -106,6 +109,7 @@ public class ExperienceOrbController extends MobEntityController { } else { super.tick(); } + } @Override @@ -117,6 +121,7 @@ public class ExperienceOrbController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 6488a3301..7855767cd 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 @@ -73,6 +73,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FallingBlockNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +104,7 @@ public class FallingBlockController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -113,6 +115,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -122,6 +125,7 @@ public class FallingBlockController extends AbstractEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -139,9 +143,11 @@ public class FallingBlockController extends AbstractEntityController { setDeltaMovement(mot); move(MoverType.SELF, mot); } + } else { super.tick(); } + } @Override @@ -153,6 +159,7 @@ public class FallingBlockController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } 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 b30e6545a..b1742c16c 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 @@ -53,6 +53,7 @@ public class FireworkController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FireworkNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class FireworkController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class FireworkController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +110,7 @@ public class FireworkController extends MobEntityController { } else { super.tick(); } + } @Override @@ -118,6 +122,7 @@ public class FireworkController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 6b1f4e8dc..b9b34a86f 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 @@ -71,6 +71,7 @@ public class FishingHookController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FishingHookNPC(this)); } + return super.getBukkitEntity(); } @@ -101,6 +102,7 @@ public class FishingHookController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -111,6 +113,7 @@ public class FishingHookController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +133,7 @@ public class FishingHookController extends MobEntityController { } else { super.tick(); } + } @Override @@ -141,6 +145,7 @@ public class FishingHookController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 9d5dc03cb..9e400f423 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 @@ -64,6 +64,7 @@ public class GlowItemFrameController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GlowItemFrameNPC(this)); } + return super.getBukkitEntity(); } @@ -94,6 +95,7 @@ public class GlowItemFrameController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -104,6 +106,7 @@ public class GlowItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -123,6 +126,7 @@ public class GlowItemFrameController extends MobEntityController { } else { super.tick(); } + } @Override @@ -134,6 +138,7 @@ public class GlowItemFrameController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 d7627ad6f..13d773002 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 @@ -65,6 +65,7 @@ public class ItemController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemNPC(this)); } + return super.getBukkitEntity(); } @@ -94,6 +95,7 @@ public class ItemController extends AbstractEntityController { if (npc == null) { super.playerTouch(entityhuman); } + } @Override @@ -102,6 +104,7 @@ public class ItemController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +115,7 @@ public class ItemController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -126,6 +130,7 @@ public class ItemController extends AbstractEntityController { } else { super.tick(); } + } @Override @@ -137,6 +142,7 @@ public class ItemController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 b262a0b75..59ce7e542 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 @@ -63,6 +63,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemFrameNPC(this)); } + return super.getBukkitEntity(); } @@ -93,6 +94,7 @@ public class ItemFrameController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -103,6 +105,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -122,6 +125,7 @@ public class ItemFrameController extends MobEntityController { } else { super.tick(); } + } @Override @@ -133,6 +137,7 @@ public class ItemFrameController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 8ea3e7b3b..c994b2810 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 @@ -52,6 +52,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LargeFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -82,6 +83,7 @@ public class LargeFireballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +94,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -101,6 +104,7 @@ public class LargeFireballController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -115,9 +119,11 @@ public class LargeFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -129,6 +135,7 @@ public class LargeFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 2059397c6..313a66320 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 @@ -53,6 +53,7 @@ public class LeashController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LeashNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class LeashController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class LeashController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +115,7 @@ public class LeashController extends MobEntityController { } else { super.tick(); } + } @Override @@ -123,6 +127,7 @@ public class LeashController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 9ab6fbbbf..59b4ff57f 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 @@ -70,6 +70,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LlamaSpitNPC(this)); } + return super.getBukkitEntity(); } @@ -100,6 +101,7 @@ public class LlamaSpitController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -110,6 +112,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -124,9 +127,11 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -138,6 +143,7 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 3c49ee5b4..b91c73a1c 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 @@ -52,6 +52,7 @@ public class MarkerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MarkerNPC(this)); } + return super.getBukkitEntity(); } @@ -82,6 +83,7 @@ public class MarkerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +94,7 @@ public class MarkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -106,6 +109,7 @@ public class MarkerController extends MobEntityController { } else { super.tick(); } + } @Override @@ -117,6 +121,7 @@ public class MarkerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 b3cb84efb..3cfd93058 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 @@ -53,6 +53,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartChestNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class MinecartChestController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +110,7 @@ public class MinecartChestController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -118,6 +122,7 @@ public class MinecartChestController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 abe4ef7aa..6b8600fde 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 @@ -53,6 +53,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartCommandNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class MinecartCommandController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +110,7 @@ public class MinecartCommandController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -118,6 +122,7 @@ public class MinecartCommandController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 aed25dc28..adcbdde94 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 @@ -53,6 +53,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartFurnaceNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class MinecartFurnaceController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +110,7 @@ public class MinecartFurnaceController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -118,6 +122,7 @@ public class MinecartFurnaceController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 770671862..2348620d8 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 @@ -70,6 +70,7 @@ public class MinecartHopperController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -80,6 +81,7 @@ public class MinecartHopperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -94,6 +96,7 @@ public class MinecartHopperController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -105,6 +108,7 @@ public class MinecartHopperController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 4f7e82dc5..7a4dfe29d 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 @@ -52,6 +52,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartRideableNPC(this)); } + return super.getBukkitEntity(); } @@ -82,6 +83,7 @@ public class MinecartRideableController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +94,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -106,6 +109,7 @@ public class MinecartRideableController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -117,6 +121,7 @@ public class MinecartRideableController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 94abef782..a3a3a08e3 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 @@ -70,6 +70,7 @@ public class MinecartSpawnerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -80,6 +81,7 @@ public class MinecartSpawnerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -94,6 +96,7 @@ public class MinecartSpawnerController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -105,6 +108,7 @@ public class MinecartSpawnerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 ecdc04831..51087de76 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 @@ -70,6 +70,7 @@ public class MinecartTNTController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -80,6 +81,7 @@ public class MinecartTNTController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -94,6 +96,7 @@ public class MinecartTNTController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -105,6 +108,7 @@ public class MinecartTNTController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 779cbadb2..cbfb61f40 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 @@ -52,6 +52,7 @@ public class PaintingController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PaintingNPC(this)); } + return super.getBukkitEntity(); } @@ -82,6 +83,7 @@ public class PaintingController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +94,7 @@ public class PaintingController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -111,6 +114,7 @@ public class PaintingController extends MobEntityController { } else { super.tick(); } + } @Override @@ -122,6 +126,7 @@ public class PaintingController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 2a0bf2fc0..37b64f8cd 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 @@ -52,6 +52,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ShulkerBulletNPC(this)); } + return super.getBukkitEntity(); } @@ -82,6 +83,7 @@ public class ShulkerBulletController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +94,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -106,6 +109,7 @@ public class ShulkerBulletController extends MobEntityController { } else { super.tick(); } + } @Override @@ -117,6 +121,7 @@ public class ShulkerBulletController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 5f079e049..7b2d301a5 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 @@ -52,6 +52,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SmallFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -82,6 +83,7 @@ public class SmallFireballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +94,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -106,9 +109,11 @@ public class SmallFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -120,6 +125,7 @@ public class SmallFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 81511e4c2..798719a95 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 @@ -52,6 +52,7 @@ public class SnowballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnowballNPC(this)); } + return super.getBukkitEntity(); } @@ -82,6 +83,7 @@ public class SnowballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +94,7 @@ public class SnowballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -106,6 +109,7 @@ public class SnowballController extends MobEntityController { } else { super.tick(); } + } @Override @@ -117,6 +121,7 @@ public class SnowballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 9ec55992f..7e8b7dcc3 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 @@ -53,6 +53,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SpectralArrowNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class SpectralArrowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +110,7 @@ public class SpectralArrowController extends MobEntityController { } else { super.tick(); } + } @Override @@ -118,6 +122,7 @@ public class SpectralArrowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 4394474be..82fdf3c75 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 @@ -53,6 +53,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TNTPrimedNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class TNTPrimedController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +110,7 @@ public class TNTPrimedController extends MobEntityController { } else { super.tick(); } + } @Override @@ -118,6 +122,7 @@ public class TNTPrimedController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 dcca24b40..f1f6c1705 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 @@ -53,6 +53,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ThrownExpBottleNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class ThrownExpBottleController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,9 +110,11 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -121,6 +126,7 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 103029363..2d035646b 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 @@ -56,7 +56,9 @@ public class ThrownPotionController extends MobEntityController { } else { NMSImpl.setBukkitEntity(this, new SplashThrownPotionNPC(this)); } + } + return super.getBukkitEntity(); } @@ -87,6 +89,7 @@ public class ThrownPotionController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -97,6 +100,7 @@ public class ThrownPotionController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -111,6 +115,7 @@ public class ThrownPotionController extends MobEntityController { } else { super.tick(); } + } @Override @@ -122,6 +127,7 @@ public class ThrownPotionController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 64506ad26..2426558e9 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 @@ -53,6 +53,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ThrownTridentNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class ThrownTridentController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +110,7 @@ public class ThrownTridentController extends MobEntityController { } else { super.tick(); } + } @Override @@ -118,6 +122,7 @@ public class ThrownTridentController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 844ae7090..5da96bff9 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 @@ -52,6 +52,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TippedArrowNPC(this)); } + return super.getBukkitEntity(); } @@ -82,6 +83,7 @@ public class TippedArrowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +94,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -106,6 +109,7 @@ public class TippedArrowController extends MobEntityController { } else { super.tick(); } + } @Override @@ -117,6 +121,7 @@ public class TippedArrowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 16dcc9008..1932dec42 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 @@ -52,6 +52,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitherSkullNPC(this)); } + return super.getBukkitEntity(); } @@ -82,6 +83,7 @@ public class WitherSkullController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -92,6 +94,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -106,6 +109,7 @@ public class WitherSkullController extends MobEntityController { } else { super.tick(); } + } @Override @@ -117,6 +121,7 @@ public class WitherSkullController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/CitizensBlockBreaker.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/CitizensBlockBreaker.java index 67064e1a7..76a3ec2aa 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/CitizensBlockBreaker.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/CitizensBlockBreaker.java @@ -47,6 +47,7 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { ItemStack current = getCurrentItem(); return current != null ? current.isCorrectToolForDrops(block) : false; } + } @Override @@ -65,10 +66,13 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { if (i > 0) { f += i * i + 1; } + } + if (MobEffectUtil.hasDigSpeed(handle)) { f *= 1.0F + (MobEffectUtil.getDigSpeedAmplification(handle) + 1) * 0.2F; } + if (handle.hasEffect(MobEffects.DIG_SLOWDOWN)) { float f1 = 1.0F; switch (handle.getEffect(MobEffects.DIG_SLOWDOWN).getAmplifier()) { @@ -85,15 +89,20 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { default: f1 = 8.1E-4F; } + f *= f1; } + if (handle.isEyeInFluid(FluidTags.WATER) && !EnchantmentHelper.hasAquaAffinity(handle)) { f /= 5.0F; } + } + if (!entity.isOnGround()) { f /= 5.0F; } + return f; } } \ No newline at end of file diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EmptyAdvancementDataPlayer.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EmptyAdvancementDataPlayer.java index 263e62fe4..79213f544 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EmptyAdvancementDataPlayer.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EmptyAdvancementDataPlayer.java @@ -68,6 +68,7 @@ public class EmptyAdvancementDataPlayer extends PlayerAdvancements { } catch (Throwable e) { e.printStackTrace(); } + } private static final MethodHandle I = NMS.getGetter(PlayerAdvancements.class, "i"); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityMoveControl.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityMoveControl.java index 56b361da2..a13adee69 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityMoveControl.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityMoveControl.java @@ -65,15 +65,18 @@ public class EntityMoveControl extends MoveControl { if (f3 > f2) { f3 = f2; } + if (f3 < -f2) { f3 = -f2; } + float f4 = f + f3; if (f4 < 0.0F) { f4 += 360.0F; } else if (f4 > 360.0F) { f4 -= 360.0F; } + return f4; } @@ -115,13 +118,17 @@ public class EntityMoveControl extends MoveControl { if (((Slime) entity).isAggressive()) { this.jumpTicks /= 3; } + ((Slime) entity).getJumpControl().jump(); } else if (dY >= NMS.getStepHeight(entity.getBukkitEntity()) && dXZ < 0.4D) { if (entity instanceof Mob) { ((Mob) entity).getJumpControl().jump(); } + entity.setJumping(true); } + } + } } \ No newline at end of file diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityNavigation.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityNavigation.java index e43323979..38ad431d3 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityNavigation.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityNavigation.java @@ -101,9 +101,11 @@ public class EntityNavigation extends PathNavigation { if (var7 >= 0.0D) { var19++; } + if (var9 >= 0.0D) { var21++; } + var19 /= var7; var21 /= var9; int var23 = var7 < 0.0D ? -1 : 1; @@ -122,9 +124,11 @@ public class EntityNavigation extends PathNavigation { var6 += var24; var28 = var26 - var6; } + if (!canWalkOn(var5, Mth.floor(var0.y), var6, var2, var3, var4, var0, var7, var9)) return false; } + return true; } @@ -150,9 +154,11 @@ public class EntityNavigation extends PathNavigation { if (var13 * var7 + var15 * var9 < 0.0D) { continue; } + if (!this.level.getBlockState(var12).isPathfindable(this.level, var12, PathComputationType.LAND)) return false; } + return true; } @@ -180,8 +186,11 @@ public class EntityNavigation extends PathNavigation { || var19 == BlockPathTypes.DAMAGE_OTHER) return false; } + } + } + return true; } @@ -192,21 +201,26 @@ public class EntityNavigation extends PathNavigation { while (var2.getY() > this.level.getMinBuildHeight() && this.level.getBlockState(var2).isAir()) { var2 = var2.down(); } + if (var2.getY() > this.level.getMinBuildHeight()) return supercreatePath(var2.up(), var1); while (var2.getY() < this.level.getMaxBuildHeight() && this.level.getBlockState(var2).isAir()) { var2 = var2.up(); } + var0 = var2; } + if (this.level.getBlockState(var0).getMaterial().isSolid()) { BlockPos var2 = var0.up(); while (var2.getY() < this.level.getMaxBuildHeight() && this.level.getBlockState(var2).getMaterial().isSolid()) { var2 = var2.up(); } + return supercreatePath(var2, var1); } + return supercreatePath(var0, var1); } @@ -248,6 +262,7 @@ public class EntityNavigation extends PathNavigation { this.reachRange = var3; resetStuckTimeout(); } + return var8; } @@ -270,9 +285,11 @@ public class EntityNavigation extends PathNavigation { } else { this.isStuck = false; } + this.lastStuckCheck = this.tick; this.lastStuckCheckPos = var0; } + if (this.path != null && !this.path.isDone()) { BlockPos blockPos = this.path.getNextNodePos(); if (blockPos.equals(this.timeoutCachedNode)) { @@ -282,11 +299,14 @@ public class EntityNavigation extends PathNavigation { double var2 = var0.distanceTo(Vec3.atBottomCenterOf(this.timeoutCachedNode)); this.timeoutLimit = this.mob.getSpeed() > 0.0F ? var2 / this.mob.getSpeed() * 1000.0D : 0.0D; } + if (this.timeoutLimit > 0.0D && this.timeoutTimer > this.timeoutLimit * 3.0D) { timeoutPath(); } + this.lastTimeoutCheck = System.currentTimeMillis(); } + } @Override @@ -302,6 +322,7 @@ public class EntityNavigation extends PathNavigation { if (var8 || canCutCorner(this.path.getNextNode().type) && shouldTargetNextNodeInDirection(var0)) { this.path.advance(); } + doStuckDetection(var0); } @@ -336,6 +357,7 @@ public class EntityNavigation extends PathNavigation { if (++var2 > 16) return this.mob.getBlockY(); } + return var0; } @@ -403,9 +425,11 @@ public class EntityNavigation extends PathNavigation { this.path = null; return false; } + if (!var0.sameAs(this.path)) { this.path = var0; } + if (isDone()) return false; trimPath(); @@ -427,9 +451,11 @@ public class EntityNavigation extends PathNavigation { this.timeLastRecompute = this.level.getGameTime(); this.hasDelayedRecomputation = false; } + } else { this.hasDelayedRecomputation = true; } + } @Override @@ -442,6 +468,7 @@ public class EntityNavigation extends PathNavigation { if (var0.closerThan(var2, this.path.getNodeCount() - this.path.getNextNodeIndex())) { recomputePath(); } + } @Override @@ -520,8 +547,11 @@ public class EntityNavigation extends PathNavigation { if (var2 != null && var1.y >= var2.y) { this.path.replaceNode(var0 + 1, var1.cloneAndMove(var2.x, var1.y + 1, var2.z)); } + } + } + } @Override @@ -530,6 +560,7 @@ public class EntityNavigation extends PathNavigation { if (this.hasDelayedRecomputation) { recomputePath(); } + if (isDone()) return; if (canUpdatePath()) { @@ -541,7 +572,9 @@ public class EntityNavigation extends PathNavigation { && Mth.floor(vec31.z) == Mth.floor(vec32.z)) { this.path.advance(); } + } + if (isDone()) return; Vec3 var0 = this.path.getNextEntityPos(this.mob); @@ -567,8 +600,11 @@ public class EntityNavigation extends PathNavigation { this.path.truncateNodes(var0); return; } + } + } + } private static Mob getDummyInsentient(LivingEntity from, Level world) { diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityNodeEvaluator.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityNodeEvaluator.java index ae3733b88..18e4a62b3 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityNodeEvaluator.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityNodeEvaluator.java @@ -49,6 +49,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (hasCollisions(var2)) return false; } + return true; } @@ -65,18 +66,22 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var4 == BlockPathTypes.DOOR_WOOD_CLOSED && var1 && var2) { var4 = BlockPathTypes.WALKABLE_DOOR; } + if (var4 == BlockPathTypes.DOOR_OPEN && !var2) { var4 = BlockPathTypes.BLOCKED; } + if (var4 == BlockPathTypes.RAIL && !(var0.getBlockState(var3).getBlock() instanceof net.minecraft.world.level.block.BaseRailBlock) && !(var0.getBlockState(var3.down()) .getBlock() instanceof net.minecraft.world.level.block.BaseRailBlock)) { var4 = BlockPathTypes.UNPASSABLE_RAIL; } + if (var4 == BlockPathTypes.LEAVES) { var4 = BlockPathTypes.BLOCKED; } + return var4; } @@ -95,9 +100,11 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var8.type = var12; var8.costMalus = Math.max(var8.costMalus, var13); } + if (var7 == BlockPathTypes.FENCE && var8 != null && var8.costMalus >= 0.0F && !canReachWithoutCollision(var8)) { var8 = null; } + if (var12 == BlockPathTypes.WALKABLE || isAmphibious() && var12 == BlockPathTypes.WATER) return var8; if ((var8 == null || var8.costMalus < 0.0F) && var3 > 0 && var12 != BlockPathTypes.FENCE @@ -116,8 +123,11 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (hasCollisions(var20)) { var8 = null; } + } + } + if (!isAmphibious() && var12 == BlockPathTypes.WATER && !canFloat()) { if (getCachedBlockType(this.mob, var0, var1 - 1, var2) != BlockPathTypes.WATER) return var8; @@ -130,9 +140,12 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var8.costMalus = Math.max(var8.costMalus, this.mvmt.getPathfindingMalus(var12)); continue; } + return var8; } + } + if (var12 == BlockPathTypes.OPEN) { int var16 = 0; int var17 = var1; @@ -144,12 +157,14 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var18.costMalus = -1.0F; return var18; } + if (var16++ >= this.mob.getMaxFallDistance()) { Node var18 = getNode(var0, var1, var2); var18.type = BlockPathTypes.BLOCKED; var18.costMalus = -1.0F; return var18; } + var12 = getCachedBlockType(this.mob, var0, var1, var2); var13 = this.mvmt.getPathfindingMalus(var12); if (var12 != BlockPathTypes.OPEN && var13 >= 0.0F) { @@ -158,20 +173,25 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var8.costMalus = Math.max(var8.costMalus, var13); break; } + if (var13 < 0.0F) { Node var18 = getNode(var0, var1, var2); var18.type = BlockPathTypes.BLOCKED; var18.costMalus = -1.0F; return var18; } + } + } + if (var12 == BlockPathTypes.FENCE) { var8 = getNode(var0, var1, var2); var8.closed = true; var8.type = var12; var8.costMalus = var12.getMalus(); } + return var8; } @@ -197,7 +217,9 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (mvmt.getPathfindingMalus(var15) >= mvmt.getPathfindingMalus(var13)) { var13 = var15; } + } + if (var11 == BlockPathTypes.OPEN && mvmt.getPathfindingMalus(var13) == 0.0F && var5 <= 1) return BlockPathTypes.OPEN; return var13; @@ -221,7 +243,9 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var4.getPathfindingMalus(var15) >= var4.getPathfindingMalus(var13)) { var13 = var15; } + } + if (var11 == BlockPathTypes.OPEN && var4.getPathfindingMalus(var13) == 0.0F && var5 <= 1) return BlockPathTypes.OPEN; return var13; @@ -248,7 +272,9 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (mvmt.getPathfindingMalus(var15) >= mvmt.getPathfindingMalus(var13)) { var13 = var15; } + } + if (var11 == BlockPathTypes.OPEN && mvmt.getPathfindingMalus(var13) == 0.0F && var5 <= 1) return BlockPathTypes.OPEN; return var13; @@ -267,10 +293,14 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var12 == 0 && var13 == 0 && var14 == 0) { var10 = var18; } + var9.add(var18); } + } + } + return var10; } @@ -304,39 +334,48 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (this.mvmt.getPathfindingMalus(var4) >= 0.0F && var5 != BlockPathTypes.STICKY_HONEY) { var3 = Mth.floor(Math.max(1.0F, this.mob.maxUpStep)); } + double var6 = getFloorLevel(new BlockPos(var1.x, var1.y, var1.z)); Node var8 = findAcceptedNode(var1.x, var1.y, var1.z + 1, var3, var6, Direction.SOUTH, var5); if (isNeighborValid(var8, var1)) { var0[var2++] = var8; } + Node var9 = findAcceptedNode(var1.x - 1, var1.y, var1.z, var3, var6, Direction.WEST, var5); if (isNeighborValid(var9, var1)) { var0[var2++] = var9; } + Node var10 = findAcceptedNode(var1.x + 1, var1.y, var1.z, var3, var6, Direction.EAST, var5); if (isNeighborValid(var10, var1)) { var0[var2++] = var10; } + Node var11 = findAcceptedNode(var1.x, var1.y, var1.z - 1, var3, var6, Direction.NORTH, var5); if (isNeighborValid(var11, var1)) { var0[var2++] = var11; } + Node var12 = findAcceptedNode(var1.x - 1, var1.y, var1.z - 1, var3, var6, Direction.NORTH, var5); if (isDiagonalValid(var1, var9, var11, var12)) { var0[var2++] = var12; } + Node var13 = findAcceptedNode(var1.x + 1, var1.y, var1.z - 1, var3, var6, Direction.NORTH, var5); if (isDiagonalValid(var1, var10, var11, var13)) { var0[var2++] = var13; } + Node var14 = findAcceptedNode(var1.x - 1, var1.y, var1.z + 1, var3, var6, Direction.SOUTH, var5); if (isDiagonalValid(var1, var9, var8, var14)) { var0[var2++] = var14; } + Node var15 = findAcceptedNode(var1.x + 1, var1.y, var1.z + 1, var3, var6, Direction.SOUTH, var5); if (isDiagonalValid(var1, var10, var8, var15)) { var0[var2++] = var15; } + return var2; } @@ -350,12 +389,14 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var0++; var2 = this.level.getBlockState(var1.set(this.mob.getX(), var0, this.mob.getZ())); } + var0--; } else if (canFloat() && this.mob.isInWater()) { while (var2.is(Blocks.WATER) || var2.getFluidState() == Fluids.WATER.getSource(false)) { var0++; var2 = this.level.getBlockState(var1.set(this.mob.getX(), var0, this.mob.getZ())); } + var0--; } else if (this.mob.isOnGround()) { var0 = Mth.floor(this.mob.getY() + 0.5D); @@ -366,8 +407,10 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { && blockPos.getY() > this.mob.level.getMinBuildHeight()) { blockPos = blockPos.down(); } + var0 = blockPos.up().getY(); } + BlockPos var3 = this.mob.blockPosition(); BlockPathTypes var4 = getCachedBlockType(this.mob, var3.getX(), var0, var3.getZ()); if (this.mvmt.getPathfindingMalus(var4) < 0.0F) { @@ -381,7 +424,9 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var6.costMalus = this.mvmt.getPathfindingMalus(var6.type); return var6; } + } + Node var5 = getNode(var3.getX(), var0, var3.getZ()); var5.type = getBlockPathType(this.mob, var5.asBlockPos()); var5.costMalus = this.mvmt.getPathfindingMalus(var5.type); @@ -445,9 +490,13 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var0.getFluidState(var1).is(FluidTags.WATER)) return BlockPathTypes.WATER_BORDER; } + } + } + } + return var2; } @@ -507,19 +556,25 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var6 == BlockPathTypes.DAMAGE_FIRE) { var5 = BlockPathTypes.DAMAGE_FIRE; } + if (var6 == BlockPathTypes.DAMAGE_CACTUS) { var5 = BlockPathTypes.DAMAGE_CACTUS; } + if (var6 == BlockPathTypes.DAMAGE_OTHER) { var5 = BlockPathTypes.DAMAGE_OTHER; } + if (var6 == BlockPathTypes.STICKY_HONEY) { var5 = BlockPathTypes.STICKY_HONEY; } + } + if (var5 == BlockPathTypes.WALKABLE) { var5 = checkNeighbourBlocks(var0, var1.set(var2, var3, var4), var5); } + return var5; } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityPathfinder.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityPathfinder.java index 72727fda7..3ecb3b359 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityPathfinder.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/EntityPathfinder.java @@ -92,13 +92,17 @@ public class EntityPathfinder extends PathFinder { target.setReached(); var9.add(target); } + } + if (!var9.isEmpty()) { break; } + if (node.distanceTo(var1) >= var3) { continue; } + int i = this.nodeEvaluator.getNeighbors(this.neighbors, node); for (int var13 = 0; var13 < i; var13++) { Node var14 = this.neighbors[var13]; @@ -115,9 +119,13 @@ public class EntityPathfinder extends PathFinder { var14.f = var14.g + var14.h; this.openSet.insert(var14); } + } + } + } + Optional var11 = !var9.isEmpty() ? var9.stream().map(p -> reconstructPath(p.getBestNode(), var2.get(p), true)).min( Comparator.comparingInt(Path::getNodeCount)) @@ -136,13 +144,15 @@ public class EntityPathfinder extends PathFinder { var4.updateBest(var5, var0); var2 = Math.min(var5, var2); } + return var2; } public Stream getFallbackDestinations(Map var1, Set var5) { if (Setting.DISABLE_MC_NAVIGATION_FALLBACK.asBoolean()) return Stream.empty(); - return var5.stream().map(var1x -> this.reconstructPath(var1x.getBestNode(), var1.get(var1x), false)).sorted(Comparator.comparingDouble(Path::getDistToTarget).thenComparingInt(Path::getNodeCount)); + return var5.stream().map(var1x -> this.reconstructPath(var1x.getBestNode(), var1.get(var1x), false)) + .sorted(Comparator.comparingDouble(Path::getDistToTarget).thenComparingInt(Path::getNodeCount)); } private Path reconstructPath(Node var0, BlockPos var1, boolean var2) { @@ -153,6 +163,7 @@ public class EntityPathfinder extends PathFinder { var4 = var4.cameFrom; var3.add(0, var4); } + return new Path(var3, var1, var2); } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/ForwardingNPCHolder.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/ForwardingNPCHolder.java index cccb5b272..d087bc4cb 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/ForwardingNPCHolder.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/ForwardingNPCHolder.java @@ -17,6 +17,7 @@ public interface ForwardingNPCHolder extends NPCHolder, Entity { () -> Joiner.on(' ').join("ForwardingNPCHolder with an improper bukkit entity", this, handle)); return null; } + return ((NPCHolder) handle).getNPC(); } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/MobAI.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/MobAI.java index 7c3f75595..d3c485fcc 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/MobAI.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/MobAI.java @@ -41,6 +41,7 @@ public interface MobAI { if (!nav.isDone()) { nav.tick(); } + } default void updatePathfindingRange(float range) { @@ -170,6 +171,7 @@ public interface MobAI { }; } else if (handle instanceof MobAI) return (MobAI) handle; + return null; } } 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 168184997..89a72e824 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 @@ -349,17 +349,21 @@ public class NMSImpl implements NMSBridge { viewDistance = (int) PLAYER_CHUNK_MAP_VIEW_DISTANCE_GETTER.invoke(chunkMap); PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER.invoke(chunkMap, -1); } + } catch (Throwable e) { e.printStackTrace(); } + boolean success = getHandle(entity).level.addEntity(getHandle(entity), custom); try { if (chunkMap != null) { PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER.invoke(chunkMap, viewDistance); } + } catch (Throwable e) { e.printStackTrace(); } + return success; } @@ -375,12 +379,14 @@ public class NMSImpl implements NMSBridge { } else if (!handle.level.players().contains(handle)) { ((List) handle.level.players()).add(handle); } + try { CHUNKMAP_UPDATE_PLAYER_STATUS.invoke( ((ServerChunkCache) ((ServerLevel) handle.level).getChunkSource()).chunkMap, handle, !remove); } catch (Throwable e) { e.printStackTrace(); } + // PlayerUpdateTask.addOrRemove(entity, remove); } @@ -393,10 +399,12 @@ public class NMSImpl implements NMSBridge { PlayerAnimation.ARM_SWING.play((Player) handle.getBukkitEntity()); return; } + if (handle instanceof Mob) { ((Mob) handle).doHurtTarget(target); return; } + float f = (float) (handle.getAttributes().hasAttribute(Attributes.ATTACK_DAMAGE) ? handle.getAttributeValue(Attributes.ATTACK_DAMAGE) : 1f); @@ -411,10 +419,12 @@ public class NMSImpl implements NMSBridge { Math.cos(handle.getYRot() * Math.PI / 180.0F) * i * 0.5F); handle.setDeltaMovement(handle.getDeltaMovement().multiply(0.6, 1, 0.6)); } + int fireAspectLevel = EnchantmentHelper.getFireAspect(handle); if (fireAspectLevel > 0) { target.setOnFire(fireAspectLevel * 4, false); } + if (target instanceof ServerPlayer) { ServerPlayer entityhuman = (ServerPlayer) target; ItemStack itemstack = handle.getMainHandItem(); @@ -426,8 +436,11 @@ public class NMSImpl implements NMSBridge { entityhuman.getCooldowns().addCooldown(Items.SHIELD, 100); handle.level.broadcastEntityEvent(entityhuman, (byte) 30); } + } + } + EnchantmentHelper.doPostHurtEffects(handle, target); EnchantmentHelper.doPostDamageEffects(target, handle); } @@ -444,7 +457,9 @@ public class NMSImpl implements NMSBridge { } catch (Throwable t) { t.printStackTrace(); } + } + } @Override @@ -475,16 +490,21 @@ public class NMSImpl implements NMSBridge { if (!changed && !ItemStack.matches(old, curr)) { changed = true; } + equipment.put(slot, curr); } + if (changed) { List> vals = Lists.newArrayList(); for (EquipmentSlot slot : EquipmentSlot.values()) { vals.add(com.mojang.datafixers.util.Pair.of(slot, equipment.get(slot))); } + agg.send(new ClientboundSetEquipmentPacket(handle.getId(), vals)); } + } + tracker.sendChanges(); } @@ -505,7 +525,9 @@ public class NMSImpl implements NMSBridge { if (callback != null) { callback.accept(entity); } + } + linked.clear(); } }; @@ -554,10 +576,13 @@ public class NMSImpl implements NMSBridge { if (df != null) { bserver = df.dragonEvent; } + } + } catch (Throwable e) { e.printStackTrace(); } + if (bserver == null) return null; BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10); @@ -566,6 +591,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return ret; } @@ -676,11 +702,13 @@ public class NMSImpl implements NMSBridge { if (SKULL_PROFILE_FIELD == null) return null; } + try { return (GameProfile) SKULL_PROFILE_FIELD.get(meta); } catch (Exception e) { return null; } + } @Override @@ -693,6 +721,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { throw new CommandException(Messages.INVALID_SOUND); } + } @Override @@ -708,6 +737,7 @@ public class NMSImpl implements NMSBridge { LivingEntity handle = NMSImpl.getHandle((org.bukkit.entity.LivingEntity) npc.getEntity()); if (handle == null) { } + return DEFAULT_SPEED; // return (float) handle.getAttribute(Attributes.d).getValue(); } @@ -750,7 +780,9 @@ public class NMSImpl implements NMSBridge { } else { ((Mob) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater + 1F); } + } + navigation.getNodeEvaluator().setCanOpenDoors(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; @@ -762,6 +794,7 @@ public class NMSImpl implements NMSBridge { Node pp = path.getNode(i); blocks.add(entity.getWorld().getBlockAt(pp.x, pp.y, pp.z)); } + return blocks; } @@ -782,13 +815,16 @@ public class NMSImpl implements NMSBridge { List blocks = getBlocks(entity, path); Util.sendBlockChanges(blocks, null); } + if (oldWater >= 0) { if (raw instanceof MobAI) { ((MobAI) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater); } else { ((Mob) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater); } + } + navigation.stop(); } @@ -803,12 +839,15 @@ public class NMSImpl implements NMSBridge { SIZE_FIELD_SETTER.invoke(handle, new EntityDimensions(Math.min(0.99F, size.width), size.height, false)); } + } catch (Throwable e) { e.printStackTrace(); } + if (!function.apply(navigation)) { reason = CancelReason.STUCK; } + try { SIZE_FIELD_SETTER.invoke(handle, size); } catch (Throwable e) { @@ -816,12 +855,15 @@ public class NMSImpl implements NMSBridge { // minecraft requires that an entity fit onto both blocks if width >= 1f, but we'd prefer to // make it just fit on 1 so hack around it a bit. } + lastSpeed = params.speed(); } + Path path = getPathEntity(navigation); if (params.debug() && !path.isDone()) { Util.sendBlockChanges(getBlocks(entity, path), Material.DANDELION); } + navigation.setSpeedModifier(params.speed()); return navigation.isDone(); } @@ -1047,30 +1089,37 @@ public class NMSImpl implements NMSBridge { if (zDiff < 0.0) { yaw += Math.abs(180 - yaw) * 2; } + if (handle.getBukkitEntity().getType() == EntityType.ENDER_DRAGON) { yaw = Util.getDragonYaw(handle.getBukkitEntity(), xDiff, zDiff); } else { yaw = yaw - 90; } + if (headOnly) { setHeadYaw(entity, (float) yaw); } else { look(entity, (float) yaw, (float) pitch); } + return; } + if (handle instanceof Mob) { ((Mob) handle).getLookControl().setLookAt(to.getX(), to.getY(), to.getZ(), ((Mob) handle).getHeadRotSpeed(), ((Mob) handle).getMaxHeadXRot()); while (((LivingEntity) handle).yHeadRot >= 180F) { ((LivingEntity) handle).yHeadRot -= 360F; } + while (((LivingEntity) handle).yHeadRot < -180F) { ((LivingEntity) handle).yHeadRot += 360F; } + } else if (handle instanceof NPCHolder) { ((NPCHolder) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1083,18 +1132,22 @@ public class NMSImpl implements NMSBridge { } else { look(from, to.getLocation(), false, true); } + } else if (handle instanceof Mob) { ((Mob) handle).getLookControl().setLookAt(target, ((Mob) handle).getHeadRotSpeed(), ((Mob) handle).getMaxHeadXRot()); while (((LivingEntity) handle).yHeadRot >= 180F) { ((LivingEntity) handle).yHeadRot -= 360F; } + while (((LivingEntity) handle).yHeadRot < -180F) { ((LivingEntity) handle).yHeadRot += 360F; } + } else if (handle instanceof NPCHolder) { ((NPCHolder) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1129,6 +1182,7 @@ public class NMSImpl implements NMSBridge { this, anvil), this); } + return this.bukkitEntity; } }; @@ -1175,11 +1229,13 @@ public class NMSImpl implements NMSBridge { if (key == null || type == null) { continue; } + CITIZENS_ENTITY_TYPES.put(clazz, type); int code = ENTITY_REGISTRY.getId(type); ENTITY_REGISTRY.put(code, key, type); return; } + throw new IllegalArgumentException("unable to find valid entity superclass for class " + clazz.toString()); } @@ -1217,6 +1273,7 @@ public class NMSImpl implements NMSBridge { hook.hookedIn = null; hook.getBukkitEntity().remove(); } + } @Override @@ -1231,6 +1288,7 @@ public class NMSImpl implements NMSBridge { if (getHandle(entity) instanceof EntityHumanNPC) { ((EntityHumanNPC) getHandle(entity)).setTracked(replace); } + } @Override @@ -1240,9 +1298,11 @@ public class NMSImpl implements NMSBridge { if (bodyYaw == null) { bodyYaw = handle.getYRot(); } + if (pitch == null) { pitch = handle.getXRot(); } + List> toSend = Lists.newArrayList(); if (position) { TrackedEntity entry = ((ServerLevel) handle.level).getChunkProvider().chunkMap.G.get(handle.getId()); @@ -1253,6 +1313,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + Vec3 pos = handle.position().subtract(se.sentPos()); toSend.add( new ClientboundMoveEntityPacket.PosRot(handle.getId(), (short) pos.x, (short) pos.y, (short) pos.z, @@ -1261,9 +1322,11 @@ public class NMSImpl implements NMSBridge { toSend.add(new ClientboundMoveEntityPacket.Rot(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.isOnGround())); } + if (headYaw != null) { toSend.add(new ClientboundRotateHeadPacket(handle, (byte) (headYaw * 256.0F / 360.0F))); } + sendPacketsNearby(null, from.getLocation(), toSend, 64); } @@ -1287,6 +1350,7 @@ public class NMSImpl implements NMSBridge { entities[i] = (ServerPlayer) skinnable; i++; } + NMSImpl.sendPacket(recipient, new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.REMOVE_PLAYER, entities)); } @@ -1307,6 +1371,7 @@ public class NMSImpl implements NMSBridge { if (TEAM_FIELD == null) { TEAM_FIELD = NMS.getGetter(team.getClass(), "team"); } + try { PlayerTeam nmsTeam = (PlayerTeam) TEAM_FIELD.invoke(team); if (mode == 1) { @@ -1315,9 +1380,11 @@ public class NMSImpl implements NMSBridge { sendPacket(recipient, ClientboundSetPlayerTeamPacket.createAddOrModifyPacket(nmsTeam, mode == 0 ? true : false)); } + } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1353,6 +1420,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof MobAI) { ((MobAI) handle).getMoveControl().setWantedPosition(x, y, z, speed); } + } @Override @@ -1377,6 +1445,7 @@ public class NMSImpl implements NMSBridge { if (!(handle instanceof net.minecraft.world.entity.player.Player)) { handle.setYBodyRot(yaw); } + handle.setYHeadRot(yaw); } @@ -1422,9 +1491,11 @@ public class NMSImpl implements NMSBridge { FLYING_MOVECONTROL_FLOAT_SETTER.invoke(mob.getMoveControl(), npc.data().get("flying-nogravity-float")); npc.data().remove("flying-nogravity-float"); } + } catch (Throwable t) { t.printStackTrace(); } + } @Override @@ -1461,11 +1532,13 @@ public class NMSImpl implements NMSBridge { if (SET_PROFILE_METHOD == null) return; } + try { SET_PROFILE_METHOD.invoke(meta, profile); } catch (Throwable t) { t.printStackTrace(); } + } @Override @@ -1477,6 +1550,7 @@ public class NMSImpl implements NMSBridge { if (ai != null) { ai.getJumpControl().jump(); } + } @Override @@ -1494,6 +1568,7 @@ public class NMSImpl implements NMSBridge { if (entity instanceof Player) { ((Player) entity).setSneaking(sneaking); } + Pose pose = sneaking ? Pose.CROUCHING : Pose.STANDING; getHandle(entity).setPose(pose); } @@ -1526,6 +1601,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return false; } @@ -1537,6 +1613,7 @@ public class NMSImpl implements NMSBridge { ENTITY_REGISTRY_SETTER.invoke(null, ENTITY_REGISTRY.get()); } catch (Throwable e) { } + } @Override @@ -1558,6 +1635,7 @@ public class NMSImpl implements NMSBridge { handle.setDeltaMovement(handle.getDeltaMovement().x, handle.getDeltaMovement().y + power, handle.getDeltaMovement().z); } + } @Override @@ -1649,6 +1727,7 @@ public class NMSImpl implements NMSBridge { menuType = MenuType.CRAFTING; break; } + handle.connection.send(new ClientboundOpenScreenPacket(handle.containerMenu.containerId, menuType, new TextComponent(newTitle))); player.updateInventory(); @@ -1670,6 +1749,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1682,6 +1762,7 @@ public class NMSImpl implements NMSBridge { ((MobAI) en).updatePathfindingRange(pathfindingRange); return; } + if (NAVIGATION_PATHFINDER == null) return; PathNavigation navigation = ((Mob) en).getNavigation(); @@ -1693,6 +1774,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } private static class CitizensInventoryAnvil extends CraftInventoryAnvil implements ForwardingInventory { @@ -1803,6 +1885,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + float oldw = size.width; float oldl = size.height; cb.accept(datawatcherobject); @@ -1810,6 +1893,7 @@ public class NMSImpl implements NMSBridge { living.setPos(living.getX() - 0.01, living.getY(), living.getZ() - 0.01); living.setPos(living.getX() + 0.01, living.getY(), living.getZ() + 0.01); } + } public static void clearGoals(NPC npc, GoalSelector... goalSelectors) { @@ -1822,14 +1906,17 @@ public class NMSImpl implements NMSBridge { if (!list.isEmpty()) { npc.data().set("selector" + i, Lists.newArrayList(list)); } + list.clear(); } catch (Exception e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } catch (Throwable e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } + i++; } + } private static CompoundTag convertNBT(net.minecraft.nbt.CompoundTag tag) { @@ -1839,6 +1926,7 @@ public class NMSImpl implements NMSBridge { for (String key : tag.getAllKeys()) { tags.put(key, convertNBT(key, tag.get(key))); } + return new CompoundTag("", tags); } @@ -1869,8 +1957,10 @@ public class NMSImpl implements NMSBridge { for (int i = 0; i < list.size(); i++) { converted.add(convertNBT("", list.get(i))); } + return new ListTag(key, tagType, converted); } + } else if (base instanceof net.minecraft.nbt.CompoundTag) return convertNBT((net.minecraft.nbt.CompoundTag) base); else if (base instanceof net.minecraft.nbt.EndTag) @@ -1886,6 +1976,7 @@ public class NMSImpl implements NMSBridge { d0 = 0.01D; entity.fallDistance = 0.0F; } + FluidState fluid = entity.level.getFluidState(entity.blockPosition()); if (entity.isInWater() && !entity.canStandOnFluid(fluid.getType())) { double d1 = entity.getY(); @@ -1895,22 +1986,27 @@ public class NMSImpl implements NMSBridge { if (f2 > 3.0F) { f2 = 3.0F; } + if (!entity.isOnGround()) { f2 *= 0.5F; } + if (f2 > 0.0F) { f += (0.54600006F - f) * f2 / 3.0F; f1 += (entity.getSpeed() - f1) * f2 / 3.0F; } + if (entity.hasEffect(MobEffects.DOLPHINS_GRACE)) { f = 0.96F; } + entity.moveRelative(f1, vec3d); entity.move(MoverType.SELF, entity.getDeltaMovement()); Vec3 vec3d1 = entity.getDeltaMovement(); if (entity.horizontalCollision && entity.onClimbable()) { vec3d1 = new Vec3(vec3d1.x, 0.2D, vec3d1.z); } + entity.setDeltaMovement(vec3d1.multiply(f, 0.800000011920929D, f)); Vec3 vec3d2 = entity.getFluidFallingAdjustedMovement(d0, flag, entity.getDeltaMovement()); entity.setDeltaMovement(vec3d2); @@ -1918,6 +2014,7 @@ public class NMSImpl implements NMSBridge { && entity.isFree(vec3d2.x, vec3d2.y + 0.6000000238418579D - entity.getY() + d1, vec3d2.z)) { entity.setDeltaMovement(vec3d2.x, 0.30000001192092896D, vec3d2.z); } + } else if (entity.isInLava() && !entity.canStandOnFluid(fluid.getType())) { double d1 = entity.getY(); entity.moveRelative(0.02F, vec3d); @@ -1929,19 +2026,23 @@ public class NMSImpl implements NMSBridge { } else { entity.setDeltaMovement(entity.getDeltaMovement().scale(0.5D)); } + if (!entity.isNoGravity()) { entity.setDeltaMovement(entity.getDeltaMovement().add(0.0D, -d0 / 4.0D, 0.0D)); } + Vec3 vec3d3 = entity.getDeltaMovement(); if (entity.horizontalCollision && entity.isFree(vec3d3.x, vec3d3.y + 0.6000000238418579D - entity.getY() + d1, vec3d3.z)) { entity.setDeltaMovement(vec3d3.x, 0.30000001192092896D, vec3d3.z); } + } else if (entity.isFallFlying()) { Vec3 vec3d4 = entity.getDeltaMovement(); if (vec3d4.y > -0.5D) { entity.fallDistance = 1.0F; } + Vec3 vec3d5 = entity.getLookAngle(); float f = entity.getXRot() * 0.017453292F; double d2 = Math.sqrt(vec3d5.x * vec3d5.x + vec3d5.z * vec3d5.z); @@ -1954,14 +2055,17 @@ public class NMSImpl implements NMSBridge { double d5 = vec3d4.y * -0.1D * f3; vec3d4 = vec3d4.add(vec3d5.x * d5 / d2, d5, vec3d5.z * d5 / d2); } + if (f < 0.0F && d2 > 0.0D) { double d5 = d3 * -Mth.sin(f) * 0.04D; vec3d4 = vec3d4.add(-vec3d5.x * d5 / d2, d5 * 3.2D, -vec3d5.z * d5 / d2); } + if (d2 > 0.0D) { vec3d4 = vec3d4.add((vec3d5.x / d2 * d3 - vec3d4.x) * 0.1D, 0.0D, (vec3d5.z / d2 * d3 - vec3d4.z) * 0.1D); } + entity.setDeltaMovement(vec3d4.multiply(0.9900000095367432D, 0.9800000190734863D, 0.9900000095367432D)); entity.move(MoverType.SELF, entity.getDeltaMovement()); if (entity.horizontalCollision && !entity.level.isClientSide) { @@ -1974,13 +2078,17 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + entity.hurt(DamageSource.FLY_INTO_WALL, f4); } + } + if (entity.isOnGround() && !entity.level.isClientSide && entity.getSharedFlag(7) && !CraftEventFactory.callToggleGlideEvent(entity, false).isCancelled()) { entity.setSharedFlag(7, false); } + } else { BlockPos blockposition = new BlockPos(entity.getX(), entity.getBoundingBox().minY - 0.5000001D, entity.getZ()); @@ -1997,16 +2105,21 @@ public class NMSImpl implements NMSBridge { } else { d7 = 0.0D; } + } else if (!entity.isNoGravity()) { d7 -= d0; } + if (entity.shouldDiscardFriction()) { entity.setDeltaMovement(vec3d6.x, d7, vec3d6.z); } else { entity.setDeltaMovement(vec3d6.x * f, d7 * 0.9800000190734863D, vec3d6.z * f); } + } + } + entity.calculateEntityAnimation(entity, entity instanceof net.minecraft.world.entity.animal.FlyingAnimal); } @@ -2016,6 +2129,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -2051,6 +2165,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return null; } + } public static EntityDataAccessor getRabbitTypeField() { @@ -2063,6 +2178,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -2096,6 +2212,7 @@ public class NMSImpl implements NMSBridge { if (mat != null) { minecart.setDisplayBlockState(Registry.BLOCK.byId(mat.getId()).defaultBlockState()); } + minecart.setDisplayOffset(offset); } @@ -2109,6 +2226,7 @@ public class NMSImpl implements NMSBridge { handle.setDeltaMovement(handle.getDeltaMovement().scale(0.9)); return true; } + return false; } @@ -2119,6 +2237,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void restoreGoals(NPC npc, GoalSelector... goalSelectors) { @@ -2133,13 +2252,16 @@ public class NMSImpl implements NMSBridge { if (old != null) { list.addAll(old); } + } catch (Exception e) { Messaging.logTr(Messages.ERROR_RESTORING_GOALS, e.getLocalizedMessage()); } catch (Throwable e) { Messaging.logTr(Messages.ERROR_RESTORING_GOALS, e.getLocalizedMessage()); } + i++; } + } public static void sendPacket(Player player, Packet packet) { @@ -2166,10 +2288,13 @@ public class NMSImpl implements NMSBridge { || location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) { continue; } + for (Packet packet : packets) { NMSImpl.sendPacket(player, packet); } + } + } public static void sendPacketsNearby(Player from, Location location, Packet... packets) { @@ -2182,6 +2307,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setAttribute(LivingEntity entity, Attribute attribute, double value) { @@ -2199,8 +2325,10 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + attr = entity.getAttribute(attribute); } + attr.setBaseValue(value); } @@ -2210,6 +2338,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setLife(FishingHook entity, int life) { @@ -2218,6 +2347,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setLookControl(Mob mob, LookControl control) { @@ -2226,6 +2356,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setNotInSchool(AbstractFish entity) { @@ -2233,9 +2364,11 @@ public class NMSImpl implements NMSBridge { if (ENTITY_FISH_NUM_IN_SCHOOL != null) { ENTITY_FISH_NUM_IN_SCHOOL.invoke(entity, 2); } + } catch (Throwable ex) { ex.printStackTrace(); } + } public static void setSize(Entity entity, boolean justCreated) { @@ -2258,10 +2391,13 @@ public class NMSImpl implements NMSBridge { float f = entitysize.width - entitysize1.width; entity.move(MoverType.SELF, new Vec3(f, 0.0D, f)); } + } + } catch (Throwable e) { e.printStackTrace(); } + } public static void setSize(Entity entity, EntityDimensions size) { @@ -2272,6 +2408,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void updateAI(LivingEntity entity) { @@ -2285,6 +2422,7 @@ public class NMSImpl implements NMSBridge { } else if (entity instanceof MobAI) { ((MobAI) entity).tickAI(); } + } public static void updateMinecraftAIState(NPC npc, Mob entity) { @@ -2297,6 +2435,7 @@ public class NMSImpl implements NMSBridge { getBehaviorMap(entity).putAll(behavior); npc.data().remove("behavior-map"); } + } else { NMSImpl.clearGoals(npc, entity.goalSelector, entity.targetSelector); TreeMap behaviorMap = getBehaviorMap(entity); @@ -2304,7 +2443,9 @@ public class NMSImpl implements NMSBridge { npc.data().set("behavior-map", new TreeMap(behaviorMap)); behaviorMap.clear(); } + } + } private static final MethodHandle ADVANCEMENTS_PLAYER_FIELD = NMS.getFinalSetter(ServerPlayer.class, "cr"); @@ -2374,6 +2515,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage()); } + try { ENDERMAN_CREEPY = (EntityDataAccessor) NMS.getField(EnderMan.class, "bV").get(null); } catch (IllegalArgumentException e) { @@ -2381,11 +2523,13 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + try { RABBIT_TYPE_DATAWATCHER = (EntityDataAccessor) NMS .getFirstStaticGetter(Rabbit.class, EntityDataAccessor.class).invoke(); } catch (Throwable e) { e.printStackTrace(); } + } } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PitchableLookControl.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PitchableLookControl.java index d555ca85a..1484b26aa 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PitchableLookControl.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PitchableLookControl.java @@ -18,6 +18,7 @@ public class PitchableLookControl extends LookControl { } else { resetOnTick = () -> true; } + } @Override diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerAnimationImpl.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerAnimationImpl.java index 6cbdd5bcb..e9ebe1761 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerAnimationImpl.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerAnimationImpl.java @@ -23,6 +23,7 @@ public class PlayerAnimationImpl { playDefaultAnimation(player, to, DEFAULTS.get(animation)); return; } + switch (animation) { case SNEAK: player.setPose(Pose.CROUCHING); @@ -57,6 +58,7 @@ public class PlayerAnimationImpl { default: throw new UnsupportedOperationException(); } + } protected static void playDefaultAnimation(ServerPlayer player, Iterable to, int code) { @@ -68,6 +70,7 @@ public class PlayerAnimationImpl { for (Player player : to) { NMSImpl.sendPacket(player, packet); } + } private static EnumMap DEFAULTS = Maps.newEnumMap(PlayerAnimation.class); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerlistTracker.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerlistTracker.java index 17405a069..a487672f7 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerlistTracker.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerlistTracker.java @@ -36,6 +36,7 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { new NPCLinkToPlayerEvent(((NPCHolder) tracker).getNPC(), lastUpdatedPlayer.getBukkitEntity())); lastUpdatedPlayer = null; } + } @Override @@ -48,6 +49,7 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { if (REQUIRES_SYNC == null) { REQUIRES_SYNC = !Bukkit.isPrimaryThread(); } + boolean cancelled = Util.callPossiblySync(() -> { NPCSeenByPlayerEvent event = new NPCSeenByPlayerEvent(npc, entityplayer.getBukkitEntity()); try { @@ -56,6 +58,7 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { REQUIRES_SYNC = true; throw e; } + if (event.isCancelled()) return true; Integer trackingRange = npc.data(). get(NPC.Metadata.TRACKING_RANGE); @@ -67,7 +70,9 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + } + return false; }, REQUIRES_SYNC); @@ -85,6 +90,7 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return 0; } @@ -94,6 +100,7 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return false; } @@ -103,6 +110,7 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -112,6 +120,7 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return 0; } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ArmorStandController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ArmorStandController.java index 1578fb479..6bc77319f 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ArmorStandController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/ArmorStandController.java @@ -61,6 +61,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { ai = new BasicMobAI(this); } + } @Override @@ -73,6 +74,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ArmorStandNPC(this)); } + return super.getBukkitEntity(); } @@ -108,6 +110,7 @@ public class ArmorStandController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -118,6 +121,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -139,6 +143,7 @@ public class ArmorStandController extends MobEntityController { npc.update(); ai.tickAI(); } + } @Override @@ -150,6 +155,7 @@ public class ArmorStandController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 e2b232635..ff6e74414 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 @@ -76,6 +76,7 @@ public class AxolotlController extends MobEntityController { this.getAttribute(Attributes.MOVEMENT_SPEED) .setBaseValue(this.getAttribute(Attributes.MOVEMENT_SPEED).getBaseValue() / 10); } + } @Override @@ -97,6 +98,7 @@ public class AxolotlController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -104,6 +106,7 @@ public class AxolotlController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -116,6 +119,7 @@ public class AxolotlController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new AxolotlNPC(this)); } + return super.getBukkitEntity(); } @@ -202,6 +206,7 @@ public class AxolotlController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -212,6 +217,7 @@ public class AxolotlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -234,11 +240,14 @@ public class AxolotlController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new MoveControl(this); } + npc.update(); } + } @Override @@ -247,9 +256,11 @@ public class AxolotlController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -261,6 +272,7 @@ public class AxolotlController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 d0b4987ab..98fd7936f 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 @@ -60,6 +60,7 @@ public class BatController extends MobEntityController { if (npc != null) { setResting(false); } + } @Override @@ -74,6 +75,7 @@ public class BatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -85,8 +87,10 @@ public class BatController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -99,6 +103,7 @@ public class BatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BatNPC(this)); } + return super.getBukkitEntity(); } @@ -160,6 +165,7 @@ public class BatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -170,6 +176,7 @@ public class BatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -193,6 +200,7 @@ public class BatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 32f510f4a..f796f09d4 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 @@ -71,6 +71,7 @@ public class BeeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,8 +83,10 @@ public class BeeController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -96,6 +99,7 @@ public class BeeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BeeNPC(this)); } + return super.getBukkitEntity(); } @@ -157,6 +161,7 @@ public class BeeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -167,6 +172,7 @@ public class BeeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class BeeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 559883c52..2de451b00 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 @@ -71,6 +71,7 @@ public class BlazeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class BlazeController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -91,6 +93,7 @@ public class BlazeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BlazeNPC(this)); } + return super.getBukkitEntity(); } @@ -152,6 +155,7 @@ public class BlazeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -162,6 +166,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -185,6 +190,7 @@ public class BlazeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 9f01a88fe..f66a8f3bd 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 @@ -80,6 +80,7 @@ public class CatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -87,6 +88,7 @@ public class CatController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -96,6 +98,7 @@ public class CatController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -108,6 +111,7 @@ public class CatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CatNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +181,7 @@ public class CatController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -186,6 +191,7 @@ public class CatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -196,6 +202,7 @@ public class CatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -217,6 +224,7 @@ public class CatController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -228,6 +236,7 @@ public class CatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 aff68f9dc..c8636c666 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 @@ -79,6 +79,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -86,6 +87,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -95,6 +97,7 @@ public class CaveSpiderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -107,6 +110,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CaveSpiderNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +180,7 @@ public class CaveSpiderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -186,6 +191,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -195,6 +201,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -216,6 +223,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -227,6 +235,7 @@ public class CaveSpiderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 4b8ef5288..707e475d7 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 @@ -66,6 +66,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { this.eggTime = 100; } + super.aiStep(); } @@ -88,6 +89,7 @@ public class ChickenController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -95,6 +97,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -104,6 +107,7 @@ public class ChickenController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -116,6 +120,7 @@ public class ChickenController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ChickenNPC(this)); } + return super.getBukkitEntity(); } @@ -185,6 +190,7 @@ public class ChickenController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -194,6 +200,7 @@ public class ChickenController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -204,6 +211,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -225,6 +233,7 @@ public class ChickenController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -236,6 +245,7 @@ public class ChickenController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 0815915b4..95188c8c6 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 @@ -71,6 +71,7 @@ public class CodController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -79,10 +80,12 @@ public class CodController extends MobEntityController { if (npc != null) { this.verticalCollision = false; } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; } + } @Override @@ -104,6 +107,7 @@ public class CodController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +115,7 @@ public class CodController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -119,18 +124,23 @@ public class CodController extends MobEntityController { if (!npc.useMinecraftAI()) { NMSImpl.setNotInSchool(this); } + NMSImpl.updateMinecraftAIState(npc, this); if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -143,6 +153,7 @@ public class CodController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CodNPC(this)); } + return super.getBukkitEntity(); } @@ -222,6 +233,7 @@ public class CodController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -232,6 +244,7 @@ public class CodController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -252,9 +265,11 @@ public class CodController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -266,6 +281,7 @@ public class CodController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 942c7d4f5..b3364349e 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 @@ -85,6 +85,7 @@ public class CowController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -92,6 +93,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -101,6 +103,7 @@ public class CowController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -113,6 +116,7 @@ public class CowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CowNPC(this)); } + return super.getBukkitEntity(); } @@ -192,6 +196,7 @@ public class CowController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -201,6 +206,7 @@ public class CowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -211,6 +217,7 @@ public class CowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -232,6 +239,7 @@ public class CowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -243,6 +251,7 @@ public class CowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 9662e9e1f..737883996 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 @@ -82,6 +82,7 @@ public class CreeperController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -89,6 +90,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -98,6 +100,7 @@ public class CreeperController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -110,6 +113,7 @@ public class CreeperController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CreeperNPC(this)); } + return super.getBukkitEntity(); } @@ -148,6 +152,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isProtected()) { super.ignite(); } + } @Override @@ -186,6 +191,7 @@ public class CreeperController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -196,6 +202,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -205,6 +212,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -228,6 +236,7 @@ public class CreeperController extends MobEntityController { if (npc == null || allowPowered) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -237,6 +246,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -248,6 +258,7 @@ public class CreeperController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 33ff19bfa..67d399fe7 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 @@ -70,6 +70,7 @@ public class DolphinController extends MobEntityController { this.getAttribute(Attributes.MOVEMENT_SPEED) .setBaseValue(this.getAttribute(Attributes.MOVEMENT_SPEED).getBaseValue() / 10); } + } @Override @@ -91,6 +92,7 @@ public class DolphinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -98,6 +100,7 @@ public class DolphinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -110,6 +113,7 @@ public class DolphinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DolphinNPC(this)); } + return super.getBukkitEntity(); } @@ -184,6 +188,7 @@ public class DolphinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -194,6 +199,7 @@ public class DolphinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -213,6 +219,7 @@ public class DolphinController extends MobEntityController { if (npc != null && npc.isProtected()) { inProtectedTick = true; } + super.tick(); inProtectedTick = false; if (npc != null) { @@ -220,11 +227,14 @@ public class DolphinController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new MoveControl(this); } + npc.update(); } + } @Override @@ -233,9 +243,11 @@ public class DolphinController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -247,6 +259,7 @@ public class DolphinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 6d1b0f7ca..44f000645 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 @@ -79,6 +79,7 @@ public class DrownedController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -86,6 +87,7 @@ public class DrownedController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -95,6 +97,7 @@ public class DrownedController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -107,6 +110,7 @@ public class DrownedController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DrownedNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +180,7 @@ public class DrownedController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -186,6 +191,7 @@ public class DrownedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -207,6 +213,7 @@ public class DrownedController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -218,6 +225,7 @@ public class DrownedController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 eee7cb261..55b897450 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 @@ -71,16 +71,19 @@ public class EnderDragonController extends MobEntityController { npc.update(); NMSImpl.updateMinecraftAIState(npc, this); } + if (npc != null && !npc.useMinecraftAI()) { if (isDeadOrDying()) { setHealth(0F); return; } + if (this.posPointer < 0) { for (int i = 0; i < this.positions.length; ++i) { this.positions[i][0] = this.getYRot(); this.positions[i][1] = this.getY(); } + } if (++this.posPointer == this.positions.length) { @@ -105,12 +108,14 @@ public class EnderDragonController extends MobEntityController { if (getFirstPassenger() != null) { setYRot(getFirstPassenger().getBukkitYaw() - 180); } + Vec3 mot = getDeltaMovement(); if (mot.x != 0 || mot.y != 0 || mot.z != 0) { mot = mot.multiply(0.98, 0.98, 0.98); if (getFirstPassenger() == null) { setYRot(Util.getDragonYaw(getBukkitEntity(), mot.x, mot.z)); } + setPos(getX() + mot.x, getY() + mot.y, getZ() + mot.z); setDeltaMovement(mot); } @@ -124,8 +129,11 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + } + } + if (npc.data().get(NPC.Metadata.COLLIDABLE, false)) { try { KNOCKBACK.invoke(this, @@ -143,10 +151,13 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable t) { t.printStackTrace(); } + } + } else { super.aiStep(); } + } @Override @@ -161,6 +172,7 @@ public class EnderDragonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -173,6 +185,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderDragonNPC(this)); } + return super.getBukkitEntity(); } @@ -234,6 +247,7 @@ public class EnderDragonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -244,6 +258,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -256,6 +271,7 @@ public class EnderDragonController extends MobEntityController { if (getPhaseManager().getCurrentPhase().getPhase() == EnderDragonPhase.HOVERING) { setDeltaMovement(old); } + return res; } @@ -280,6 +296,7 @@ public class EnderDragonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } 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 93ab7b7a5..4a43f3933 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 @@ -82,6 +82,7 @@ public class EndermanController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -89,6 +90,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -98,6 +100,7 @@ public class EndermanController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -110,6 +113,7 @@ public class EndermanController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EndermanNPC(this)); } + return super.getBukkitEntity(); } @@ -179,6 +183,7 @@ public class EndermanController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +194,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -206,6 +212,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -227,6 +234,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -238,6 +246,7 @@ public class EndermanController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 97d639777..61bb7253a 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 @@ -79,6 +79,7 @@ public class EndermiteController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -86,6 +87,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -95,6 +97,7 @@ public class EndermiteController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -107,6 +110,7 @@ public class EndermiteController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EndermiteNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +180,7 @@ public class EndermiteController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -186,6 +191,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -195,6 +201,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -216,6 +223,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -227,6 +235,7 @@ public class EndermiteController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EntityHumanNPC.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EntityHumanNPC.java index 2a8a7a1d4..edad4ef75 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EntityHumanNPC.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EntityHumanNPC.java @@ -75,10 +75,12 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } catch (Throwable e) { e.printStackTrace(); } + initialise(minecraftServer); } else { skinTracker = null; } + } @Override @@ -100,6 +102,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -121,6 +124,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable super.doTick(); return; } + super.baseTick(); boolean navigating = npc.getNavigator().isNavigating() || ai.getMoveControl().hasWanted(); if (!navigating && getBukkitEntity() != null @@ -129,16 +133,20 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable && (!npc.isProtected() || SpigotUtil.checkYSafe(getY(), getBukkitEntity().getWorld()))) { moveWithFallDamage(Vec3.ZERO); } + Vec3 mot = getDeltaMovement(); if (Math.abs(mot.x) < EPSILON && Math.abs(mot.y) < EPSILON && Math.abs(mot.z) < EPSILON) { setDeltaMovement(Vec3.ZERO); } + if (navigating) { if (!ai.getNavigation().isDone()) { ai.getNavigation().tick(); } + moveOnCurrentHeading(); } + ai.getJumpControl().tick(); ai.getMoveControl().tick(); detectEquipmentUpdates(); @@ -146,6 +154,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (isSpectator()) { this.onGround = false; } + pushEntities(); if (npc.data().get(NPC.Metadata.PICKUP_ITEMS, false)) { @@ -155,10 +164,13 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } else { axisalignedbb = this.getBoundingBox().inflate(1.0, 0.5, 1.0); } + for (Entity entity : this.level.getEntities(this, axisalignedbb)) { entity.playerTouch(this); } + } + } @Override @@ -166,6 +178,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (playerlistTracker != null) { playerlistTracker.updateLastPlayer(); } + return super.getAddEntityPacket(); } @@ -179,6 +192,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PlayerNPC(this)); } + return super.getBukkitEntity(); } @@ -208,6 +222,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (skinName == null) { skinName = npc.getName(); } + return skinName.toLowerCase(); } @@ -236,8 +251,10 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable boolean damaged = super.hurt(damagesource, f); if (damaged && hurtMarked) { hurtMarked = false; - Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), (Runnable) () -> EntityHumanNPC.this.hurtMarked = true); + Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), + (Runnable) () -> EntityHumanNPC.this.hurtMarked = true); } + return damaged; } @@ -248,6 +265,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable conn.setListener(connection); } catch (IOException e) { } + this.invulnerableTime = 0; NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing setSkinFlags((byte) 0xFF); @@ -275,9 +293,11 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable jumpFromGround(); jumpTicks = 10; } + } else { jumpTicks = 0; } + xxa *= 0.98F; zza *= 0.98F; moveWithFallDamage(new Vec3(this.xxa, this.yya, this.zza)); @@ -285,6 +305,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (jumpTicks > 0) { jumpTicks--; } + } private void moveWithFallDamage(Vec3 vec) { @@ -293,6 +314,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (!npc.isProtected()) { doCheckFallDamage(getY() - y, onGround); } + } @Override @@ -309,6 +331,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -319,6 +342,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -368,6 +392,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } private void updatePackets(boolean navigating) { 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 cb72c1563..70a005d42 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 @@ -73,6 +73,7 @@ public class EvokerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class EvokerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class EvokerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class EvokerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EvokerNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class EvokerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class EvokerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +207,7 @@ public class EvokerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -212,6 +219,7 @@ public class EvokerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 50e7907f0..3da395432 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 @@ -74,6 +74,7 @@ public class FoxController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class FoxController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class FoxController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class FoxController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FoxNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class FoxController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -180,6 +185,7 @@ public class FoxController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +196,7 @@ public class FoxController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -211,6 +218,7 @@ public class FoxController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class FoxController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 ee037866e..c5829b557 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 @@ -65,6 +65,7 @@ public class GhastController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -73,6 +74,7 @@ public class GhastController extends MobEntityController { npc.update(); NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); } @@ -86,6 +88,7 @@ public class GhastController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GhastNPC(this)); } + return super.getBukkitEntity(); } @@ -152,6 +155,7 @@ public class GhastController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -162,6 +166,7 @@ public class GhastController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -185,6 +190,7 @@ public class GhastController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 8d307ce26..cfde879d3 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 @@ -73,6 +73,7 @@ public class GiantController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class GiantController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class GiantController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GiantNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class GiantController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class GiantController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class GiantController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 8223c09bf..b7b5303b9 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 @@ -73,6 +73,7 @@ public class GlowSquidController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class GlowSquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class GlowSquidController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class GlowSquidController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GlowSquidNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class GlowSquidController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class GlowSquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class GlowSquidController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class GlowSquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class GlowSquidController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 29bdbc154..f16e06c50 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 @@ -74,6 +74,7 @@ public class GoatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class GoatController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class GoatController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class GoatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GoatNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class GoatController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -180,6 +185,7 @@ public class GoatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +196,7 @@ public class GoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -211,6 +218,7 @@ public class GoatController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class GoatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 fce8b5fe4..b3d85e0d8 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 @@ -65,8 +65,10 @@ public class GuardianController extends MobEntityController { } else { super.aiStep(); } + npc.update(); } + } @Override @@ -88,6 +90,7 @@ public class GuardianController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -95,6 +98,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -107,6 +111,7 @@ public class GuardianController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GuardianNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +181,7 @@ public class GuardianController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -186,6 +192,7 @@ public class GuardianController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -195,6 +202,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -216,6 +224,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -227,6 +236,7 @@ public class GuardianController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 f0dd92f60..52255eb86 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 @@ -65,8 +65,10 @@ public class GuardianElderController extends MobEntityController { } else { super.aiStep(); } + npc.update(); } + } @Override @@ -88,6 +90,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -95,6 +98,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -107,6 +111,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GuardianElderNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +181,7 @@ public class GuardianElderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -186,6 +192,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -195,6 +202,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -216,6 +224,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -227,6 +236,7 @@ public class GuardianElderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 8397b09fe..5977f4ed9 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 @@ -73,6 +73,7 @@ public class HoglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class HoglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,10 +90,12 @@ public class HoglinController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -104,6 +108,7 @@ public class HoglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HoglinNPC(this)); } + return super.getBukkitEntity(); } @@ -173,6 +178,7 @@ public class HoglinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -183,6 +189,7 @@ public class HoglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -204,6 +211,7 @@ public class HoglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -215,6 +223,7 @@ public class HoglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 28eaef40a..87e7bb793 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 @@ -72,6 +72,7 @@ public class HorseController extends MobEntityController { horse.setDomestication(horse.getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -98,6 +99,7 @@ public class HorseController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -105,6 +107,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -120,13 +123,16 @@ public class HorseController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } @@ -141,6 +147,7 @@ public class HorseController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseNPC(this)); } + return super.getBukkitEntity(); } @@ -217,6 +224,7 @@ public class HorseController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -226,6 +234,7 @@ public class HorseController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -236,6 +245,7 @@ public class HorseController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -257,6 +267,7 @@ public class HorseController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -268,6 +279,7 @@ public class HorseController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 a919647dc..a9a65ff90 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 @@ -72,6 +72,7 @@ public class HorseDonkeyController extends MobEntityController { .setDomestication(((org.bukkit.entity.Donkey) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -98,6 +99,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -105,6 +107,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -119,16 +122,20 @@ public class HorseDonkeyController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -141,6 +148,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseDonkeyNPC(this)); } + return super.getBukkitEntity(); } @@ -217,6 +225,7 @@ public class HorseDonkeyController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -226,6 +235,7 @@ public class HorseDonkeyController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -236,6 +246,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -257,6 +268,7 @@ public class HorseDonkeyController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -268,6 +280,7 @@ public class HorseDonkeyController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 a23f5a0cb..0331cd650 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 @@ -72,6 +72,7 @@ public class HorseMuleController extends MobEntityController { .setDomestication(((org.bukkit.entity.Mule) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -98,6 +99,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -105,6 +107,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -119,16 +122,20 @@ public class HorseMuleController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -141,6 +148,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseMuleNPC(this)); } + return super.getBukkitEntity(); } @@ -217,6 +225,7 @@ public class HorseMuleController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -226,6 +235,7 @@ public class HorseMuleController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -236,6 +246,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -257,6 +268,7 @@ public class HorseMuleController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -268,6 +280,7 @@ public class HorseMuleController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 e0d041fa6..7d96d358d 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 @@ -72,6 +72,7 @@ public class HorseSkeletonController extends MobEntityController { .setDomestication(((org.bukkit.entity.SkeletonHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -98,6 +99,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -105,6 +107,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -119,16 +122,20 @@ public class HorseSkeletonController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -141,6 +148,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseSkeletonNPC(this)); } + return super.getBukkitEntity(); } @@ -217,6 +225,7 @@ public class HorseSkeletonController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -226,6 +235,7 @@ public class HorseSkeletonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -236,6 +246,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -257,6 +268,7 @@ public class HorseSkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -268,6 +280,7 @@ public class HorseSkeletonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 be1367ce1..643646d51 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 @@ -72,6 +72,7 @@ public class HorseZombieController extends MobEntityController { .setDomestication(((org.bukkit.entity.ZombieHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -98,6 +99,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -105,6 +107,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -119,16 +122,20 @@ public class HorseZombieController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -141,6 +148,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -217,6 +225,7 @@ public class HorseZombieController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -226,6 +235,7 @@ public class HorseZombieController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -236,6 +246,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -257,6 +268,7 @@ public class HorseZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -268,6 +280,7 @@ public class HorseZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HumanController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HumanController.java index 656df879c..1143d8db1 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HumanController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HumanController.java @@ -35,15 +35,18 @@ public class HumanController extends AbstractEntityController { if (npc.requiresNameHologram()) { name = teamName; } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } + final GameProfile profile = new GameProfile(uuid, name); final EntityHumanNPC handle = new EntityHumanNPC(MinecraftServer.getServer(), nmsWorld, profile, npc); Skin skin = handle.getSkinTracker().getSkin(); if (skin != null) { skin.apply(handle); } + Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> { if (getBukkitEntity() == null || !getBukkitEntity().isValid() || getBukkitEntity() != handle.getBukkitEntity()) 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 6059b99db..82502779e 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 @@ -73,6 +73,7 @@ public class IllusionerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class IllusionerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class IllusionerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class IllusionerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new IllusionerNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class IllusionerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class IllusionerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +207,7 @@ public class IllusionerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -212,6 +219,7 @@ public class IllusionerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 5e2530759..fe877f738 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 @@ -73,6 +73,7 @@ public class IronGolemController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class IronGolemController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class IronGolemController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new IronGolemNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class IronGolemController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class IronGolemController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 0cc9fc7ec..5059c1ac3 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 @@ -72,6 +72,7 @@ public class LlamaController extends MobEntityController { .setDomestication(((org.bukkit.entity.Llama) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -93,6 +94,7 @@ public class LlamaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -100,6 +102,7 @@ public class LlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -114,16 +117,20 @@ public class LlamaController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -136,6 +143,7 @@ public class LlamaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LlamaNPC(this)); } + return super.getBukkitEntity(); } @@ -212,6 +220,7 @@ public class LlamaController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -221,6 +230,7 @@ public class LlamaController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -231,6 +241,7 @@ public class LlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -252,6 +263,7 @@ public class LlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -263,6 +275,7 @@ public class LlamaController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 668197d00..e6f101196 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 @@ -62,6 +62,7 @@ public class MagmaCubeController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new EntityMoveControl(this); } + } @Override @@ -83,6 +84,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -90,6 +92,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -102,6 +105,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MagmaCubeNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.playerTouch(human); } + } @Override @@ -178,6 +183,7 @@ public class MagmaCubeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -188,6 +194,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -197,6 +204,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -219,11 +227,14 @@ public class MagmaCubeController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -233,6 +244,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -244,6 +256,7 @@ public class MagmaCubeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MobEntityController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MobEntityController.java index c317c3bbf..33bc9c1d6 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MobEntityController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MobEntityController.java @@ -39,7 +39,9 @@ public abstract class MobEntityController extends AbstractEntityController { if (mob.getLookControl().getClass() == LookControl.class) { NMSImpl.setLookControl(mob, new PitchableLookControl(mob)); } + } + entity.absMoveTo(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch()); if (npc != null) { // entity.onGround isn't updatedright away - we approximate here so @@ -48,11 +50,14 @@ public abstract class MobEntityController extends AbstractEntityController { if (beneath.isSolid()) { entity.setOnGround(true); } + entity.setUUID(npc.getUniqueId()); if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } + } + return entity.getBukkitEntity(); } @@ -63,6 +68,7 @@ public abstract class MobEntityController extends AbstractEntityController { ex.printStackTrace(); return null; } + } private static Constructor getConstructor(Class clazz) { @@ -75,6 +81,7 @@ public abstract class MobEntityController extends AbstractEntityController { } catch (Exception ex) { throw new IllegalStateException("unable to find an entity constructor"); } + } private static final Map, Constructor> CONSTRUCTOR_CACHE = new WeakHashMap<>(); 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 ecac3037e..d53bbed2c 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 @@ -77,6 +77,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -84,6 +85,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -93,6 +95,7 @@ public class MushroomCowController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -105,6 +108,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MushroomCowNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +185,7 @@ public class MushroomCowController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -190,6 +195,7 @@ public class MushroomCowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -200,6 +206,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -221,6 +228,7 @@ public class MushroomCowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -232,6 +240,7 @@ public class MushroomCowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 cc3698aef..26be8daae 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 @@ -75,6 +75,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,6 +83,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -92,10 +94,12 @@ public class OcelotController extends MobEntityController { if (restorePose) { this.setPose(old); } + if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -108,6 +112,7 @@ public class OcelotController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new OcelotNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +182,7 @@ public class OcelotController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -186,6 +192,7 @@ public class OcelotController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -196,6 +203,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -217,6 +225,7 @@ public class OcelotController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -228,6 +237,7 @@ public class OcelotController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 88858ca4e..a56c6a506 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 @@ -74,6 +74,7 @@ public class PandaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class PandaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class PandaController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class PandaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PandaNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class PandaController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -180,6 +185,7 @@ public class PandaController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +196,7 @@ public class PandaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -211,6 +218,7 @@ public class PandaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class PandaController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 596a44a9f..0aa040f38 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 @@ -68,6 +68,7 @@ public class ParrotController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,8 +80,10 @@ public class ParrotController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -93,6 +96,7 @@ public class ParrotController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ParrotNPC(this)); } + return super.getBukkitEntity(); } @@ -136,6 +140,7 @@ public class ParrotController extends MobEntityController { if (super.isLeashed()) { dropLeash(true, false); // clearLeash with client update } + return false; // shouldLeash } @@ -170,6 +175,7 @@ public class ParrotController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +186,7 @@ public class ParrotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -203,6 +210,7 @@ public class ParrotController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 81217532e..0f2312312 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 @@ -67,6 +67,7 @@ public class PhantomController extends MobEntityController { this.lookControl = new LookControl(this); // TODO: phantom pitch reversed } + } @Override @@ -78,15 +79,19 @@ public class PhantomController extends MobEntityController { this.moveControl = this.oldMoveController; this.lookControl = this.oldLookController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); this.lookControl = new LookControl(this); } + if (npc.isProtected()) { this.setSecondsOnFire(0); } + npc.update(); } + } @Override @@ -108,6 +113,7 @@ public class PhantomController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -115,6 +121,7 @@ public class PhantomController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -127,6 +134,7 @@ public class PhantomController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PhantomNPC(this)); } + return super.getBukkitEntity(); } @@ -203,6 +211,7 @@ public class PhantomController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -212,6 +221,7 @@ public class PhantomController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -222,6 +232,7 @@ public class PhantomController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -248,6 +259,7 @@ public class PhantomController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -259,6 +271,7 @@ public class PhantomController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 05fdac1ab..daf8c3e59 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 @@ -81,6 +81,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -88,6 +89,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -97,6 +99,7 @@ public class PigController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -109,6 +112,7 @@ public class PigController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PigNPC(this)); } + return super.getBukkitEntity(); } @@ -178,6 +182,7 @@ public class PigController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -187,6 +192,7 @@ public class PigController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -197,6 +203,7 @@ public class PigController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -216,6 +223,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -225,6 +233,7 @@ public class PigController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -236,6 +245,7 @@ public class PigController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 8f5440dde..4cf5e603a 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 @@ -73,6 +73,7 @@ public class PigZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class PigZombieController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class PigZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PigZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class PigZombieController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +207,7 @@ public class PigZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -212,6 +219,7 @@ public class PigZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 51895d112..8a3a90720 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 @@ -73,6 +73,7 @@ public class PiglinBruteController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class PiglinBruteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,10 +90,12 @@ public class PiglinBruteController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -104,6 +108,7 @@ public class PiglinBruteController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PiglinBruteNPC(this)); } + return super.getBukkitEntity(); } @@ -173,6 +178,7 @@ public class PiglinBruteController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -183,6 +189,7 @@ public class PiglinBruteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -204,6 +211,7 @@ public class PiglinBruteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -215,6 +223,7 @@ public class PiglinBruteController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 385061240..7ac5bbe18 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 @@ -73,6 +73,7 @@ public class PiglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class PiglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,10 +90,12 @@ public class PiglinController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -104,6 +108,7 @@ public class PiglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PiglinNPC(this)); } + return super.getBukkitEntity(); } @@ -173,6 +178,7 @@ public class PiglinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -183,6 +189,7 @@ public class PiglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -204,6 +211,7 @@ public class PiglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -215,6 +223,7 @@ public class PiglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 b1017d28a..4c2d63068 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 @@ -74,6 +74,7 @@ public class PillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class PillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class PillagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class PillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class PillagerController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -180,6 +185,7 @@ public class PillagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +196,7 @@ public class PillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -211,6 +218,7 @@ public class PillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class PillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 1bd5cee6d..19c79015b 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 @@ -66,6 +66,7 @@ public class PolarBearController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -75,6 +76,7 @@ public class PolarBearController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -87,6 +89,7 @@ public class PolarBearController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PolarBearNPC(this)); } + return super.getBukkitEntity(); } @@ -148,6 +151,7 @@ public class PolarBearController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -157,6 +161,7 @@ public class PolarBearController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -167,6 +172,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class PolarBearController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 381d4cc8e..b1d78f7ca 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 @@ -68,6 +68,7 @@ public class PufferFishController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -78,11 +79,13 @@ public class PufferFishController extends MobEntityController { this.verticalCollision = false; setPuffState(0); } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; setPuffState(lastPuffState); } + } @Override @@ -104,6 +107,7 @@ public class PufferFishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +115,7 @@ public class PufferFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -121,11 +126,14 @@ public class PufferFishController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -138,6 +146,7 @@ public class PufferFishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PufferFishNPC(this)); } + return super.getBukkitEntity(); } @@ -224,6 +233,7 @@ public class PufferFishController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -234,6 +244,7 @@ public class PufferFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -253,11 +264,13 @@ public class PufferFishController extends MobEntityController { if (npc != null) { NMSImpl.resetPuffTicks(this); } + super.tick(); PufferFishTrait trait = null; if (npc != null && (trait = npc.getTraitNullable(PufferFishTrait.class)) != null) { setPuffState(trait.getPuffState()); } + } @Override @@ -266,9 +279,11 @@ public class PufferFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -280,6 +295,7 @@ public class PufferFishController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } @@ -292,6 +308,7 @@ public class PufferFishController extends MobEntityController { default: return 1.0F; } + } } 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 dfdc660fb..ce5ad361c 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 @@ -75,6 +75,7 @@ public class RabbitController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,6 +83,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -92,8 +94,10 @@ public class RabbitController extends MobEntityController { if (npc.getNavigator().isNavigating()) { NMS.setShouldJump(getBukkitEntity()); } + npc.update(); } + } @Override @@ -106,6 +110,7 @@ public class RabbitController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new RabbitNPC(this)); } + return super.getBukkitEntity(); } @@ -180,6 +185,7 @@ public class RabbitController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -189,6 +195,7 @@ public class RabbitController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -199,6 +206,7 @@ public class RabbitController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -214,6 +222,7 @@ public class RabbitController extends MobEntityController { this.entityData.set(NMSImpl.getRabbitTypeField(), i); return; } + super.setRabbitType(i); } @@ -231,6 +240,7 @@ public class RabbitController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -242,6 +252,7 @@ public class RabbitController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 9829e75e2..9113dad9a 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 @@ -79,6 +79,7 @@ public class RavagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -86,6 +87,7 @@ public class RavagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -95,6 +97,7 @@ public class RavagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -107,6 +110,7 @@ public class RavagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new RavagerNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +180,7 @@ public class RavagerController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -185,6 +190,7 @@ public class RavagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -195,6 +201,7 @@ public class RavagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -216,6 +223,7 @@ public class RavagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -227,6 +235,7 @@ public class RavagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 80d345f15..7b56007e9 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 @@ -65,6 +65,7 @@ public class SalmonController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -73,10 +74,12 @@ public class SalmonController extends MobEntityController { if (npc != null) { this.verticalCollision = false; } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; } + } @Override @@ -98,6 +101,7 @@ public class SalmonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -105,6 +109,7 @@ public class SalmonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -115,14 +120,18 @@ public class SalmonController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -135,6 +144,7 @@ public class SalmonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SalmonNPC(this)); } + return super.getBukkitEntity(); } @@ -214,6 +224,7 @@ public class SalmonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -224,6 +235,7 @@ public class SalmonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -244,9 +256,11 @@ public class SalmonController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -258,6 +272,7 @@ public class SalmonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 037e3f407..c0270cb2e 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 @@ -74,6 +74,7 @@ public class SheepController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class SheepController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class SheepController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SheepNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class SheepController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -180,6 +185,7 @@ public class SheepController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +196,7 @@ public class SheepController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -211,6 +218,7 @@ public class SheepController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class SheepController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 91659252e..3d0a7a740 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 @@ -60,6 +60,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || npc.useMinecraftAI()) { super.aiStep(); } + } @Override @@ -81,6 +82,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -88,6 +90,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -105,6 +108,7 @@ public class ShulkerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ShulkerNPC(this)); } + return super.getBukkitEntity(); } @@ -174,6 +178,7 @@ public class ShulkerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -184,6 +189,7 @@ public class ShulkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -193,6 +199,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -214,10 +221,12 @@ public class ShulkerController extends MobEntityController { if (npc.useMinecraftAI()) { super.tick(); } + npc.update(); } else { super.tick(); } + } @Override @@ -227,6 +236,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -238,6 +248,7 @@ public class ShulkerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 bcc17e59a..efa5d4dbb 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 @@ -73,6 +73,7 @@ public class SilverfishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SilverfishController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SilverfishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SilverfishNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SilverfishController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class SilverfishController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 28c6d8d0f..6c5809a7d 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 @@ -73,6 +73,7 @@ public class SkeletonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SkeletonController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SkeletonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SkeletonNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SkeletonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class SkeletonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 4a7a0bdbf..42da5ead2 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 @@ -73,6 +73,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SkeletonStrayController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new StrayNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SkeletonStrayController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class SkeletonStrayController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 b6674be42..e65f49f68 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 @@ -73,6 +73,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SkeletonWitherController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SkeletonWitherNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SkeletonWitherController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class SkeletonWitherController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 ac2b3eb2d..6b2918341 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 @@ -62,6 +62,7 @@ public class SlimeController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new EntityMoveControl(this); } + } @Override @@ -83,6 +84,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -90,6 +92,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -102,6 +105,7 @@ public class SlimeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SlimeNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.playerTouch(human); } + } @Override @@ -178,6 +183,7 @@ public class SlimeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -188,6 +194,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -197,6 +204,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -219,11 +227,14 @@ public class SlimeController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -233,6 +244,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -244,6 +256,7 @@ public class SlimeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 fcff552dc..eb2a48eef 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 @@ -73,6 +73,7 @@ public class SnowmanController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SnowmanController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SnowmanController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnowmanNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SnowmanController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class SnowmanController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 b595508e3..a1b4e9baa 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 @@ -73,6 +73,7 @@ public class SpiderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SpiderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SpiderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SpiderNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SpiderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class SpiderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 e13b3edb9..2f1aa5a13 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 @@ -73,6 +73,7 @@ public class SquidController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SquidController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SquidController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SquidNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SquidController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class SquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class SquidController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 7e04c8f68..16d9ba9a3 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 @@ -73,6 +73,7 @@ public class StriderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class StriderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class StriderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class StriderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new StriderNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class StriderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class StriderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +207,7 @@ public class StriderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -212,6 +219,7 @@ public class StriderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 b4d136ee3..875ba5cbc 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 @@ -65,6 +65,7 @@ public class TraderLlamaController extends MobEntityController { ((org.bukkit.entity.TraderLlama) getBukkitEntity()) .setDomestication(((org.bukkit.entity.TraderLlama) getBukkitEntity()).getMaxDomestication()); } + } @Override @@ -86,6 +87,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -93,6 +95,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -104,10 +107,12 @@ public class TraderLlamaController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + setDespawnDelay(10); NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -120,6 +125,7 @@ public class TraderLlamaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TraderLlamaNPC(this)); } + return super.getBukkitEntity(); } @@ -189,6 +195,7 @@ public class TraderLlamaController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -198,6 +205,7 @@ public class TraderLlamaController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -208,6 +216,7 @@ public class TraderLlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -229,6 +238,7 @@ public class TraderLlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -240,6 +250,7 @@ public class TraderLlamaController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 3286b22dc..5f34fdedb 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 @@ -65,6 +65,7 @@ public class TropicalFishController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -73,10 +74,12 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { this.verticalCollision = false; } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; } + } @Override @@ -98,6 +101,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -105,6 +109,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -113,18 +118,23 @@ public class TropicalFishController extends MobEntityController { if (!npc.useMinecraftAI()) { NMSImpl.setNotInSchool(this); } + NMSImpl.updateMinecraftAIState(npc, this); if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -137,6 +147,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TropicalFishNPC(this)); } + return super.getBukkitEntity(); } @@ -216,6 +227,7 @@ public class TropicalFishController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -226,6 +238,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -246,9 +259,11 @@ public class TropicalFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -260,6 +275,7 @@ public class TropicalFishController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 f0d237700..a21bee67f 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 @@ -66,6 +66,7 @@ public class TurtleController extends MobEntityController { this.moveControl = new MoveControl(this); this.jumpControl = new EmptyControllerJump(this); } + } @Override @@ -87,6 +88,7 @@ public class TurtleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -94,6 +96,7 @@ public class TurtleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -105,12 +108,15 @@ public class TurtleController extends MobEntityController { this.moveControl = this.oldMoveController; this.jumpControl = this.oldJumpController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); this.jumpControl = new EmptyControllerJump(this); } + npc.update(); } + } @Override @@ -123,6 +129,7 @@ public class TurtleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TurtleNPC(this)); } + return super.getBukkitEntity(); } @@ -192,6 +199,7 @@ public class TurtleController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -202,6 +210,7 @@ public class TurtleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -222,9 +231,11 @@ public class TurtleController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -236,6 +247,7 @@ public class TurtleController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } 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 d0595f798..b35f12dc8 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 @@ -54,6 +54,7 @@ public class VexController extends MobEntityController { if (npc != null) { setNoGravity(true); } + } @Override @@ -68,6 +69,7 @@ public class VexController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -77,6 +79,7 @@ public class VexController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -89,6 +92,7 @@ public class VexController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VexNPC(this)); } + return super.getBukkitEntity(); } @@ -150,6 +154,7 @@ public class VexController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -160,6 +165,7 @@ public class VexController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -183,6 +189,7 @@ public class VexController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 cafd955be..08c7f3dd8 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 @@ -64,6 +64,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(0.3); } + } @Override @@ -85,6 +86,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -92,6 +94,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -99,10 +102,12 @@ public class VillagerController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -115,6 +120,7 @@ public class VillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -165,6 +171,7 @@ public class VillagerController extends MobEntityController { blockingATrade = false; return true; } + return super.isTrading(); } @@ -187,7 +194,9 @@ public class VillagerController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.mobInteract(entityhuman, enumhand); } @@ -205,6 +214,7 @@ public class VillagerController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -214,6 +224,7 @@ public class VillagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -224,6 +235,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -243,6 +255,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -252,6 +265,7 @@ public class VillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -263,6 +277,7 @@ public class VillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 4cbf8ba82..3215aca13 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 @@ -74,6 +74,7 @@ public class VindicatorController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class VindicatorController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class VindicatorController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class VindicatorController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VindicatorNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class VindicatorController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -180,6 +185,7 @@ public class VindicatorController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +196,7 @@ public class VindicatorController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -211,6 +218,7 @@ public class VindicatorController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class VindicatorController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 1b4f849f1..205f50b83 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 @@ -83,6 +83,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -90,6 +91,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -97,11 +99,13 @@ public class WanderingTraderController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); if (npc != null) { setDespawnDelay(10); npc.update(); } + } @Override @@ -114,6 +118,7 @@ public class WanderingTraderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WanderingTraderNPC(this)); } + return super.getBukkitEntity(); } @@ -168,6 +173,7 @@ public class WanderingTraderController extends MobEntityController { blockingATrade = false; return true; } + return super.isTrading(); } @@ -190,7 +196,9 @@ public class WanderingTraderController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.mobInteract(entityhuman, enumhand); } @@ -208,6 +216,7 @@ public class WanderingTraderController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -217,6 +226,7 @@ public class WanderingTraderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -227,6 +237,7 @@ public class WanderingTraderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -250,6 +261,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -259,6 +271,7 @@ public class WanderingTraderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -270,6 +283,7 @@ public class WanderingTraderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 536a8b29a..aca24c2c6 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 @@ -73,6 +73,7 @@ public class WitchController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class WitchController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class WitchController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitchNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class WitchController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class WitchController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class WitchController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 6a0885fcc..54cf4bf52 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 @@ -65,6 +65,7 @@ public class WitherController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -76,8 +77,10 @@ public class WitherController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -95,6 +98,7 @@ public class WitherController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitherNPC(this)); } + return super.getBukkitEntity(); } @@ -162,6 +166,7 @@ public class WitherController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -172,6 +177,7 @@ public class WitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -195,6 +201,7 @@ public class WitherController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 0ba4ff209..a362bd90e 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 @@ -76,6 +76,7 @@ public class WolfController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -83,6 +84,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -92,6 +94,7 @@ public class WolfController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -104,6 +107,7 @@ public class WolfController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WolfNPC(this)); } + return super.getBukkitEntity(); } @@ -173,6 +177,7 @@ public class WolfController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -182,6 +187,7 @@ public class WolfController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -192,6 +198,7 @@ public class WolfController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -218,6 +225,7 @@ public class WolfController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -229,6 +237,7 @@ public class WolfController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 83138ce1f..2112c0d95 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 @@ -73,6 +73,7 @@ public class ZoglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class ZoglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -87,10 +89,12 @@ public class ZoglinController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -103,6 +107,7 @@ public class ZoglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZoglinNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +177,7 @@ public class ZoglinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -182,6 +188,7 @@ public class ZoglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -203,6 +210,7 @@ public class ZoglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -214,6 +222,7 @@ public class ZoglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 7556c37ec..eab243ea6 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 @@ -73,6 +73,7 @@ public class ZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class ZombieController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class ZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class ZombieController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +207,7 @@ public class ZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -212,6 +219,7 @@ public class ZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 6b3c5e88e..db94dc36b 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 @@ -73,6 +73,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class ZombieHuskController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieHuskNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class ZombieHuskController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +207,7 @@ public class ZombieHuskController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -212,6 +219,7 @@ public class ZombieHuskController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 5f3168a51..3d403804f 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 @@ -73,6 +73,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class ZombieVillagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieVillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class ZombieVillagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +207,7 @@ public class ZombieVillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -212,6 +219,7 @@ public class ZombieVillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 deb2b22d4..2358dec94 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 @@ -60,6 +60,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new AreaEffectCloudNPC(this)); } + return super.getBukkitEntity(); } @@ -90,6 +91,7 @@ public class AreaEffectCloudController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -100,6 +102,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,6 +124,7 @@ public class AreaEffectCloudController extends MobEntityController { } else { super.tick(); } + } @Override @@ -132,6 +136,7 @@ public class AreaEffectCloudController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 0044b2714..2d053d0e4 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 @@ -72,6 +72,7 @@ public class BoatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BoatNPC(this)); } + return super.getBukkitEntity(); } @@ -91,6 +92,7 @@ public class BoatController extends MobEntityController { this.aC = getBoundingBox().maxY; return entityboat_Status; } + if (t()) return Status.IN_WATER; float f = getGroundFriction(); @@ -98,6 +100,7 @@ public class BoatController extends MobEntityController { this.aD = f; return Status.ON_LAND; } + return Status.IN_AIR; } @@ -118,6 +121,7 @@ public class BoatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -128,6 +132,7 @@ public class BoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -137,6 +142,7 @@ public class BoatController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -166,9 +172,13 @@ public class BoatController extends MobEntityController { this.aC = Math.max(f, this.aC); m = flag | (axisalignedbb.minY < f ? true : false); } + } + } + } + return m; } @@ -210,7 +220,9 @@ public class BoatController extends MobEntityController { if (getControllingPassenger() instanceof ServerPlayer) { this.aD /= 2.0F; } + } + Vec3 vec3d = getDeltaMovement(); setDeltaMovement(vec3d.x * this.ap, vec3d.y + d1, vec3d.z * this.ap); this.ar *= this.ap; @@ -218,14 +230,18 @@ public class BoatController extends MobEntityController { Vec3 vec3d1 = getDeltaMovement(); setDeltaMovement(vec3d1.x, vec3d1.y + d2 * 0.0615D, vec3d1.z); } + } + move(MoverType.SELF, getDeltaMovement()); if (isVehicle()) { setYRot((float) (getYRot() + this.ar)); } + } else { super.tick(); } + } private Status u() { @@ -250,9 +266,13 @@ public class BoatController extends MobEntityController { return Status.UNDER_FLOWING_WATER; flag = true; } + } + } + } + return flag ? Status.UNDER_WATER : null; } @@ -265,6 +285,7 @@ public class BoatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 92a5a4661..5637f61bf 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 @@ -60,6 +60,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DragonFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -90,6 +91,7 @@ public class DragonFireballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -100,6 +102,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -109,6 +112,7 @@ public class DragonFireballController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -130,9 +134,11 @@ public class DragonFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -144,6 +150,7 @@ public class DragonFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 a59e6da02..06f836810 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 @@ -74,6 +74,7 @@ public class EggController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EggNPC(this)); } + return super.getBukkitEntity(); } @@ -104,6 +105,7 @@ public class EggController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -114,6 +116,7 @@ public class EggController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -135,9 +138,11 @@ public class EggController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -149,6 +154,7 @@ public class EggController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 bac93b3eb..7689008ec 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 @@ -60,6 +60,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderCrystalNPC(this)); } + return super.getBukkitEntity(); } @@ -90,6 +91,7 @@ public class EnderCrystalController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -100,6 +102,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,6 +124,7 @@ public class EnderCrystalController extends MobEntityController { } else { super.tick(); } + } @Override @@ -132,6 +136,7 @@ public class EnderCrystalController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 08bf45868..9da7407dc 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 @@ -61,6 +61,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderPearlNPC(this)); } + return super.getBukkitEntity(); } @@ -91,6 +92,7 @@ public class EnderPearlController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -101,6 +103,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -122,9 +125,11 @@ public class EnderPearlController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -136,6 +141,7 @@ public class EnderPearlController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 b50c5e9f9..a9ace39f1 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 @@ -61,6 +61,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderSignalNPC(this)); } + return super.getBukkitEntity(); } @@ -91,6 +92,7 @@ public class EnderSignalController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -101,6 +103,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -122,6 +125,7 @@ public class EnderSignalController extends MobEntityController { } else { super.tick(); } + } @Override @@ -133,6 +137,7 @@ public class EnderSignalController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 9b1bdc825..30e0e008a 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 @@ -58,6 +58,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EvokerFangsNPC(this)); } + return super.getBukkitEntity(); } @@ -98,6 +99,7 @@ public class EvokerFangsController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -108,6 +110,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -128,6 +131,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -139,6 +143,7 @@ public class EvokerFangsController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 26dbb247d..5f5235735 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 @@ -54,6 +54,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ExperienceOrbNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class ExperienceOrbController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class ExperienceOrbController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class ExperienceOrbController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 6c0cfaefd..566fafec9 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 @@ -71,6 +71,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FallingBlockNPC(this)); } + return super.getBukkitEntity(); } @@ -101,6 +102,7 @@ public class FallingBlockController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -111,6 +113,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -120,6 +123,7 @@ public class FallingBlockController extends AbstractEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -144,9 +148,11 @@ public class FallingBlockController extends AbstractEntityController { setDeltaMovement(mot); move(MoverType.SELF, mot); } + } else { super.tick(); } + } @Override @@ -158,6 +164,7 @@ public class FallingBlockController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } 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 2d0a5447e..4eebab824 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 @@ -55,6 +55,7 @@ public class FireworkController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FireworkNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class FireworkController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class FireworkController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class FireworkController extends MobEntityController { } else { super.tick(); } + } @Override @@ -127,6 +131,7 @@ public class FireworkController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 4e65065cf..799be4eb5 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 @@ -72,6 +72,7 @@ public class FishingHookController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FishingHookNPC(this)); } + return super.getBukkitEntity(); } @@ -102,6 +103,7 @@ public class FishingHookController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +114,7 @@ public class FishingHookController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -138,6 +141,7 @@ public class FishingHookController extends MobEntityController { } else { super.tick(); } + } @Override @@ -149,6 +153,7 @@ public class FishingHookController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 cec58b4f6..d2fa9b1c3 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 @@ -65,6 +65,7 @@ public class GlowItemFrameController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GlowItemFrameNPC(this)); } + return super.getBukkitEntity(); } @@ -95,6 +96,7 @@ public class GlowItemFrameController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -105,6 +107,7 @@ public class GlowItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -131,6 +134,7 @@ public class GlowItemFrameController extends MobEntityController { } else { super.tick(); } + } @Override @@ -142,6 +146,7 @@ public class GlowItemFrameController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 431c64c16..592d3f07b 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 @@ -67,6 +67,7 @@ public class ItemController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemNPC(this)); } + return super.getBukkitEntity(); } @@ -96,6 +97,7 @@ public class ItemController extends AbstractEntityController { if (npc == null) { super.playerTouch(entityhuman); } + } @Override @@ -104,6 +106,7 @@ public class ItemController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -114,6 +117,7 @@ public class ItemController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -135,6 +139,7 @@ public class ItemController extends AbstractEntityController { } else { super.tick(); } + } @Override @@ -146,6 +151,7 @@ public class ItemController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 ac1aa9a11..648325819 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 @@ -64,6 +64,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemFrameNPC(this)); } + return super.getBukkitEntity(); } @@ -94,6 +95,7 @@ public class ItemFrameController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -104,6 +106,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +133,7 @@ public class ItemFrameController extends MobEntityController { } else { super.tick(); } + } @Override @@ -141,6 +145,7 @@ public class ItemFrameController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 707230948..db037e4e7 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 @@ -54,6 +54,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LargeFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class LargeFireballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +106,7 @@ public class LargeFireballController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -124,9 +128,11 @@ public class LargeFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -138,6 +144,7 @@ public class LargeFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 14f9f8be5..f6467f2d7 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 @@ -55,6 +55,7 @@ public class LeashController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LeashNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class LeashController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class LeashController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,6 +124,7 @@ public class LeashController extends MobEntityController { } else { super.tick(); } + } @Override @@ -132,6 +136,7 @@ public class LeashController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 f8819cf6f..909c3fa5e 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 @@ -71,6 +71,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LlamaSpitNPC(this)); } + return super.getBukkitEntity(); } @@ -101,6 +102,7 @@ public class LlamaSpitController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -111,6 +113,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -132,9 +135,11 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -146,6 +151,7 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 a525a7522..95e6ce8ec 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 @@ -54,6 +54,7 @@ public class MarkerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MarkerNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class MarkerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class MarkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class MarkerController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class MarkerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 53ad8d552..a9b7023ab 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 @@ -55,6 +55,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartChestNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class MinecartChestController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class MinecartChestController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -127,6 +131,7 @@ public class MinecartChestController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 279d36621..be100810c 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 @@ -55,6 +55,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartCommandNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class MinecartCommandController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class MinecartCommandController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -127,6 +131,7 @@ public class MinecartCommandController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 94c35981c..e08a11919 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 @@ -55,6 +55,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartFurnaceNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class MinecartFurnaceController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class MinecartFurnaceController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -127,6 +131,7 @@ public class MinecartFurnaceController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 18a1bbe9b..0b63be545 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 @@ -72,6 +72,7 @@ public class MinecartHopperController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +83,7 @@ public class MinecartHopperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class MinecartHopperController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -114,6 +117,7 @@ public class MinecartHopperController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 43397f770..c943eb960 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 @@ -54,6 +54,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartRideableNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class MinecartRideableController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class MinecartRideableController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -126,6 +130,7 @@ public class MinecartRideableController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 2a21de005..af0db9d2a 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 @@ -72,6 +72,7 @@ public class MinecartSpawnerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +83,7 @@ public class MinecartSpawnerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class MinecartSpawnerController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -114,6 +117,7 @@ public class MinecartSpawnerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 c9d0bbb87..bf4c9b357 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 @@ -72,6 +72,7 @@ public class MinecartTNTController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +83,7 @@ public class MinecartTNTController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class MinecartTNTController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -114,6 +117,7 @@ public class MinecartTNTController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 8c47604c9..660c6f46a 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 @@ -54,6 +54,7 @@ public class PaintingController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PaintingNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class PaintingController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class PaintingController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -120,6 +123,7 @@ public class PaintingController extends MobEntityController { } else { super.tick(); } + } @Override @@ -131,6 +135,7 @@ public class PaintingController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 a13632b32..0ebaeea90 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 @@ -54,6 +54,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ShulkerBulletNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class ShulkerBulletController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class ShulkerBulletController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class ShulkerBulletController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 e02612a34..aedb0b700 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 @@ -54,6 +54,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SmallFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class SmallFireballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,9 +118,11 @@ public class SmallFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -129,6 +134,7 @@ public class SmallFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 94dbf991c..fda9227aa 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 @@ -54,6 +54,7 @@ public class SnowballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnowballNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class SnowballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class SnowballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class SnowballController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class SnowballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 548518765..4ba364c20 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 @@ -55,6 +55,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SpectralArrowNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class SpectralArrowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class SpectralArrowController extends MobEntityController { } else { super.tick(); } + } @Override @@ -127,6 +131,7 @@ public class SpectralArrowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 4282e6cbd..aa6f69735 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 @@ -55,6 +55,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TNTPrimedNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class TNTPrimedController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class TNTPrimedController extends MobEntityController { } else { super.tick(); } + } @Override @@ -127,6 +131,7 @@ public class TNTPrimedController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 85fc578bd..3f6b8d804 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 @@ -55,6 +55,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ThrownExpBottleNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class ThrownExpBottleController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,9 +119,11 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -130,6 +135,7 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 5db3e9ab5..092d802a0 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 @@ -58,7 +58,9 @@ public class ThrownPotionController extends MobEntityController { } else { NMSImpl.setBukkitEntity(this, new SplashThrownPotionNPC(this)); } + } + return super.getBukkitEntity(); } @@ -89,6 +91,7 @@ public class ThrownPotionController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +102,7 @@ public class ThrownPotionController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -120,6 +124,7 @@ public class ThrownPotionController extends MobEntityController { } else { super.tick(); } + } @Override @@ -131,6 +136,7 @@ public class ThrownPotionController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 707af0e03..8b9ffad57 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 @@ -55,6 +55,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ThrownTridentNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class ThrownTridentController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class ThrownTridentController extends MobEntityController { } else { super.tick(); } + } @Override @@ -127,6 +131,7 @@ public class ThrownTridentController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 7bc999ec0..8b0741fb5 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 @@ -54,6 +54,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TippedArrowNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class TippedArrowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class TippedArrowController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class TippedArrowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } 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 85429cc91..bec9c7bd3 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 @@ -54,6 +54,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitherSkullNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class WitherSkullController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class WitherSkullController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class WitherSkullController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/CitizensBlockBreaker.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/CitizensBlockBreaker.java index 39efcf30d..48755edcc 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/CitizensBlockBreaker.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/CitizensBlockBreaker.java @@ -47,6 +47,7 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { ItemStack current = getCurrentItem(); return current != null ? current.isCorrectToolForDrops(block) : false; } + } @Override @@ -65,10 +66,13 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { if (i > 0) { f += i * i + 1; } + } + if (MobEffectUtil.hasDigSpeed(handle)) { f *= 1.0F + (MobEffectUtil.getDigSpeedAmplification(handle) + 1) * 0.2F; } + if (handle.hasEffect(MobEffects.DIG_SLOWDOWN)) { float f1 = 1.0F; switch (handle.getEffect(MobEffects.DIG_SLOWDOWN).getAmplifier()) { @@ -85,15 +89,20 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { default: f1 = 8.1E-4F; } + f *= f1; } + if (handle.isEyeInFluid(FluidTags.WATER) && !EnchantmentHelper.hasAquaAffinity(handle)) { f /= 5.0F; } + } + if (!entity.isOnGround()) { f /= 5.0F; } + return f; } } \ No newline at end of file diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EmptyAdvancementDataPlayer.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EmptyAdvancementDataPlayer.java index cff3d03ad..246cfd929 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EmptyAdvancementDataPlayer.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EmptyAdvancementDataPlayer.java @@ -68,6 +68,7 @@ public class EmptyAdvancementDataPlayer extends PlayerAdvancements { } catch (Throwable e) { e.printStackTrace(); } + } private static final MethodHandle I = NMS.getGetter(PlayerAdvancements.class, "i"); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityMoveControl.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityMoveControl.java index d8a356a39..6542b79f4 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityMoveControl.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityMoveControl.java @@ -64,15 +64,18 @@ public class EntityMoveControl extends MoveControl { if (f3 > f2) { f3 = f2; } + if (f3 < -f2) { f3 = -f2; } + float f4 = f + f3; if (f4 < 0.0F) { f4 += 360.0F; } else if (f4 > 360.0F) { f4 -= 360.0F; } + return f4; } @@ -102,6 +105,7 @@ public class EntityMoveControl extends MoveControl { this.entity.setYRot(rotlerp(this.entity.getYRot(), f, 90.0F)); NMS.setHeadYaw(entity.getBukkitEntity(), this.entity.getYRot()); } + float movement = (float) (this.speedMod * this.entity.getAttribute(Attributes.MOVEMENT_SPEED).getValue()); this.entity.setSpeed(movement); this.entity.zza = movement; @@ -110,13 +114,17 @@ public class EntityMoveControl extends MoveControl { if (((Slime) entity).isAggressive()) { this.jumpTicks /= 3; } + ((Slime) entity).getJumpControl().jump(); } else if (dY >= NMS.getStepHeight(entity.getBukkitEntity()) && dXZ < 0.4D) { if (entity instanceof Mob) { ((Mob) entity).getJumpControl().jump(); } + entity.setJumping(true); } + } + } } \ No newline at end of file diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityNavigation.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityNavigation.java index 2fce92943..790ca946f 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityNavigation.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityNavigation.java @@ -156,7 +156,7 @@ public class EntityNavigation 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; @@ -191,21 +191,26 @@ public class EntityNavigation extends PathNavigation { while (var2.getY() > this.level.getMinBuildHeight() && this.level.getBlockState(var2).isAir()) { var2 = var2.below(); } + if (var2.getY() > this.level.getMinBuildHeight()) return supercreatePath(var2.above(), var1); while (var2.getY() < this.level.getMaxBuildHeight() && this.level.getBlockState(var2).isAir()) { var2 = var2.above(); } + var0 = var2; } + if (this.level.getBlockState(var0).getMaterial().isSolid()) { BlockPos var2 = var0.above(); while (var2.getY() < this.level.getMaxBuildHeight() && this.level.getBlockState(var2).getMaterial().isSolid()) { var2 = var2.above(); } + return supercreatePath(var2, var1); } + return supercreatePath(var0, var1); } @@ -247,6 +252,7 @@ public class EntityNavigation extends PathNavigation { this.reachRange = var3; resetStuckTimeout(); } + return var8; } @@ -269,9 +275,11 @@ public class EntityNavigation extends PathNavigation { } else { this.isStuck = false; } + this.lastStuckCheck = this.tick; this.lastStuckCheckPos = var0; } + if (this.path != null && !this.path.isDone()) { BlockPos blockPos = this.path.getNextNodePos(); if (blockPos.equals(this.timeoutCachedNode)) { @@ -281,11 +289,14 @@ public class EntityNavigation extends PathNavigation { double var2 = var0.distanceTo(Vec3.atBottomCenterOf(this.timeoutCachedNode)); this.timeoutLimit = this.mob.getSpeed() > 0.0F ? var2 / this.mob.getSpeed() * 1000.0D : 0.0D; } + if (this.timeoutLimit > 0.0D && this.timeoutTimer > this.timeoutLimit * 3.0D) { timeoutPath(); } + this.lastTimeoutCheck = System.currentTimeMillis(); } + } @Override @@ -301,6 +312,7 @@ public class EntityNavigation extends PathNavigation { if (var8 || canCutCorner(this.path.getNextNode().type) && shouldTargetNextNodeInDirection(var0)) { this.path.advance(); } + doStuckDetection(var0); } @@ -335,6 +347,7 @@ public class EntityNavigation extends PathNavigation { if (++var2 > 16) return this.mob.getBlockY(); } + return var0; } @@ -397,9 +410,11 @@ public class EntityNavigation extends PathNavigation { this.path = null; return false; } + if (!var0.sameAs(this.path)) { this.path = var0; } + if (isDone()) return false; trimPath(); @@ -421,9 +436,11 @@ public class EntityNavigation extends PathNavigation { this.timeLastRecompute = this.level.getGameTime(); this.hasDelayedRecomputation = false; } + } else { this.hasDelayedRecomputation = true; } + } @Override @@ -471,7 +488,8 @@ public class EntityNavigation extends PathNavigation { @Override public boolean shouldRecomputePath(BlockPos var0) { - if (this.hasDelayedRecomputation || ((this.path == null) || this.path.isDone() || (this.path.getNodeCount() == 0))) + if (this.hasDelayedRecomputation + || ((this.path == null) || this.path.isDone() || (this.path.getNodeCount() == 0))) return false; else { Node var1 = this.path.getEndNode(); @@ -479,6 +497,7 @@ public class EntityNavigation extends PathNavigation { (var1.z + this.mob.getZ()) / 2.0D); return var0.closerToCenterThan(var2, this.path.getNodeCount() - this.path.getNextNodeIndex()); } + } private boolean shouldTargetNextNodeInDirection(Vec3 var0) { @@ -514,8 +533,11 @@ public class EntityNavigation extends PathNavigation { if (var2 != null && var1.y >= var2.y) { this.path.replaceNode(var0 + 1, var1.cloneAndMove(var2.x, var1.y + 1, var2.z)); } + } + } + } @Override @@ -524,6 +546,7 @@ public class EntityNavigation extends PathNavigation { if (this.hasDelayedRecomputation) { recomputePath(); } + if (isDone()) return; if (canUpdatePath()) { @@ -535,7 +558,9 @@ public class EntityNavigation extends PathNavigation { && Mth.floor(vec31.z) == Mth.floor(vec32.z)) { this.path.advance(); } + } + if (isDone()) return; Vec3 var0 = this.path.getNextEntityPos(this.mob); @@ -561,8 +586,11 @@ public class EntityNavigation extends PathNavigation { this.path.truncateNodes(var0); return; } + } + } + } private static Mob getDummyInsentient(EntityHumanNPC from, Level world) { diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityNodeEvaluator.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityNodeEvaluator.java index 964362ba3..3096a420c 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityNodeEvaluator.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityNodeEvaluator.java @@ -48,6 +48,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (hasCollisions(var2)) return false; } + return true; } @@ -64,18 +65,22 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var4 == BlockPathTypes.DOOR_WOOD_CLOSED && var1 && var2) { var4 = BlockPathTypes.WALKABLE_DOOR; } + if (var4 == BlockPathTypes.DOOR_OPEN && !var2) { var4 = BlockPathTypes.BLOCKED; } + if (var4 == BlockPathTypes.RAIL && !(var0.getBlockState(var3).getBlock() instanceof net.minecraft.world.level.block.BaseRailBlock) && !(var0.getBlockState(var3.below()) .getBlock() instanceof net.minecraft.world.level.block.BaseRailBlock)) { var4 = BlockPathTypes.UNPASSABLE_RAIL; } + if (var4 == BlockPathTypes.LEAVES) { var4 = BlockPathTypes.BLOCKED; } + return var4; } @@ -94,9 +99,11 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var8.type = var12; var8.costMalus = Math.max(var8.costMalus, var13); } + if (var7 == BlockPathTypes.FENCE && var8 != null && var8.costMalus >= 0.0F && !canReachWithoutCollision(var8)) { var8 = null; } + if (var12 == BlockPathTypes.WALKABLE || isAmphibious() && var12 == BlockPathTypes.WATER) return var8; if ((var8 == null || var8.costMalus < 0.0F) && var3 > 0 && var12 != BlockPathTypes.FENCE @@ -115,8 +122,11 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (hasCollisions(var20)) { var8 = null; } + } + } + if (!isAmphibious() && var12 == BlockPathTypes.WATER && !canFloat()) { if (getCachedBlockType(this.mob, var0, var1 - 1, var2) != BlockPathTypes.WATER) return var8; @@ -129,9 +139,12 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var8.costMalus = Math.max(var8.costMalus, this.mvmt.getPathfindingMalus(var12)); continue; } + return var8; } + } + if (var12 == BlockPathTypes.OPEN) { int var16 = 0; int var17 = var1; @@ -143,12 +156,14 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var18.costMalus = -1.0F; return var18; } + if (var16++ >= this.mob.getMaxFallDistance()) { Node var18 = getNode(var0, var1, var2); var18.type = BlockPathTypes.BLOCKED; var18.costMalus = -1.0F; return var18; } + var12 = getCachedBlockType(this.mob, var0, var1, var2); var13 = this.mvmt.getPathfindingMalus(var12); if (var12 != BlockPathTypes.OPEN && var13 >= 0.0F) { @@ -157,20 +172,25 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var8.costMalus = Math.max(var8.costMalus, var13); break; } + if (var13 < 0.0F) { Node var18 = getNode(var0, var1, var2); var18.type = BlockPathTypes.BLOCKED; var18.costMalus = -1.0F; return var18; } + } + } + if (var12 == BlockPathTypes.FENCE) { var8 = getNode(var0, var1, var2); var8.closed = true; var8.type = var12; var8.costMalus = var12.getMalus(); } + return var8; } @@ -196,7 +216,9 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (mvmt.getPathfindingMalus(var15) >= mvmt.getPathfindingMalus(var13)) { var13 = var15; } + } + if (var11 == BlockPathTypes.OPEN && mvmt.getPathfindingMalus(var13) == 0.0F && var5 <= 1) return BlockPathTypes.OPEN; return var13; @@ -220,7 +242,9 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var4.getPathfindingMalus(var15) >= var4.getPathfindingMalus(var13)) { var13 = var15; } + } + if (var11 == BlockPathTypes.OPEN && var4.getPathfindingMalus(var13) == 0.0F && var5 <= 1) return BlockPathTypes.OPEN; return var13; @@ -247,7 +271,9 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (mvmt.getPathfindingMalus(var15) >= mvmt.getPathfindingMalus(var13)) { var13 = var15; } + } + if (var11 == BlockPathTypes.OPEN && mvmt.getPathfindingMalus(var13) == 0.0F && var5 <= 1) return BlockPathTypes.OPEN; return var13; @@ -266,10 +292,14 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var12 == 0 && var13 == 0 && var14 == 0) { var10 = var18; } + var9.add(var18); } + } + } + return var10; } @@ -303,39 +333,48 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (this.mvmt.getPathfindingMalus(var4) >= 0.0F && var5 != BlockPathTypes.STICKY_HONEY) { var3 = Mth.floor(Math.max(1.0F, this.mob.maxUpStep)); } + double var6 = getFloorLevel(new BlockPos(var1.x, var1.y, var1.z)); Node var8 = findAcceptedNode(var1.x, var1.y, var1.z + 1, var3, var6, Direction.SOUTH, var5); if (isNeighborValid(var8, var1)) { var0[var2++] = var8; } + Node var9 = findAcceptedNode(var1.x - 1, var1.y, var1.z, var3, var6, Direction.WEST, var5); if (isNeighborValid(var9, var1)) { var0[var2++] = var9; } + Node var10 = findAcceptedNode(var1.x + 1, var1.y, var1.z, var3, var6, Direction.EAST, var5); if (isNeighborValid(var10, var1)) { var0[var2++] = var10; } + Node var11 = findAcceptedNode(var1.x, var1.y, var1.z - 1, var3, var6, Direction.NORTH, var5); if (isNeighborValid(var11, var1)) { var0[var2++] = var11; } + Node var12 = findAcceptedNode(var1.x - 1, var1.y, var1.z - 1, var3, var6, Direction.NORTH, var5); if (isDiagonalValid(var1, var9, var11, var12)) { var0[var2++] = var12; } + Node var13 = findAcceptedNode(var1.x + 1, var1.y, var1.z - 1, var3, var6, Direction.NORTH, var5); if (isDiagonalValid(var1, var10, var11, var13)) { var0[var2++] = var13; } + Node var14 = findAcceptedNode(var1.x - 1, var1.y, var1.z + 1, var3, var6, Direction.SOUTH, var5); if (isDiagonalValid(var1, var9, var8, var14)) { var0[var2++] = var14; } + Node var15 = findAcceptedNode(var1.x + 1, var1.y, var1.z + 1, var3, var6, Direction.SOUTH, var5); if (isDiagonalValid(var1, var10, var8, var15)) { var0[var2++] = var15; } + return var2; } @@ -349,12 +388,14 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var0++; var2 = this.level.getBlockState(var1.set(this.mob.getX(), var0, this.mob.getZ())); } + var0--; } else if (canFloat() && this.mob.isInWater()) { while (var2.is(Blocks.WATER) || var2.getFluidState() == Fluids.WATER.getSource(false)) { var0++; var2 = this.level.getBlockState(var1.set(this.mob.getX(), var0, this.mob.getZ())); } + var0--; } else if (this.mob.isOnGround()) { var0 = Mth.floor(this.mob.getY() + 0.5D); @@ -365,8 +406,10 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { && blockPos.getY() > this.mob.level.getMinBuildHeight()) { blockPos = blockPos.below(); } + var0 = blockPos.above().getY(); } + BlockPos var3 = this.mob.blockPosition(); BlockPathTypes var4 = getCachedBlockType(this.mob, var3.getX(), var0, var3.getZ()); if (this.mvmt.getPathfindingMalus(var4) < 0.0F) { @@ -380,7 +423,9 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var6.costMalus = this.mvmt.getPathfindingMalus(var6.type); return var6; } + } + Node var5 = getNode(var3.getX(), var0, var3.getZ()); var5.type = getBlockPathType(this.mob, var5.asBlockPos()); var5.costMalus = this.mvmt.getPathfindingMalus(var5.type); @@ -444,9 +489,13 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var0.getFluidState(var1).is(FluidTags.WATER)) return BlockPathTypes.WATER_BORDER; } + } + } + } + return var2; } @@ -506,19 +555,25 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var6 == BlockPathTypes.DAMAGE_FIRE) { var5 = BlockPathTypes.DAMAGE_FIRE; } + if (var6 == BlockPathTypes.DAMAGE_CACTUS) { var5 = BlockPathTypes.DAMAGE_CACTUS; } + if (var6 == BlockPathTypes.DAMAGE_OTHER) { var5 = BlockPathTypes.DAMAGE_OTHER; } + if (var6 == BlockPathTypes.STICKY_HONEY) { var5 = BlockPathTypes.STICKY_HONEY; } + } + if (var5 == BlockPathTypes.WALKABLE) { var5 = checkNeighbourBlocks(var0, var1.set(var2, var3, var4), var5); } + return var5; } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityPathfinder.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityPathfinder.java index f3eb89071..d571171ff 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityPathfinder.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/EntityPathfinder.java @@ -90,13 +90,17 @@ public class EntityPathfinder extends PathFinder { target.setReached(); var9.add(target); } + } + if (!var9.isEmpty()) { break; } + if (node.distanceTo(var1) >= var3) { continue; } + int i = this.nodeEvaluator.getNeighbors(this.neighbors, node); for (int var13 = 0; var13 < i; var13++) { Node var14 = this.neighbors[var13]; @@ -113,9 +117,13 @@ public class EntityPathfinder extends PathFinder { var14.f = var14.g + var14.h; this.openSet.insert(var14); } + } + } + } + Optional var11 = !var9.isEmpty() ? var9.stream().map(p -> reconstructPath(p.getBestNode(), var2.get(p), true)).min( Comparator.comparingInt(Path::getNodeCount)) @@ -134,13 +142,15 @@ public class EntityPathfinder extends PathFinder { var4.updateBest(var5, var0); var2 = Math.min(var5, var2); } + return var2; } public Stream getFallbackDestinations(Map var1, Set var5) { if (Setting.DISABLE_MC_NAVIGATION_FALLBACK.asBoolean()) return Stream.empty(); - return var5.stream().map(var1x -> this.reconstructPath(var1x.getBestNode(), var1.get(var1x), false)).sorted(Comparator.comparingDouble(Path::getDistToTarget).thenComparingInt(Path::getNodeCount)); + return var5.stream().map(var1x -> this.reconstructPath(var1x.getBestNode(), var1.get(var1x), false)) + .sorted(Comparator.comparingDouble(Path::getDistToTarget).thenComparingInt(Path::getNodeCount)); } private Path reconstructPath(Node var0, BlockPos var1, boolean var2) { @@ -151,6 +161,7 @@ public class EntityPathfinder extends PathFinder { var4 = var4.cameFrom; var3.add(0, var4); } + return new Path(var3, var1, var2); } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/ForwardingNPCHolder.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/ForwardingNPCHolder.java index 097ad1c10..6fb1de5f3 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/ForwardingNPCHolder.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/ForwardingNPCHolder.java @@ -17,6 +17,7 @@ public interface ForwardingNPCHolder extends NPCHolder, Entity { () -> Joiner.on(' ').join("ForwardingNPCHolder with an improper bukkit entity", this, handle)); return null; } + return ((NPCHolder) handle).getNPC(); } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/MobAI.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/MobAI.java index 2a4f7fb32..271c1a84e 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/MobAI.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/MobAI.java @@ -41,6 +41,7 @@ public interface MobAI { if (!nav.isDone()) { nav.tick(); } + } default void updatePathfindingRange(float range) { @@ -170,6 +171,7 @@ public interface MobAI { }; } else if (handle instanceof MobAI) return (MobAI) handle; + return null; } } 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 120530e77..9547b8a24 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 @@ -353,17 +353,21 @@ public class NMSImpl implements NMSBridge { viewDistance = (int) PLAYER_CHUNK_MAP_VIEW_DISTANCE_GETTER.invoke(chunkMap); PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER.invoke(chunkMap, -1); } + } catch (Throwable e) { e.printStackTrace(); } + boolean success = getHandle(entity).level.addFreshEntity(getHandle(entity), custom); try { if (chunkMap != null) { PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER.invoke(chunkMap, viewDistance); } + } catch (Throwable e) { e.printStackTrace(); } + return success; } @@ -379,12 +383,14 @@ public class NMSImpl implements NMSBridge { } else if (!handle.level.players().contains(handle)) { ((List) handle.level.players()).add(handle); } + try { CHUNKMAP_UPDATE_PLAYER_STATUS.invoke(((ServerLevel) handle.level).getChunkSource().chunkMap, handle, !remove); } catch (Throwable e) { e.printStackTrace(); } + // PlayerUpdateTask.addOrRemove(entity, remove); } @@ -397,10 +403,12 @@ public class NMSImpl implements NMSBridge { PlayerAnimation.ARM_SWING.play((Player) source.getBukkitEntity()); return; } + if (source instanceof Mob) { ((Mob) source).doHurtTarget(target); return; } + float f = (float) (source.getAttributes().hasAttribute(Attributes.ATTACK_DAMAGE) ? source.getAttributeValue(Attributes.ATTACK_DAMAGE) : 1f); @@ -415,10 +423,12 @@ public class NMSImpl implements NMSBridge { Math.cos(source.getYRot() * Math.PI / 180.0F) * i * 0.5F); source.setDeltaMovement(source.getDeltaMovement().multiply(0.6, 1, 0.6)); } + int fireAspectLevel = EnchantmentHelper.getFireAspect(source); if (fireAspectLevel > 0) { target.setSecondsOnFire(fireAspectLevel * 4, false); } + if (target instanceof ServerPlayer) { ServerPlayer entityhuman = (ServerPlayer) target; ItemStack itemstack = source.getMainHandItem(); @@ -430,8 +440,11 @@ public class NMSImpl implements NMSBridge { entityhuman.getCooldowns().addCooldown(Items.SHIELD, 100); source.level.broadcastEntityEvent(entityhuman, (byte) 30); } + } + } + EnchantmentHelper.doPostHurtEffects(source, target); EnchantmentHelper.doPostDamageEffects(target, source); } @@ -450,7 +463,9 @@ public class NMSImpl implements NMSBridge { } catch (Throwable t) { t.printStackTrace(); } + } + } @Override @@ -481,16 +496,21 @@ public class NMSImpl implements NMSBridge { if (!changed && !ItemStack.matches(old, curr)) { changed = true; } + equipment.put(slot, curr); } + if (changed) { List> vals = Lists.newArrayList(); for (EquipmentSlot slot : EquipmentSlot.values()) { vals.add(com.mojang.datafixers.util.Pair.of(slot, equipment.get(slot))); } + agg.send(new ClientboundSetEquipmentPacket(handle.getId(), vals)); } + } + tracker.sendChanges(); } @@ -511,7 +531,9 @@ public class NMSImpl implements NMSBridge { if (callback != null) { callback.accept(entity); } + } + linked.clear(); } }; @@ -560,10 +582,13 @@ public class NMSImpl implements NMSBridge { if (df != null) { bserver = df.dragonEvent; } + } + } catch (Throwable e) { e.printStackTrace(); } + if (bserver == null) return null; BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10); @@ -572,6 +597,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return ret; } @@ -682,12 +708,14 @@ public class NMSImpl implements NMSBridge { if (SKULL_META_PROFILE == null) return null; } + try { return (GameProfile) SKULL_META_PROFILE.invoke(meta); } catch (Throwable t) { t.printStackTrace(); return null; } + } @Override @@ -700,6 +728,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { throw new CommandException(Messages.INVALID_SOUND); } + } @Override @@ -715,6 +744,7 @@ public class NMSImpl implements NMSBridge { LivingEntity handle = NMSImpl.getHandle((org.bukkit.entity.LivingEntity) npc.getEntity()); if (handle == null) { } + return DEFAULT_SPEED; // return (float) // handle.getAttribute(Attributes.d).getValue(); @@ -758,7 +788,9 @@ public class NMSImpl implements NMSBridge { } else { ((Mob) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater + 1F); } + } + navigation.getNodeEvaluator().setCanOpenDoors(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; @@ -770,6 +802,7 @@ public class NMSImpl implements NMSBridge { Node pp = path.getNode(i); blocks.add(entity.getWorld().getBlockAt(pp.x, pp.y, pp.z)); } + return blocks; } @@ -790,13 +823,16 @@ public class NMSImpl implements NMSBridge { List blocks = getBlocks(entity, path); Util.sendBlockChanges(blocks, null); } + if (oldWater >= 0) { if (raw instanceof MobAI) { ((MobAI) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater); } else { ((Mob) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater); } + } + navigation.stop(); } @@ -811,12 +847,15 @@ public class NMSImpl implements NMSBridge { SIZE_FIELD_SETTER.invoke(handle, new EntityDimensions(Math.min(0.99F, size.width), size.height, false)); } + } catch (Throwable e) { e.printStackTrace(); } + if (!function.apply(navigation)) { reason = CancelReason.STUCK; } + try { SIZE_FIELD_SETTER.invoke(handle, size); } catch (Throwable e) { @@ -824,11 +863,14 @@ public class NMSImpl implements NMSBridge { // minecraft requires that an entity fit onto both blocks if width >= 1f, but we'd prefer to // make it just fit on 1 so hack around it a bit. } + lastSpeed = params.speed(); } + if (params.debug() && !navigation.isDone()) { Util.sendBlockChanges(getBlocks(entity, getPathEntity(navigation)), Material.DANDELION); } + navigation.setSpeedModifier(params.speed()); return navigation.isDone(); } @@ -1055,30 +1097,37 @@ public class NMSImpl implements NMSBridge { if (zDiff < 0.0) { yaw += Math.abs(180 - yaw) * 2; } + if (handle.getBukkitEntity().getType() == EntityType.ENDER_DRAGON) { yaw = Util.getDragonYaw(handle.getBukkitEntity(), xDiff, zDiff); } else { yaw = yaw - 90; } + if (headOnly) { setHeadYaw(entity, (float) yaw); } else { look(entity, (float) yaw, (float) pitch); } + return; } + if (handle instanceof Mob) { ((Mob) handle).getLookControl().setLookAt(to.getX(), to.getY(), to.getZ(), ((Mob) handle).getHeadRotSpeed(), ((Mob) handle).getMaxHeadXRot()); while (((LivingEntity) handle).yHeadRot >= 180F) { ((LivingEntity) handle).yHeadRot -= 360F; } + while (((LivingEntity) handle).yHeadRot < -180F) { ((LivingEntity) handle).yHeadRot += 360F; } + } else if (handle instanceof NPCHolder) { ((NPCHolder) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1091,18 +1140,22 @@ public class NMSImpl implements NMSBridge { } else { look(from, to.getLocation(), false, true); } + } else if (handle instanceof Mob) { ((Mob) handle).getLookControl().setLookAt(target, ((Mob) handle).getHeadRotSpeed(), ((Mob) handle).getMaxHeadXRot()); while (((LivingEntity) handle).yHeadRot >= 180F) { ((LivingEntity) handle).yHeadRot -= 360F; } + while (((LivingEntity) handle).yHeadRot < -180F) { ((LivingEntity) handle).yHeadRot += 360F; } + } else if (handle instanceof NPCHolder) { ((NPCHolder) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1137,6 +1190,7 @@ public class NMSImpl implements NMSBridge { this, anvil), this); } + return this.bukkitEntity; } }; @@ -1183,11 +1237,13 @@ public class NMSImpl implements NMSBridge { if (key == null || type == null) { continue; } + CITIZENS_ENTITY_TYPES.put(clazz, type); int code = ENTITY_REGISTRY.getId(type); ENTITY_REGISTRY.put(code, key, type); return; } + throw new IllegalArgumentException("unable to find valid entity superclass for class " + clazz.toString()); } @@ -1225,6 +1281,7 @@ public class NMSImpl implements NMSBridge { hook.hookedIn = null; hook.getBukkitEntity().remove(); } + } @Override @@ -1239,6 +1296,7 @@ public class NMSImpl implements NMSBridge { if (getHandle(entity) instanceof EntityHumanNPC) { ((EntityHumanNPC) getHandle(entity)).setTracked(replace); } + } @Override @@ -1248,9 +1306,11 @@ public class NMSImpl implements NMSBridge { if (bodyYaw == null) { bodyYaw = handle.getYRot(); } + if (pitch == null) { pitch = handle.getXRot(); } + List> toSend = Lists.newArrayList(); if (position) { TrackedEntity entry = ((ServerLevel) handle.level).getChunkSource().chunkMap.entityMap.get(handle.getId()); @@ -1261,6 +1321,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + Vec3 pos = handle.position().subtract(se.sentPos()); toSend.add( new ClientboundMoveEntityPacket.PosRot(handle.getId(), (short) pos.x, (short) pos.y, (short) pos.z, @@ -1269,9 +1330,11 @@ public class NMSImpl implements NMSBridge { toSend.add(new ClientboundMoveEntityPacket.Rot(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); } + if (headYaw != null) { toSend.add(new ClientboundRotateHeadPacket(handle, (byte) (headYaw * 256.0F / 360.0F))); } + sendPacketsNearby(null, from.getLocation(), toSend, 64); } @@ -1295,6 +1358,7 @@ public class NMSImpl implements NMSBridge { entities[i] = (ServerPlayer) skinnable; i++; } + NMSImpl.sendPacket(recipient, new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.REMOVE_PLAYER, entities)); } @@ -1315,6 +1379,7 @@ public class NMSImpl implements NMSBridge { if (TEAM_FIELD == null) { TEAM_FIELD = NMS.getGetter(team.getClass(), "team"); } + try { PlayerTeam nmsTeam = (PlayerTeam) TEAM_FIELD.invoke(team); if (mode == 1) { @@ -1323,9 +1388,11 @@ public class NMSImpl implements NMSBridge { sendPacket(recipient, ClientboundSetPlayerTeamPacket.createAddOrModifyPacket(nmsTeam, mode == 0 ? true : false)); } + } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1361,6 +1428,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof MobAI) { ((MobAI) handle).getMoveControl().setWantedPosition(x, y, z, speed); } + } @Override @@ -1385,6 +1453,7 @@ public class NMSImpl implements NMSBridge { if (!(handle instanceof net.minecraft.world.entity.player.Player)) { handle.setYBodyRot(yaw); } + handle.setYHeadRot(yaw); } @@ -1430,9 +1499,11 @@ public class NMSImpl implements NMSBridge { FLYING_MOVECONTROL_FLOAT_SETTER.invoke(mob.getMoveControl(), npc.data().get("flying-nogravity-float")); npc.data().remove("flying-nogravity-float"); } + } catch (Throwable t) { t.printStackTrace(); } + } @Override @@ -1469,11 +1540,13 @@ public class NMSImpl implements NMSBridge { if (SET_PROFILE_METHOD == null) return; } + try { SET_PROFILE_METHOD.invoke(meta, profile); } catch (Throwable t) { t.printStackTrace(); } + } @Override @@ -1500,6 +1573,7 @@ public class NMSImpl implements NMSBridge { if (entity instanceof Player) { ((Player) entity).setSneaking(sneaking); } + Pose pose = sneaking ? Pose.CROUCHING : Pose.STANDING; getHandle(entity).setPose(pose); } @@ -1532,6 +1606,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return false; } @@ -1543,6 +1618,7 @@ public class NMSImpl implements NMSBridge { ENTITY_REGISTRY_SETTER.invoke(null, ENTITY_REGISTRY.get()); } catch (Throwable e) { } + } @Override @@ -1564,6 +1640,7 @@ public class NMSImpl implements NMSBridge { handle.setDeltaMovement(handle.getDeltaMovement().x, handle.getDeltaMovement().y + power, handle.getDeltaMovement().z); } + } @Override @@ -1655,6 +1732,7 @@ public class NMSImpl implements NMSBridge { menuType = MenuType.CRAFTING; break; } + handle.connection.send(new ClientboundOpenScreenPacket(handle.containerMenu.containerId, menuType, new TextComponent(newTitle))); player.updateInventory(); @@ -1676,6 +1754,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1687,6 +1766,7 @@ public class NMSImpl implements NMSBridge { ((MobAI) en).updatePathfindingRange(pathfindingRange); return; } + if (NAVIGATION_PATHFINDER == null) return; PathNavigation navigation = ((Mob) en).getNavigation(); @@ -1698,6 +1778,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } private static class CitizensInventoryAnvil extends CraftInventoryAnvil implements ForwardingInventory { @@ -1808,6 +1889,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + float oldw = size.width; float oldl = size.height; cb.accept(datawatcherobject); @@ -1815,6 +1897,7 @@ public class NMSImpl implements NMSBridge { living.setPos(living.getX() - 0.01, living.getY(), living.getZ() - 0.01); living.setPos(living.getX() + 0.01, living.getY(), living.getZ() + 0.01); } + } public static void clearGoals(NPC npc, GoalSelector... goalSelectors) { @@ -1827,14 +1910,17 @@ public class NMSImpl implements NMSBridge { if (!list.isEmpty()) { npc.data().set("selector" + i, Lists.newArrayList(list)); } + list.clear(); } catch (Exception e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } catch (Throwable e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } + i++; } + } private static CompoundTag convertNBT(net.minecraft.nbt.CompoundTag tag) { @@ -1844,6 +1930,7 @@ public class NMSImpl implements NMSBridge { for (String key : tag.getAllKeys()) { tags.put(key, convertNBT(key, tag.get(key))); } + return new CompoundTag("", tags); } @@ -1874,8 +1961,10 @@ public class NMSImpl implements NMSBridge { for (int i = 0; i < list.size(); i++) { converted.add(convertNBT("", list.get(i))); } + return new ListTag(key, tagType, converted); } + } else if (base instanceof net.minecraft.nbt.CompoundTag) return convertNBT((net.minecraft.nbt.CompoundTag) base); else if (base instanceof net.minecraft.nbt.EndTag) @@ -1891,6 +1980,7 @@ public class NMSImpl implements NMSBridge { d0 = 0.01D; entity.fallDistance = 0.0F; } + FluidState fluid = entity.level.getFluidState(entity.blockPosition()); if (entity.isInWater() && !entity.canStandOnFluid(fluid)) { double d1 = entity.getY(); @@ -1900,22 +1990,27 @@ public class NMSImpl implements NMSBridge { if (f2 > 3.0F) { f2 = 3.0F; } + if (!entity.isOnGround()) { f2 *= 0.5F; } + if (f2 > 0.0F) { f += (0.546F - f) * f2 / 3.0F; f1 += (entity.getSpeed() - f1) * f2 / 3.0F; } + if (entity.hasEffect(MobEffects.DOLPHINS_GRACE)) { f = 0.96F; } + entity.moveRelative(f1, vec3d); entity.move(MoverType.SELF, entity.getDeltaMovement()); Vec3 vec3d1 = entity.getDeltaMovement(); if (entity.horizontalCollision && entity.onClimbable()) { vec3d1 = new Vec3(vec3d1.x, 0.2D, vec3d1.z); } + entity.setDeltaMovement(vec3d1.multiply(f, 0.8D, f)); Vec3 vec3d2 = entity.getFluidFallingAdjustedMovement(d0, flag, entity.getDeltaMovement()); entity.setDeltaMovement(vec3d2); @@ -1923,6 +2018,7 @@ public class NMSImpl implements NMSBridge { && entity.isFree(vec3d2.x, vec3d2.y + 0.6D - entity.getY() + d1, vec3d2.z)) { entity.setDeltaMovement(vec3d2.x, 0.3D, vec3d2.z); } + } else if (entity.isInLava() && !entity.canStandOnFluid(fluid)) { double d1 = entity.getY(); entity.moveRelative(0.02F, vec3d); @@ -1934,19 +2030,23 @@ public class NMSImpl implements NMSBridge { } else { entity.setDeltaMovement(entity.getDeltaMovement().scale(0.5D)); } + if (!entity.isNoGravity()) { entity.setDeltaMovement(entity.getDeltaMovement().add(0.0D, -d0 / 4.0D, 0.0D)); } + Vec3 vec3d3 = entity.getDeltaMovement(); if (entity.horizontalCollision && entity.isFree(vec3d3.x, vec3d3.y + 0.6D - entity.getY() + d1, vec3d3.z)) { entity.setDeltaMovement(vec3d3.x, 0.3D, vec3d3.z); } + } else if (entity.isFallFlying()) { Vec3 vec3d4 = entity.getDeltaMovement(); if (vec3d4.y > -0.5D) { entity.fallDistance = 1.0F; } + Vec3 vec3d5 = entity.getLookAngle(); float f = entity.getXRot() * 0.017453292F; double d2 = Math.sqrt(vec3d5.x * vec3d5.x + vec3d5.z * vec3d5.z); @@ -1959,14 +2059,17 @@ public class NMSImpl implements NMSBridge { double d5 = vec3d4.y * -0.1D * f3; vec3d4 = vec3d4.add(vec3d5.x * d5 / d2, d5, vec3d5.z * d5 / d2); } + if (f < 0.0F && d2 > 0.0D) { double d5 = d3 * -Mth.sin(f) * 0.04D; vec3d4 = vec3d4.add(-vec3d5.x * d5 / d2, d5 * 3.2D, -vec3d5.z * d5 / d2); } + if (d2 > 0.0D) { vec3d4 = vec3d4.add((vec3d5.x / d2 * d3 - vec3d4.x) * 0.1D, 0.0D, (vec3d5.z / d2 * d3 - vec3d4.z) * 0.1D); } + entity.setDeltaMovement(vec3d4.multiply(0.99D, 0.98D, 0.99D)); entity.move(MoverType.SELF, entity.getDeltaMovement()); if (entity.horizontalCollision && !entity.level.isClientSide) { @@ -1979,13 +2082,17 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + entity.hurt(DamageSource.FLY_INTO_WALL, f4); } + } + if (entity.isOnGround() && !entity.level.isClientSide && entity.getSharedFlag(7) && !CraftEventFactory.callToggleGlideEvent(entity, false).isCancelled()) { entity.setSharedFlag(7, false); } + } else { BlockPos blockposition = new BlockPos(entity.getX(), entity.getBoundingBox().minY - 0.5D, entity.getZ()); @@ -2002,16 +2109,21 @@ public class NMSImpl implements NMSBridge { } else { d7 = 0.0D; } + } else if (!entity.isNoGravity()) { d7 -= d0; } + if (entity.shouldDiscardFriction()) { entity.setDeltaMovement(vec3d6.x, d7, vec3d6.z); } else { entity.setDeltaMovement(vec3d6.x * f, d7 * 0.98D, vec3d6.z * f); } + } + } + entity.calculateEntityAnimation(entity, entity instanceof net.minecraft.world.entity.animal.FlyingAnimal); } @@ -2021,6 +2133,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -2056,6 +2169,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return null; } + } public static EntityDataAccessor getRabbitTypeField() { @@ -2068,6 +2182,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -2101,6 +2216,7 @@ public class NMSImpl implements NMSBridge { if (mat != null) { minecart.setDisplayBlockState(Registry.BLOCK.byId(mat.getId()).defaultBlockState()); } + minecart.setDisplayOffset(offset); } @@ -2114,6 +2230,7 @@ public class NMSImpl implements NMSBridge { handle.setDeltaMovement(handle.getDeltaMovement().scale(0.9)); return true; } + return false; } @@ -2124,6 +2241,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void restoreGoals(NPC npc, GoalSelector... goalSelectors) { @@ -2138,13 +2256,16 @@ public class NMSImpl implements NMSBridge { if (old != null) { list.addAll(old); } + } catch (Exception e) { Messaging.logTr(Messages.ERROR_RESTORING_GOALS, e.getLocalizedMessage()); } catch (Throwable e) { Messaging.logTr(Messages.ERROR_RESTORING_GOALS, e.getLocalizedMessage()); } + i++; } + } public static void sendPacket(Player player, Packet packet) { @@ -2171,10 +2292,13 @@ public class NMSImpl implements NMSBridge { || location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) { continue; } + for (Packet packet : packets) { NMSImpl.sendPacket(player, packet); } + } + } public static void sendPacketsNearby(Player from, Location location, Packet... packets) { @@ -2187,6 +2311,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setAttribute(LivingEntity entity, Attribute attribute, double value) { @@ -2204,8 +2329,10 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + attr = entity.getAttribute(attribute); } + attr.setBaseValue(value); } @@ -2215,6 +2342,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setFallingBlockState(FallingBlockEntity handle, BlockState state) { @@ -2223,6 +2351,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setLife(FishingHook entity, int life) { @@ -2231,6 +2360,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setLookControl(Mob mob, LookControl control) { @@ -2239,6 +2369,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setNotInSchool(AbstractFish entity) { @@ -2246,9 +2377,11 @@ public class NMSImpl implements NMSBridge { if (ENTITY_FISH_NUM_IN_SCHOOL != null) { ENTITY_FISH_NUM_IN_SCHOOL.invoke(entity, 2); } + } catch (Throwable ex) { ex.printStackTrace(); } + } public static void setSize(Entity entity, boolean justCreated) { @@ -2271,10 +2404,13 @@ public class NMSImpl implements NMSBridge { float f = entitysize.width - entitysize1.width; entity.move(MoverType.SELF, new Vec3(f, 0.0D, f)); } + } + } catch (Throwable e) { e.printStackTrace(); } + } public static void setSize(Entity entity, EntityDimensions size) { @@ -2285,6 +2421,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static Entity teleportAcrossWorld(Entity entity, ServerLevel worldserver, BlockPos location) { @@ -2299,6 +2436,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + if (npc == null || sds == null) return null; npc.despawn(DespawnReason.PENDING_RESPAWN); @@ -2311,6 +2449,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return handle; } @@ -2325,6 +2464,7 @@ public class NMSImpl implements NMSBridge { } else if (entity instanceof MobAI) { ((MobAI) entity).tickAI(); } + } public static void updateMinecraftAIState(NPC npc, Mob entity) { @@ -2337,6 +2477,7 @@ public class NMSImpl implements NMSBridge { getBehaviorMap(entity).putAll(behavior); npc.data().remove("behavior-map"); } + } else { NMSImpl.clearGoals(npc, entity.goalSelector, entity.targetSelector); TreeMap behaviorMap = getBehaviorMap(entity); @@ -2344,7 +2485,9 @@ public class NMSImpl implements NMSBridge { npc.data().set("behavior-map", new TreeMap(behaviorMap)); behaviorMap.clear(); } + } + } private static final MethodHandle ADVANCEMENTS_PLAYER_FIELD = NMS.getFinalSetter(ServerPlayer.class, "cr"); @@ -2425,6 +2568,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage()); } + try { ENDERMAN_CREEPY = (EntityDataAccessor) NMS.getField(EnderMan.class, "bX").get(null); } catch (IllegalArgumentException e) { @@ -2432,11 +2576,13 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + try { RABBIT_TYPE_DATAWATCHER = (EntityDataAccessor) NMS .getFirstStaticGetter(Rabbit.class, EntityDataAccessor.class).invoke(); } catch (Throwable e) { e.printStackTrace(); } + } } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PitchableLookControl.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PitchableLookControl.java index 8e1981a32..617ead56e 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PitchableLookControl.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PitchableLookControl.java @@ -18,6 +18,7 @@ public class PitchableLookControl extends LookControl { } else { resetOnTick = () -> true; } + } @Override diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerAnimationImpl.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerAnimationImpl.java index 5f1c1c2f7..3077e336f 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerAnimationImpl.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerAnimationImpl.java @@ -23,6 +23,7 @@ public class PlayerAnimationImpl { playDefaultAnimation(player, to, DEFAULTS.get(animation)); return; } + switch (animation) { case SNEAK: player.setPose(Pose.CROUCHING); @@ -57,6 +58,7 @@ public class PlayerAnimationImpl { default: throw new UnsupportedOperationException(); } + } protected static void playDefaultAnimation(ServerPlayer player, Iterable to, int code) { @@ -68,6 +70,7 @@ public class PlayerAnimationImpl { for (Player player : to) { NMSImpl.sendPacket(player, packet); } + } private static Map DEFAULTS = Maps.newEnumMap(PlayerAnimation.class); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerlistTracker.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerlistTracker.java index 97508e282..e9b39ab67 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerlistTracker.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerlistTracker.java @@ -36,6 +36,7 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { new NPCLinkToPlayerEvent(((NPCHolder) tracker).getNPC(), lastUpdatedPlayer.getBukkitEntity())); lastUpdatedPlayer = null; } + } @Override @@ -48,6 +49,7 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { if (REQUIRES_SYNC == null) { REQUIRES_SYNC = !Bukkit.isPrimaryThread(); } + boolean cancelled = Util.callPossiblySync(() -> { NPCSeenByPlayerEvent event = new NPCSeenByPlayerEvent(npc, entityplayer.getBukkitEntity()); try { @@ -56,6 +58,7 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { REQUIRES_SYNC = true; throw e; } + if (event.isCancelled()) return true; Integer trackingRange = npc.data(). get(NPC.Metadata.TRACKING_RANGE); @@ -67,7 +70,9 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + } + return false; }, REQUIRES_SYNC); @@ -85,6 +90,7 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return 0; } @@ -94,6 +100,7 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return false; } @@ -103,6 +110,7 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -112,6 +120,7 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return 0; } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AllayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AllayController.java index aa16ef127..3dfaf51ae 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AllayController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AllayController.java @@ -91,6 +91,7 @@ public class AllayController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -98,6 +99,7 @@ public class AllayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -107,6 +109,7 @@ public class AllayController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -119,6 +122,7 @@ public class AllayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new AllayNPC(this)); } + return super.getBukkitEntity(); } @@ -191,8 +195,10 @@ public class AllayController extends MobEntityController { taskId = -1; }, 2); } + return InteractionResult.FAIL; } + return super.mobInteract(var0, var1); } @@ -210,6 +216,7 @@ public class AllayController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -220,6 +227,7 @@ public class AllayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -241,6 +249,7 @@ public class AllayController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -252,6 +261,7 @@ public class AllayController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ArmorStandController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ArmorStandController.java index d4dd638d3..1b5d018bf 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ArmorStandController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ArmorStandController.java @@ -61,6 +61,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { ai = new BasicMobAI(this); } + } @Override @@ -73,6 +74,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ArmorStandNPC(this)); } + return super.getBukkitEntity(); } @@ -108,6 +110,7 @@ public class ArmorStandController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -118,6 +121,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -139,6 +143,7 @@ public class ArmorStandController extends MobEntityController { npc.update(); ai.tickAI(); } + } @Override @@ -150,6 +155,7 @@ public class ArmorStandController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AxolotlController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AxolotlController.java index 6fc3cbf69..c9676f4be 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AxolotlController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AxolotlController.java @@ -77,6 +77,7 @@ public class AxolotlController extends MobEntityController { this.getAttribute(Attributes.MOVEMENT_SPEED) .setBaseValue(this.getAttribute(Attributes.MOVEMENT_SPEED).getBaseValue() / 10); } + } @Override @@ -98,6 +99,7 @@ public class AxolotlController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -105,6 +107,7 @@ public class AxolotlController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -117,6 +120,7 @@ public class AxolotlController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new AxolotlNPC(this)); } + return super.getBukkitEntity(); } @@ -203,6 +207,7 @@ public class AxolotlController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -213,6 +218,7 @@ public class AxolotlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -235,11 +241,14 @@ public class AxolotlController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new MoveControl(this); } + npc.update(); } + } @Override @@ -248,9 +257,11 @@ public class AxolotlController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -262,6 +273,7 @@ public class AxolotlController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BatController.java index 3c95c12df..4dc8c9816 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BatController.java @@ -60,6 +60,7 @@ public class BatController extends MobEntityController { if (npc != null) { setResting(false); } + } @Override @@ -74,6 +75,7 @@ public class BatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -85,8 +87,10 @@ public class BatController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -99,6 +103,7 @@ public class BatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BatNPC(this)); } + return super.getBukkitEntity(); } @@ -160,6 +165,7 @@ public class BatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -170,6 +176,7 @@ public class BatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -193,6 +200,7 @@ public class BatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BeeController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BeeController.java index 4c9953e57..bdeed81c1 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BeeController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BeeController.java @@ -71,6 +71,7 @@ public class BeeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,8 +83,10 @@ public class BeeController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -96,6 +99,7 @@ public class BeeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BeeNPC(this)); } + return super.getBukkitEntity(); } @@ -157,6 +161,7 @@ public class BeeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -167,6 +172,7 @@ public class BeeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class BeeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BlazeController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BlazeController.java index 1fb629123..dc3a4bd8e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BlazeController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BlazeController.java @@ -71,6 +71,7 @@ public class BlazeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,6 +80,7 @@ public class BlazeController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -91,6 +93,7 @@ public class BlazeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BlazeNPC(this)); } + return super.getBukkitEntity(); } @@ -152,6 +155,7 @@ public class BlazeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -162,6 +166,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -185,6 +190,7 @@ public class BlazeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CamelController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CamelController.java index 08494566c..161de18cb 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CamelController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CamelController.java @@ -79,6 +79,7 @@ public class CamelController extends MobEntityController { .setDomestication(((org.bukkit.entity.Camel) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -100,6 +101,7 @@ public class CamelController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -107,6 +109,7 @@ public class CamelController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -121,16 +124,20 @@ public class CamelController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -143,6 +150,7 @@ public class CamelController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CamelNPC(this)); } + return super.getBukkitEntity(); } @@ -224,6 +232,7 @@ public class CamelController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -233,6 +242,7 @@ public class CamelController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -243,6 +253,7 @@ public class CamelController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -264,6 +275,7 @@ public class CamelController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -275,6 +287,7 @@ public class CamelController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CatController.java index 054f509e7..e89718449 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CatController.java @@ -81,6 +81,7 @@ public class CatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -88,6 +89,7 @@ public class CatController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -97,6 +99,7 @@ public class CatController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -109,6 +112,7 @@ public class CatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CatNPC(this)); } + return super.getBukkitEntity(); } @@ -178,6 +182,7 @@ public class CatController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -187,6 +192,7 @@ public class CatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -197,6 +203,7 @@ public class CatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -218,6 +225,7 @@ public class CatController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -229,6 +237,7 @@ public class CatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CaveSpiderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CaveSpiderController.java index ac8ed15a4..874f3b4af 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CaveSpiderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CaveSpiderController.java @@ -80,6 +80,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -87,6 +88,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -96,6 +98,7 @@ public class CaveSpiderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -108,6 +111,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CaveSpiderNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +181,7 @@ public class CaveSpiderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -187,6 +192,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -196,6 +202,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -217,6 +224,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -228,6 +236,7 @@ public class CaveSpiderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ChickenController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ChickenController.java index ecc55e5b2..fbfb0f919 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ChickenController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ChickenController.java @@ -67,6 +67,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { this.eggTime = 100; } + super.aiStep(); } @@ -89,6 +90,7 @@ public class ChickenController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -96,6 +98,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -105,6 +108,7 @@ public class ChickenController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -117,6 +121,7 @@ public class ChickenController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ChickenNPC(this)); } + return super.getBukkitEntity(); } @@ -186,6 +191,7 @@ public class ChickenController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -195,6 +201,7 @@ public class ChickenController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -205,6 +212,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -226,6 +234,7 @@ public class ChickenController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -237,6 +246,7 @@ public class ChickenController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CodController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CodController.java index a1a19f6c9..544a55de9 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CodController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CodController.java @@ -72,6 +72,7 @@ public class CodController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -80,10 +81,12 @@ public class CodController extends MobEntityController { if (npc != null) { this.verticalCollision = false; } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; } + } @Override @@ -105,6 +108,7 @@ public class CodController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -112,6 +116,7 @@ public class CodController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -120,18 +125,23 @@ public class CodController extends MobEntityController { if (!npc.useMinecraftAI()) { NMSImpl.setNotInSchool(this); } + NMSImpl.updateMinecraftAIState(npc, this); if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -144,6 +154,7 @@ public class CodController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CodNPC(this)); } + return super.getBukkitEntity(); } @@ -223,6 +234,7 @@ public class CodController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -233,6 +245,7 @@ public class CodController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -253,9 +266,11 @@ public class CodController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -267,6 +282,7 @@ public class CodController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CowController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CowController.java index fc1ca7a5a..ed3326eca 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CowController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CowController.java @@ -86,6 +86,7 @@ public class CowController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -93,6 +94,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -102,6 +104,7 @@ public class CowController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -114,6 +117,7 @@ public class CowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CowNPC(this)); } + return super.getBukkitEntity(); } @@ -193,6 +197,7 @@ public class CowController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -202,6 +207,7 @@ public class CowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -212,6 +218,7 @@ public class CowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -233,6 +240,7 @@ public class CowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -244,6 +252,7 @@ public class CowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CreeperController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CreeperController.java index 886359cea..f0502f033 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CreeperController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CreeperController.java @@ -83,6 +83,7 @@ public class CreeperController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -90,6 +91,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -99,6 +101,7 @@ public class CreeperController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -111,6 +114,7 @@ public class CreeperController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CreeperNPC(this)); } + return super.getBukkitEntity(); } @@ -149,6 +153,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isProtected()) { super.ignite(); } + } @Override @@ -187,6 +192,7 @@ public class CreeperController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -197,6 +203,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -206,6 +213,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -229,6 +237,7 @@ public class CreeperController extends MobEntityController { if (npc == null || allowPowered) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -238,6 +247,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -249,6 +259,7 @@ public class CreeperController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DolphinController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DolphinController.java index 5f0a2f176..cb5e671f8 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DolphinController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DolphinController.java @@ -71,6 +71,7 @@ public class DolphinController extends MobEntityController { this.getAttribute(Attributes.MOVEMENT_SPEED) .setBaseValue(this.getAttribute(Attributes.MOVEMENT_SPEED).getBaseValue() / 10); } + } @Override @@ -92,6 +93,7 @@ public class DolphinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -99,6 +101,7 @@ public class DolphinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -111,6 +114,7 @@ public class DolphinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DolphinNPC(this)); } + return super.getBukkitEntity(); } @@ -185,6 +189,7 @@ public class DolphinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -195,6 +200,7 @@ public class DolphinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -214,6 +220,7 @@ public class DolphinController extends MobEntityController { if (npc != null && npc.isProtected()) { inProtectedTick = true; } + super.tick(); inProtectedTick = false; if (npc != null) { @@ -221,11 +228,14 @@ public class DolphinController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new MoveControl(this); } + npc.update(); } + } @Override @@ -234,9 +244,11 @@ public class DolphinController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -248,6 +260,7 @@ public class DolphinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DrownedController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DrownedController.java index 5fac992e8..371ce4a03 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DrownedController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DrownedController.java @@ -80,6 +80,7 @@ public class DrownedController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -87,6 +88,7 @@ public class DrownedController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -96,6 +98,7 @@ public class DrownedController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -108,6 +111,7 @@ public class DrownedController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DrownedNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +181,7 @@ public class DrownedController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -187,6 +192,7 @@ public class DrownedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -208,6 +214,7 @@ public class DrownedController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -219,6 +226,7 @@ public class DrownedController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EnderDragonController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EnderDragonController.java index f2621a326..dd27d919f 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EnderDragonController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EnderDragonController.java @@ -72,16 +72,19 @@ public class EnderDragonController extends MobEntityController { npc.update(); } + if (npc != null && !npc.useMinecraftAI()) { if (isDeadOrDying()) { setHealth(0F); return; } + if (this.posPointer < 0) { for (int i = 0; i < this.positions.length; ++i) { this.positions[i][0] = this.getYRot(); this.positions[i][1] = this.getY(); } + } if (++this.posPointer == this.positions.length) { @@ -113,6 +116,7 @@ public class EnderDragonController extends MobEntityController { if (getFirstPassenger() == null) { setYRot(Util.getDragonYaw(getBukkitEntity(), mot.x, mot.z)); } + setPos(getX() + mot.x, getY() + mot.y, getZ() + mot.z); setDeltaMovement(mot); } @@ -126,8 +130,11 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + } + } + if (npc.data().get(NPC.Metadata.COLLIDABLE, false)) { try { KNOCKBACK.invoke(this, @@ -145,10 +152,13 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable t) { t.printStackTrace(); } + } + } else { super.aiStep(); } + } @Override @@ -163,6 +173,7 @@ public class EnderDragonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -175,6 +186,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderDragonNPC(this)); } + return super.getBukkitEntity(); } @@ -236,6 +248,7 @@ public class EnderDragonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -246,6 +259,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -258,6 +272,7 @@ public class EnderDragonController extends MobEntityController { if (getPhaseManager().getCurrentPhase().getPhase() == EnderDragonPhase.HOVERING) { setDeltaMovement(old); } + return res; } @@ -282,6 +297,7 @@ public class EnderDragonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermanController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermanController.java index 88f3fde3a..98f261f8a 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermanController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermanController.java @@ -83,6 +83,7 @@ public class EndermanController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -90,6 +91,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -99,6 +101,7 @@ public class EndermanController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -111,6 +114,7 @@ public class EndermanController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EndermanNPC(this)); } + return super.getBukkitEntity(); } @@ -180,6 +184,7 @@ public class EndermanController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +195,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -207,6 +213,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -228,6 +235,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -239,6 +247,7 @@ public class EndermanController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermiteController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermiteController.java index fabe0daa8..5d568828b 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermiteController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermiteController.java @@ -80,6 +80,7 @@ public class EndermiteController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -87,6 +88,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -96,6 +98,7 @@ public class EndermiteController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -108,6 +111,7 @@ public class EndermiteController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EndermiteNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +181,7 @@ public class EndermiteController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -187,6 +192,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -196,6 +202,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -217,6 +224,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -228,6 +236,7 @@ public class EndermiteController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EntityHumanNPC.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EntityHumanNPC.java index 4b2a57cc4..16b27c4e3 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EntityHumanNPC.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EntityHumanNPC.java @@ -75,10 +75,12 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } catch (Throwable e) { e.printStackTrace(); } + initialise(minecraftServer); } else { skinTracker = null; } + } @Override @@ -93,6 +95,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -114,6 +117,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable super.doTick(); return; } + super.baseTick(); boolean navigating = npc.getNavigator().isNavigating() || ai.getMoveControl().hasWanted(); if (!navigating && getBukkitEntity() != null @@ -122,16 +126,20 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable && (!npc.isProtected() || SpigotUtil.checkYSafe(getY(), getBukkitEntity().getWorld()))) { moveWithFallDamage(Vec3.ZERO); } + Vec3 mot = getDeltaMovement(); if (Math.abs(mot.x) < EPSILON && Math.abs(mot.y) < EPSILON && Math.abs(mot.z) < EPSILON) { setDeltaMovement(Vec3.ZERO); } + if (navigating) { if (!ai.getNavigation().isDone()) { ai.getNavigation().tick(); } + moveOnCurrentHeading(); } + tickAI(); detectEquipmentUpdates(); noPhysics = isSpectator(); @@ -148,10 +156,13 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } else { axisalignedbb = this.getBoundingBox().inflate(1.0, 0.5, 1.0); } + for (Entity entity : this.level.getEntities(this, axisalignedbb)) { entity.playerTouch(this); } + } + } @Override @@ -165,6 +176,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable NMSImpl.setBukkitEntity(this, new PlayerNPC(this)); setBukkitEntity = true; } + return super.getBukkitEntity(); } @@ -194,6 +206,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (skinName == null) { skinName = npc.getName(); } + return skinName.toLowerCase(); } @@ -222,8 +235,10 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable boolean damaged = super.hurt(damagesource, f); if (damaged && hurtMarked) { hurtMarked = false; - Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), (Runnable) () -> EntityHumanNPC.this.hurtMarked = true); + Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), + (Runnable) () -> EntityHumanNPC.this.hurtMarked = true); } + return damaged; } @@ -234,6 +249,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable conn.setListener(connection); } catch (IOException e) { } + this.invulnerableTime = 0; NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing setSkinFlags((byte) 0xFF); @@ -267,9 +283,11 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable jumpFromGround(); jumpTicks = 10; } + } else { jumpTicks = 0; } + xxa *= 0.98F; zza *= 0.98F; moveWithFallDamage(new Vec3(this.xxa, this.yya, this.zza)); @@ -277,6 +295,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (jumpTicks > 0) { jumpTicks--; } + } private void moveWithFallDamage(Vec3 vec) { @@ -285,6 +304,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (!npc.isProtected()) { doCheckFallDamage(getY() - y, onGround); } + } @Override @@ -301,6 +321,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -311,6 +332,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -362,6 +384,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -371,6 +394,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EvokerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EvokerController.java index 7e1d809b2..4c5f07db2 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EvokerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EvokerController.java @@ -74,6 +74,7 @@ public class EvokerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class EvokerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class EvokerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class EvokerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EvokerNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class EvokerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class EvokerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -202,6 +208,7 @@ public class EvokerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +220,7 @@ public class EvokerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FoxController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FoxController.java index 27c129c7f..59ccfcf64 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FoxController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FoxController.java @@ -75,6 +75,7 @@ public class FoxController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,6 +83,7 @@ public class FoxController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class FoxController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -103,6 +106,7 @@ public class FoxController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FoxNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +176,7 @@ public class FoxController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -181,6 +186,7 @@ public class FoxController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -191,6 +197,7 @@ public class FoxController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -212,6 +219,7 @@ public class FoxController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -223,6 +231,7 @@ public class FoxController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FrogController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FrogController.java index d7fbb3cb0..6fbc91b44 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FrogController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FrogController.java @@ -57,6 +57,7 @@ public class FrogController extends MobEntityController { if (npc != null) { croakAnimationState.start(1); } + } @Override @@ -78,6 +79,7 @@ public class FrogController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -85,6 +87,7 @@ public class FrogController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -94,6 +97,7 @@ public class FrogController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -106,6 +110,7 @@ public class FrogController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FrogNPC(this)); } + return super.getBukkitEntity(); } @@ -175,6 +180,7 @@ public class FrogController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -184,6 +190,7 @@ public class FrogController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -194,6 +201,7 @@ public class FrogController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -215,6 +223,7 @@ public class FrogController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -226,6 +235,7 @@ public class FrogController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GhastController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GhastController.java index 2481a3498..ab75e77ae 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GhastController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GhastController.java @@ -65,6 +65,7 @@ public class GhastController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -73,6 +74,7 @@ public class GhastController extends MobEntityController { npc.update(); NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); } @@ -86,6 +88,7 @@ public class GhastController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GhastNPC(this)); } + return super.getBukkitEntity(); } @@ -152,6 +155,7 @@ public class GhastController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -162,6 +166,7 @@ public class GhastController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -185,6 +190,7 @@ public class GhastController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GiantController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GiantController.java index 8fc34f06b..c1d1586fb 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GiantController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GiantController.java @@ -74,6 +74,7 @@ public class GiantController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class GiantController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class GiantController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GiantNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class GiantController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class GiantController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -211,6 +218,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class GiantController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GlowSquidController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GlowSquidController.java index b08e0def6..196b31ff6 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GlowSquidController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GlowSquidController.java @@ -74,6 +74,7 @@ public class GlowSquidController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class GlowSquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class GlowSquidController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class GlowSquidController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GlowSquidNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class GlowSquidController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class GlowSquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class GlowSquidController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -211,6 +218,7 @@ public class GlowSquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class GlowSquidController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GoatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GoatController.java index 45463c92a..10ff9d9e9 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GoatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GoatController.java @@ -75,6 +75,7 @@ public class GoatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,6 +83,7 @@ public class GoatController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class GoatController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -103,6 +106,7 @@ public class GoatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GoatNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +176,7 @@ public class GoatController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -181,6 +186,7 @@ public class GoatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -191,6 +197,7 @@ public class GoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -212,6 +219,7 @@ public class GoatController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -223,6 +231,7 @@ public class GoatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianController.java index 1a153d7d5..3c7b204b1 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianController.java @@ -66,8 +66,10 @@ public class GuardianController extends MobEntityController { } else { super.aiStep(); } + npc.update(); } + } @Override @@ -89,6 +91,7 @@ public class GuardianController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -96,6 +99,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -108,6 +112,7 @@ public class GuardianController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GuardianNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +182,7 @@ public class GuardianController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -187,6 +193,7 @@ public class GuardianController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -196,6 +203,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -217,6 +225,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -228,6 +237,7 @@ public class GuardianController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianElderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianElderController.java index bf317413c..48acf194c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianElderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianElderController.java @@ -66,8 +66,10 @@ public class GuardianElderController extends MobEntityController { } else { super.aiStep(); } + npc.update(); } + } @Override @@ -89,6 +91,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -96,6 +99,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -108,6 +112,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GuardianElderNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +182,7 @@ public class GuardianElderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -187,6 +193,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -196,6 +203,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -217,6 +225,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -228,6 +237,7 @@ public class GuardianElderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HoglinController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HoglinController.java index a054158d8..9aed0a3a5 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HoglinController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HoglinController.java @@ -56,6 +56,7 @@ public class HoglinController extends MobEntityController { if (npc != null) { NMSImpl.clearGoals(npc, goalSelector, targetSelector); } + } @Override @@ -77,6 +78,7 @@ public class HoglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -84,6 +86,7 @@ public class HoglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -92,10 +95,12 @@ public class HoglinController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -108,6 +113,7 @@ public class HoglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HoglinNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +183,7 @@ public class HoglinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -187,6 +194,7 @@ public class HoglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -208,6 +216,7 @@ public class HoglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -219,6 +228,7 @@ public class HoglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseController.java index 04e4581e5..71cd34b77 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseController.java @@ -73,6 +73,7 @@ public class HorseController extends MobEntityController { horse.setDomestication(horse.getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -94,6 +95,7 @@ public class HorseController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -101,6 +103,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -116,13 +119,16 @@ public class HorseController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } @@ -137,6 +143,7 @@ public class HorseController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseNPC(this)); } + return super.getBukkitEntity(); } @@ -218,6 +225,7 @@ public class HorseController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -227,6 +235,7 @@ public class HorseController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -237,6 +246,7 @@ public class HorseController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -258,6 +268,7 @@ public class HorseController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -269,6 +280,7 @@ public class HorseController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseDonkeyController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseDonkeyController.java index f412f38b9..bb4a3019b 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseDonkeyController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseDonkeyController.java @@ -73,6 +73,7 @@ public class HorseDonkeyController extends MobEntityController { .setDomestication(((org.bukkit.entity.Donkey) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -94,6 +95,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -101,6 +103,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -115,16 +118,20 @@ public class HorseDonkeyController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -137,6 +144,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseDonkeyNPC(this)); } + return super.getBukkitEntity(); } @@ -218,6 +226,7 @@ public class HorseDonkeyController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -227,6 +236,7 @@ public class HorseDonkeyController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -237,6 +247,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -258,6 +269,7 @@ public class HorseDonkeyController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -269,6 +281,7 @@ public class HorseDonkeyController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseMuleController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseMuleController.java index f684f1449..1230f3e47 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseMuleController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseMuleController.java @@ -73,6 +73,7 @@ public class HorseMuleController extends MobEntityController { .setDomestication(((org.bukkit.entity.Mule) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -94,6 +95,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -101,6 +103,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -115,16 +118,20 @@ public class HorseMuleController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -137,6 +144,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseMuleNPC(this)); } + return super.getBukkitEntity(); } @@ -218,6 +226,7 @@ public class HorseMuleController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -227,6 +236,7 @@ public class HorseMuleController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -237,6 +247,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -258,6 +269,7 @@ public class HorseMuleController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -269,6 +281,7 @@ public class HorseMuleController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseSkeletonController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseSkeletonController.java index 5e5ed21f0..345924d71 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseSkeletonController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseSkeletonController.java @@ -73,6 +73,7 @@ public class HorseSkeletonController extends MobEntityController { .setDomestication(((org.bukkit.entity.SkeletonHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -94,6 +95,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -101,6 +103,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -115,16 +118,20 @@ public class HorseSkeletonController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -137,6 +144,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseSkeletonNPC(this)); } + return super.getBukkitEntity(); } @@ -218,6 +226,7 @@ public class HorseSkeletonController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -227,6 +236,7 @@ public class HorseSkeletonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -237,6 +247,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -258,6 +269,7 @@ public class HorseSkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -269,6 +281,7 @@ public class HorseSkeletonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseZombieController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseZombieController.java index 17ae326a3..725ca51ea 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseZombieController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseZombieController.java @@ -73,6 +73,7 @@ public class HorseZombieController extends MobEntityController { .setDomestication(((org.bukkit.entity.ZombieHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -94,6 +95,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -101,6 +103,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -115,16 +118,20 @@ public class HorseZombieController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -137,6 +144,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -218,6 +226,7 @@ public class HorseZombieController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -227,6 +236,7 @@ public class HorseZombieController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -237,6 +247,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -258,6 +269,7 @@ public class HorseZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -269,6 +281,7 @@ public class HorseZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HumanController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HumanController.java index ecd8a15fc..894d10f88 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HumanController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HumanController.java @@ -35,15 +35,18 @@ public class HumanController extends AbstractEntityController { if (npc.requiresNameHologram()) { name = teamName; } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } + final GameProfile profile = new GameProfile(uuid, name); final EntityHumanNPC handle = new EntityHumanNPC(MinecraftServer.getServer(), nmsWorld, profile, npc); Skin skin = handle.getSkinTracker().getSkin(); if (skin != null) { skin.apply(handle); } + Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> { if (getBukkitEntity() == null || !getBukkitEntity().isValid() || getBukkitEntity() != handle.getBukkitEntity()) diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IllusionerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IllusionerController.java index 3c2ca0e77..7633200a0 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IllusionerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IllusionerController.java @@ -74,6 +74,7 @@ public class IllusionerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class IllusionerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class IllusionerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class IllusionerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new IllusionerNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class IllusionerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class IllusionerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -202,6 +208,7 @@ public class IllusionerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +220,7 @@ public class IllusionerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IronGolemController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IronGolemController.java index 6817cf1a2..1f39a1fc6 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IronGolemController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IronGolemController.java @@ -74,6 +74,7 @@ public class IronGolemController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class IronGolemController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class IronGolemController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new IronGolemNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class IronGolemController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -211,6 +218,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class IronGolemController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/LlamaController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/LlamaController.java index c7e8f45cb..6a4d6da3e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/LlamaController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/LlamaController.java @@ -73,6 +73,7 @@ public class LlamaController extends MobEntityController { .setDomestication(((org.bukkit.entity.Llama) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -94,6 +95,7 @@ public class LlamaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -101,6 +103,7 @@ public class LlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -115,16 +118,20 @@ public class LlamaController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -137,6 +144,7 @@ public class LlamaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LlamaNPC(this)); } + return super.getBukkitEntity(); } @@ -218,6 +226,7 @@ public class LlamaController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -227,6 +236,7 @@ public class LlamaController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -237,6 +247,7 @@ public class LlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -258,6 +269,7 @@ public class LlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -269,6 +281,7 @@ public class LlamaController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MagmaCubeController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MagmaCubeController.java index f369ec366..99d5484be 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MagmaCubeController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MagmaCubeController.java @@ -63,6 +63,7 @@ public class MagmaCubeController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new EntityMoveControl(this); } + } @Override @@ -84,6 +85,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -91,6 +93,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -103,6 +106,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MagmaCubeNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.playerTouch(human); } + } @Override @@ -179,6 +184,7 @@ public class MagmaCubeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +195,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -198,6 +205,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -220,11 +228,14 @@ public class MagmaCubeController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -234,6 +245,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -245,6 +257,7 @@ public class MagmaCubeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MobEntityController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MobEntityController.java index 7d94b042a..77dcc615b 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MobEntityController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MobEntityController.java @@ -39,7 +39,9 @@ public abstract class MobEntityController extends AbstractEntityController { if (mob.getLookControl().getClass() == LookControl.class) { NMSImpl.setLookControl(mob, new PitchableLookControl(mob)); } + } + entity.absMoveTo(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch()); if (npc != null) { // entity.onGround isn't updated right away - we approximate here so @@ -48,10 +50,12 @@ public abstract class MobEntityController extends AbstractEntityController { if (beneath.isSolid()) { entity.setOnGround(true); } + entity.setUUID(npc.getUniqueId()); if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } + } return entity.getBukkitEntity(); @@ -64,6 +68,7 @@ public abstract class MobEntityController extends AbstractEntityController { ex.printStackTrace(); return null; } + } private static Constructor getConstructor(Class clazz) { @@ -76,6 +81,7 @@ public abstract class MobEntityController extends AbstractEntityController { } catch (Exception ex) { throw new IllegalStateException("unable to find an entity constructor"); } + } private static final Map, Constructor> CONSTRUCTOR_CACHE = new WeakHashMap<>(); diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MushroomCowController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MushroomCowController.java index dcaec9ef2..27d05abac 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MushroomCowController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MushroomCowController.java @@ -78,6 +78,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -85,6 +86,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -94,6 +96,7 @@ public class MushroomCowController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -106,6 +109,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MushroomCowNPC(this)); } + return super.getBukkitEntity(); } @@ -182,6 +186,7 @@ public class MushroomCowController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -191,6 +196,7 @@ public class MushroomCowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -201,6 +207,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -222,6 +229,7 @@ public class MushroomCowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -233,6 +241,7 @@ public class MushroomCowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/OcelotController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/OcelotController.java index 5eb1ac113..0e6b1e1a0 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/OcelotController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/OcelotController.java @@ -76,6 +76,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -83,6 +84,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -93,10 +95,12 @@ public class OcelotController extends MobEntityController { if (restorePose) { this.setPose(old); } + if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -109,6 +113,7 @@ public class OcelotController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new OcelotNPC(this)); } + return super.getBukkitEntity(); } @@ -178,6 +183,7 @@ public class OcelotController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -187,6 +193,7 @@ public class OcelotController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -197,6 +204,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -218,6 +226,7 @@ public class OcelotController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -229,6 +238,7 @@ public class OcelotController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PandaController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PandaController.java index ee25b7a8f..bf431e835 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PandaController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PandaController.java @@ -75,6 +75,7 @@ public class PandaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,6 +83,7 @@ public class PandaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class PandaController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -103,6 +106,7 @@ public class PandaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PandaNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +176,7 @@ public class PandaController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -181,6 +186,7 @@ public class PandaController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -191,6 +197,7 @@ public class PandaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -212,6 +219,7 @@ public class PandaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -223,6 +231,7 @@ public class PandaController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ParrotController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ParrotController.java index 9e35e32de..dc4cdc5bd 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ParrotController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ParrotController.java @@ -68,6 +68,7 @@ public class ParrotController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -79,8 +80,10 @@ public class ParrotController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -93,6 +96,7 @@ public class ParrotController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ParrotNPC(this)); } + return super.getBukkitEntity(); } @@ -162,6 +166,7 @@ public class ParrotController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -172,6 +177,7 @@ public class ParrotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -195,6 +201,7 @@ public class ParrotController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PhantomController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PhantomController.java index 7e64dcb2b..3d92a46b3 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PhantomController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PhantomController.java @@ -68,6 +68,7 @@ public class PhantomController extends MobEntityController { this.lookControl = new LookControl(this); // TODO: phantom pitch reversed } + } @Override @@ -79,15 +80,19 @@ public class PhantomController extends MobEntityController { this.moveControl = this.oldMoveController; this.lookControl = this.oldLookController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); this.lookControl = new LookControl(this); } + if (npc.isProtected()) { setSecondsOnFire(0); } + npc.update(); } + } @Override @@ -109,6 +114,7 @@ public class PhantomController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -116,6 +122,7 @@ public class PhantomController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -128,6 +135,7 @@ public class PhantomController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PhantomNPC(this)); } + return super.getBukkitEntity(); } @@ -204,6 +212,7 @@ public class PhantomController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -213,6 +222,7 @@ public class PhantomController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -223,6 +233,7 @@ public class PhantomController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -249,6 +260,7 @@ public class PhantomController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -260,6 +272,7 @@ public class PhantomController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigController.java index 66e739768..be8338874 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigController.java @@ -76,6 +76,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -83,6 +84,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -92,6 +94,7 @@ public class PigController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -104,6 +107,7 @@ public class PigController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PigNPC(this)); } + return super.getBukkitEntity(); } @@ -179,6 +183,7 @@ public class PigController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -188,6 +193,7 @@ public class PigController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -198,6 +204,7 @@ public class PigController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -217,6 +224,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -226,6 +234,7 @@ public class PigController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -237,6 +246,7 @@ public class PigController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigZombieController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigZombieController.java index 8391bdc9d..0ced66d85 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigZombieController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigZombieController.java @@ -74,6 +74,7 @@ public class PigZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class PigZombieController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class PigZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PigZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class PigZombieController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -202,6 +208,7 @@ public class PigZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +220,7 @@ public class PigZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinBruteController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinBruteController.java index a4a03c8f9..1141025f4 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinBruteController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinBruteController.java @@ -74,6 +74,7 @@ public class PiglinBruteController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class PiglinBruteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,10 +91,12 @@ public class PiglinBruteController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -105,6 +109,7 @@ public class PiglinBruteController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PiglinBruteNPC(this)); } + return super.getBukkitEntity(); } @@ -174,6 +179,7 @@ public class PiglinBruteController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -184,6 +190,7 @@ public class PiglinBruteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -205,6 +212,7 @@ public class PiglinBruteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -216,6 +224,7 @@ public class PiglinBruteController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinController.java index d355965dd..2bdbd2d3e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinController.java @@ -74,6 +74,7 @@ public class PiglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class PiglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,10 +91,12 @@ public class PiglinController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -105,6 +109,7 @@ public class PiglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PiglinNPC(this)); } + return super.getBukkitEntity(); } @@ -174,6 +179,7 @@ public class PiglinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -184,6 +190,7 @@ public class PiglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -205,6 +212,7 @@ public class PiglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -216,6 +224,7 @@ public class PiglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PillagerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PillagerController.java index e0122abc1..9a3395499 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PillagerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PillagerController.java @@ -75,6 +75,7 @@ public class PillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,6 +83,7 @@ public class PillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class PillagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -103,6 +106,7 @@ public class PillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +176,7 @@ public class PillagerController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -181,6 +186,7 @@ public class PillagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -191,6 +197,7 @@ public class PillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -212,6 +219,7 @@ public class PillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -223,6 +231,7 @@ public class PillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PolarBearController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PolarBearController.java index 9bc0ec8f5..e36edcff5 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PolarBearController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PolarBearController.java @@ -66,6 +66,7 @@ public class PolarBearController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -75,6 +76,7 @@ public class PolarBearController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -87,6 +89,7 @@ public class PolarBearController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PolarBearNPC(this)); } + return super.getBukkitEntity(); } @@ -148,6 +151,7 @@ public class PolarBearController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -157,6 +161,7 @@ public class PolarBearController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -167,6 +172,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class PolarBearController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PufferFishController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PufferFishController.java index 92cf8674d..1e948a5e0 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PufferFishController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PufferFishController.java @@ -69,6 +69,7 @@ public class PufferFishController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -79,11 +80,13 @@ public class PufferFishController extends MobEntityController { this.verticalCollision = false; setPuffState(0); } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; setPuffState(lastPuffState); } + } @Override @@ -105,6 +108,7 @@ public class PufferFishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -112,6 +116,7 @@ public class PufferFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -122,11 +127,14 @@ public class PufferFishController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -139,6 +147,7 @@ public class PufferFishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PufferFishNPC(this)); } + return super.getBukkitEntity(); } @@ -225,6 +234,7 @@ public class PufferFishController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -235,6 +245,7 @@ public class PufferFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -254,11 +265,13 @@ public class PufferFishController extends MobEntityController { if (npc != null) { NMSImpl.resetPuffTicks(this); } + super.tick(); PufferFishTrait trait = null; if (npc != null && (trait = npc.getTraitNullable(PufferFishTrait.class)) != null) { setPuffState(trait.getPuffState()); } + } @Override @@ -267,9 +280,11 @@ public class PufferFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -281,6 +296,7 @@ public class PufferFishController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } @@ -293,6 +309,7 @@ public class PufferFishController extends MobEntityController { default: return 1.0F; } + } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RabbitController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RabbitController.java index 7102daa2d..44c333397 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RabbitController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RabbitController.java @@ -76,6 +76,7 @@ public class RabbitController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -83,6 +84,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -93,8 +95,10 @@ public class RabbitController extends MobEntityController { if (npc.getNavigator().isNavigating()) { NMS.setShouldJump(getBukkitEntity()); } + npc.update(); } + } @Override @@ -107,6 +111,7 @@ public class RabbitController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new RabbitNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +186,7 @@ public class RabbitController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -190,6 +196,7 @@ public class RabbitController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -200,6 +207,7 @@ public class RabbitController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -215,6 +223,7 @@ public class RabbitController extends MobEntityController { this.entityData.set(NMSImpl.getRabbitTypeField(), variant.id()); return; } + super.setVariant(variant); } @@ -232,6 +241,7 @@ public class RabbitController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -243,6 +253,7 @@ public class RabbitController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RavagerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RavagerController.java index 3a54e4ed3..0ef67b71c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RavagerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RavagerController.java @@ -75,6 +75,7 @@ public class RavagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,6 +83,7 @@ public class RavagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class RavagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -103,6 +106,7 @@ public class RavagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new RavagerNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +181,7 @@ public class RavagerController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -186,6 +191,7 @@ public class RavagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -196,6 +202,7 @@ public class RavagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -217,6 +224,7 @@ public class RavagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -228,6 +236,7 @@ public class RavagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SalmonController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SalmonController.java index 5a61c8489..2fad163e0 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SalmonController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SalmonController.java @@ -66,6 +66,7 @@ public class SalmonController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -74,10 +75,12 @@ public class SalmonController extends MobEntityController { if (npc != null) { this.verticalCollision = false; } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; } + } @Override @@ -99,6 +102,7 @@ public class SalmonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -106,6 +110,7 @@ public class SalmonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -116,14 +121,18 @@ public class SalmonController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -136,6 +145,7 @@ public class SalmonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SalmonNPC(this)); } + return super.getBukkitEntity(); } @@ -215,6 +225,7 @@ public class SalmonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -225,6 +236,7 @@ public class SalmonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -245,9 +257,11 @@ public class SalmonController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -259,6 +273,7 @@ public class SalmonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SheepController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SheepController.java index 3aad46b97..4bc80955a 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SheepController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SheepController.java @@ -75,6 +75,7 @@ public class SheepController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,6 +83,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class SheepController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -103,6 +106,7 @@ public class SheepController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SheepNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +176,7 @@ public class SheepController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -181,6 +186,7 @@ public class SheepController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -191,6 +197,7 @@ public class SheepController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -212,6 +219,7 @@ public class SheepController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -223,6 +231,7 @@ public class SheepController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ShulkerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ShulkerController.java index f85bf2668..eeee7a326 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ShulkerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ShulkerController.java @@ -61,6 +61,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || npc.useMinecraftAI()) { super.aiStep(); } + } @Override @@ -82,6 +83,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -89,6 +91,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -106,6 +109,7 @@ public class ShulkerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ShulkerNPC(this)); } + return super.getBukkitEntity(); } @@ -175,6 +179,7 @@ public class ShulkerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -185,6 +190,7 @@ public class ShulkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -194,6 +200,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -215,10 +222,12 @@ public class ShulkerController extends MobEntityController { if (npc.useMinecraftAI()) { super.tick(); } + npc.update(); } else { super.tick(); } + } @Override @@ -228,6 +237,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -239,6 +249,7 @@ public class ShulkerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SilverfishController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SilverfishController.java index ab937e6dd..9fab1ecfc 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SilverfishController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SilverfishController.java @@ -74,6 +74,7 @@ public class SilverfishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class SilverfishController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class SilverfishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SilverfishNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class SilverfishController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -211,6 +218,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class SilverfishController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonController.java index 69ffb41d0..9930ffe25 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonController.java @@ -74,6 +74,7 @@ public class SkeletonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class SkeletonController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class SkeletonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SkeletonNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class SkeletonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -211,6 +218,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class SkeletonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonStrayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonStrayController.java index a6f9f0303..b6d853ee3 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonStrayController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonStrayController.java @@ -74,6 +74,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class SkeletonStrayController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new StrayNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class SkeletonStrayController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -211,6 +218,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class SkeletonStrayController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonWitherController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonWitherController.java index d14f2cda3..69c9e871a 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonWitherController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonWitherController.java @@ -74,6 +74,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class SkeletonWitherController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SkeletonWitherNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class SkeletonWitherController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -211,6 +218,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class SkeletonWitherController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SlimeController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SlimeController.java index a53706ed4..745d26027 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SlimeController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SlimeController.java @@ -63,6 +63,7 @@ public class SlimeController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new EntityMoveControl(this); } + } @Override @@ -84,6 +85,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -91,6 +93,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -103,6 +106,7 @@ public class SlimeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SlimeNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.playerTouch(human); } + } @Override @@ -179,6 +184,7 @@ public class SlimeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +195,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -198,6 +205,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -220,11 +228,14 @@ public class SlimeController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -234,6 +245,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -245,6 +257,7 @@ public class SlimeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnifferController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnifferController.java index 2fd7086c5..80623e66f 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnifferController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnifferController.java @@ -80,6 +80,7 @@ public class SnifferController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -87,6 +88,7 @@ public class SnifferController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -96,6 +98,7 @@ public class SnifferController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -108,6 +111,7 @@ public class SnifferController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnifferNPC(this)); } + return super.getBukkitEntity(); } @@ -187,6 +191,7 @@ public class SnifferController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -196,6 +201,7 @@ public class SnifferController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -206,6 +212,7 @@ public class SnifferController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -227,6 +234,7 @@ public class SnifferController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -238,6 +246,7 @@ public class SnifferController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnowmanController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnowmanController.java index c5a1623a3..33b4cab52 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnowmanController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnowmanController.java @@ -74,6 +74,7 @@ public class SnowmanController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class SnowmanController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class SnowmanController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnowmanNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class SnowmanController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -211,6 +218,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class SnowmanController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SpiderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SpiderController.java index f41c89abd..f993f0656 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SpiderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SpiderController.java @@ -74,6 +74,7 @@ public class SpiderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class SpiderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class SpiderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SpiderNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class SpiderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -211,6 +218,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class SpiderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SquidController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SquidController.java index 5f503047b..5675f4c29 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SquidController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SquidController.java @@ -74,6 +74,7 @@ public class SquidController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class SquidController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class SquidController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SquidNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class SquidController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class SquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -211,6 +218,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class SquidController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/StriderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/StriderController.java index 380b4cdaf..872ff2a2d 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/StriderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/StriderController.java @@ -74,6 +74,7 @@ public class StriderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class StriderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class StriderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class StriderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new StriderNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class StriderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class StriderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -202,6 +208,7 @@ public class StriderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +220,7 @@ public class StriderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TadpoleController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TadpoleController.java index 8a1fecc81..992e778bc 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TadpoleController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TadpoleController.java @@ -67,6 +67,7 @@ public class TadpoleController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -75,10 +76,12 @@ public class TadpoleController extends MobEntityController { if (npc != null) { this.verticalCollision = false; } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; } + } @Override @@ -100,6 +103,7 @@ public class TadpoleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -107,6 +111,7 @@ public class TadpoleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -116,14 +121,18 @@ public class TadpoleController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -136,6 +145,7 @@ public class TadpoleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TadpoleNPC(this)); } + return super.getBukkitEntity(); } @@ -215,6 +225,7 @@ public class TadpoleController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -225,6 +236,7 @@ public class TadpoleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -245,9 +257,11 @@ public class TadpoleController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -259,6 +273,7 @@ public class TadpoleController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TraderLlamaController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TraderLlamaController.java index 727185cf6..4fa262410 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TraderLlamaController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TraderLlamaController.java @@ -66,6 +66,7 @@ public class TraderLlamaController extends MobEntityController { ((org.bukkit.entity.TraderLlama) getBukkitEntity()) .setDomestication(((org.bukkit.entity.TraderLlama) getBukkitEntity()).getMaxDomestication()); } + } @Override @@ -87,6 +88,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -94,6 +96,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -105,10 +108,12 @@ public class TraderLlamaController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + setDespawnDelay(10); NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -121,6 +126,7 @@ public class TraderLlamaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TraderLlamaNPC(this)); } + return super.getBukkitEntity(); } @@ -190,6 +196,7 @@ public class TraderLlamaController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -199,6 +206,7 @@ public class TraderLlamaController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -209,6 +217,7 @@ public class TraderLlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -230,6 +239,7 @@ public class TraderLlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -241,6 +251,7 @@ public class TraderLlamaController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TropicalFishController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TropicalFishController.java index 528a1013f..080d39b43 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TropicalFishController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TropicalFishController.java @@ -66,6 +66,7 @@ public class TropicalFishController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -74,10 +75,12 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { this.verticalCollision = false; } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; } + } @Override @@ -99,6 +102,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -106,6 +110,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -114,18 +119,23 @@ public class TropicalFishController extends MobEntityController { if (!npc.useMinecraftAI()) { NMSImpl.setNotInSchool(this); } + NMSImpl.updateMinecraftAIState(npc, this); if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -138,6 +148,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TropicalFishNPC(this)); } + return super.getBukkitEntity(); } @@ -217,6 +228,7 @@ public class TropicalFishController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -227,6 +239,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -247,9 +260,11 @@ public class TropicalFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -261,6 +276,7 @@ public class TropicalFishController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TurtleController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TurtleController.java index 006e75ef2..19ee41681 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TurtleController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TurtleController.java @@ -67,6 +67,7 @@ public class TurtleController extends MobEntityController { this.moveControl = new MoveControl(this); this.jumpControl = new EmptyControllerJump(this); } + } @Override @@ -88,6 +89,7 @@ public class TurtleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -95,6 +97,7 @@ public class TurtleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -106,12 +109,15 @@ public class TurtleController extends MobEntityController { this.moveControl = this.oldMoveController; this.jumpControl = this.oldJumpController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); this.jumpControl = new EmptyControllerJump(this); } + npc.update(); } + } @Override @@ -124,6 +130,7 @@ public class TurtleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TurtleNPC(this)); } + return super.getBukkitEntity(); } @@ -193,6 +200,7 @@ public class TurtleController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -203,6 +211,7 @@ public class TurtleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -223,9 +232,11 @@ public class TurtleController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -237,6 +248,7 @@ public class TurtleController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VexController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VexController.java index 36d07af4e..b04d27d21 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VexController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VexController.java @@ -54,6 +54,7 @@ public class VexController extends MobEntityController { if (npc != null) { setNoGravity(true); } + } @Override @@ -68,6 +69,7 @@ public class VexController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -77,6 +79,7 @@ public class VexController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -89,6 +92,7 @@ public class VexController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VexNPC(this)); } + return super.getBukkitEntity(); } @@ -150,6 +154,7 @@ public class VexController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -160,6 +165,7 @@ public class VexController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -183,6 +189,7 @@ public class VexController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VillagerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VillagerController.java index 365e5abef..1f2b21f38 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VillagerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VillagerController.java @@ -65,6 +65,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(0.3); } + } @Override @@ -86,6 +87,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -93,6 +95,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -100,13 +103,16 @@ public class VillagerController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); if (npc != null) { npc.update(); if (npc.data().get(NPC.Metadata.RESET_PITCH_ON_TICK, true)) { NMS.setPitch(getBukkitEntity(), 0); } + } + } @Override @@ -119,6 +125,7 @@ public class VillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +176,7 @@ public class VillagerController extends MobEntityController { blockingATrade = false; return true; } + return super.isTrading(); } @@ -191,7 +199,9 @@ public class VillagerController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.mobInteract(entityhuman, enumhand); } @@ -209,6 +219,7 @@ public class VillagerController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -218,6 +229,7 @@ public class VillagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -228,6 +240,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -247,6 +260,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -256,6 +270,7 @@ public class VillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -267,6 +282,7 @@ public class VillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VindicatorController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VindicatorController.java index 1bbc6b40f..0e2505a3d 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VindicatorController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VindicatorController.java @@ -75,6 +75,7 @@ public class VindicatorController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,6 +83,7 @@ public class VindicatorController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class VindicatorController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -103,6 +106,7 @@ public class VindicatorController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VindicatorNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +176,7 @@ public class VindicatorController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -181,6 +186,7 @@ public class VindicatorController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -191,6 +197,7 @@ public class VindicatorController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -212,6 +219,7 @@ public class VindicatorController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -223,6 +231,7 @@ public class VindicatorController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WanderingTraderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WanderingTraderController.java index 74951c4f9..e45d0102c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WanderingTraderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WanderingTraderController.java @@ -84,6 +84,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -91,6 +92,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -98,11 +100,13 @@ public class WanderingTraderController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); if (npc != null) { setDespawnDelay(10); npc.update(); } + } @Override @@ -115,6 +119,7 @@ public class WanderingTraderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WanderingTraderNPC(this)); } + return super.getBukkitEntity(); } @@ -169,6 +174,7 @@ public class WanderingTraderController extends MobEntityController { blockingATrade = false; return true; } + return super.isTrading(); } @@ -191,7 +197,9 @@ public class WanderingTraderController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.mobInteract(entityhuman, enumhand); } @@ -209,6 +217,7 @@ public class WanderingTraderController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -218,6 +227,7 @@ public class WanderingTraderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -228,6 +238,7 @@ public class WanderingTraderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -251,6 +262,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -260,6 +272,7 @@ public class WanderingTraderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -271,6 +284,7 @@ public class WanderingTraderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WardenController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WardenController.java index dae5d1a82..c04917315 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WardenController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WardenController.java @@ -77,6 +77,7 @@ public class WardenController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -84,6 +85,7 @@ public class WardenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -92,11 +94,13 @@ public class WardenController extends MobEntityController { super.customServerAiStep(); return; } + NMSImpl.updateMinecraftAIState(npc, this); npc.update(); if (npc.useMinecraftAI()) { super.customServerAiStep(); } + } @Override @@ -109,6 +113,7 @@ public class WardenController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WardenNPC(this)); } + return super.getBukkitEntity(); } @@ -178,6 +183,7 @@ public class WardenController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -188,6 +194,7 @@ public class WardenController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -209,6 +216,7 @@ public class WardenController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -220,6 +228,7 @@ public class WardenController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitchController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitchController.java index c6e6ec0ad..24f7e0b47 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitchController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitchController.java @@ -74,6 +74,7 @@ public class WitchController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class WitchController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class WitchController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitchNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class WitchController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class WitchController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -190,6 +196,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -211,6 +218,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class WitchController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitherController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitherController.java index 16df3e1b9..07e2b607a 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitherController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitherController.java @@ -65,6 +65,7 @@ public class WitherController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -76,8 +77,10 @@ public class WitherController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -95,6 +98,7 @@ public class WitherController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitherNPC(this)); } + return super.getBukkitEntity(); } @@ -162,6 +166,7 @@ public class WitherController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -172,6 +177,7 @@ public class WitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -195,6 +201,7 @@ public class WitherController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WolfController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WolfController.java index b6dd28c71..8f42d9dd3 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WolfController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WolfController.java @@ -77,6 +77,7 @@ public class WolfController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -84,6 +85,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -93,6 +95,7 @@ public class WolfController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -105,6 +108,7 @@ public class WolfController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WolfNPC(this)); } + return super.getBukkitEntity(); } @@ -174,6 +178,7 @@ public class WolfController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -183,6 +188,7 @@ public class WolfController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +199,7 @@ public class WolfController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -219,6 +226,7 @@ public class WolfController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -230,6 +238,7 @@ public class WolfController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZoglinController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZoglinController.java index f00558eeb..e4097f2e6 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZoglinController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZoglinController.java @@ -74,6 +74,7 @@ public class ZoglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class ZoglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,10 +90,12 @@ public class ZoglinController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -104,6 +108,7 @@ public class ZoglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZoglinNPC(this)); } + return super.getBukkitEntity(); } @@ -173,6 +178,7 @@ public class ZoglinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -183,6 +189,7 @@ public class ZoglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -204,6 +211,7 @@ public class ZoglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -215,6 +223,7 @@ public class ZoglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieController.java index 171f75c46..596df065e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieController.java @@ -74,6 +74,7 @@ public class ZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class ZombieController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class ZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class ZombieController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -202,6 +208,7 @@ public class ZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +220,7 @@ public class ZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieHuskController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieHuskController.java index 72049960b..77dca3c5e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieHuskController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieHuskController.java @@ -74,6 +74,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class ZombieHuskController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieHuskNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class ZombieHuskController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -202,6 +208,7 @@ public class ZombieHuskController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +220,7 @@ public class ZombieHuskController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieVillagerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieVillagerController.java index e7acb5967..f1b8980cc 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieVillagerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieVillagerController.java @@ -74,6 +74,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class ZombieVillagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieVillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class ZombieVillagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -181,6 +186,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -202,6 +208,7 @@ public class ZombieVillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -213,6 +220,7 @@ public class ZombieVillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/AreaEffectCloudController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/AreaEffectCloudController.java index c85b108b2..94b1fd090 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/AreaEffectCloudController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/AreaEffectCloudController.java @@ -60,6 +60,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new AreaEffectCloudNPC(this)); } + return super.getBukkitEntity(); } @@ -90,6 +91,7 @@ public class AreaEffectCloudController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -100,6 +102,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,6 +124,7 @@ public class AreaEffectCloudController extends MobEntityController { } else { super.tick(); } + } @Override @@ -132,6 +136,7 @@ public class AreaEffectCloudController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BlockDisplayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BlockDisplayController.java index 8cea0af05..2183e791c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BlockDisplayController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BlockDisplayController.java @@ -42,6 +42,7 @@ public class BlockDisplayController extends MobEntityController { ((org.bukkit.entity.BlockDisplay) handle.getBukkitEntity()) .setBlock(npc.getItemProvider().get().getType().createBlockData()); } + return handle.getBukkitEntity(); } @@ -73,6 +74,7 @@ public class BlockDisplayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BlockDisplayNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +105,7 @@ public class BlockDisplayController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -113,6 +116,7 @@ public class BlockDisplayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -133,6 +137,7 @@ public class BlockDisplayController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -144,6 +149,7 @@ public class BlockDisplayController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BoatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BoatController.java index d1324a3c3..692c71ed4 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BoatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BoatController.java @@ -73,6 +73,7 @@ public class BoatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BoatNPC(this)); } + return super.getBukkitEntity(); } @@ -92,6 +93,7 @@ public class BoatController extends MobEntityController { this.aC = getBoundingBox().maxY; return entityboat_Status; } + if (t()) return Status.IN_WATER; float f = getGroundFriction(); @@ -99,6 +101,7 @@ public class BoatController extends MobEntityController { this.aD = f; return Status.ON_LAND; } + return Status.IN_AIR; } @@ -119,6 +122,7 @@ public class BoatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -129,6 +133,7 @@ public class BoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -138,6 +143,7 @@ public class BoatController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -167,9 +173,13 @@ public class BoatController extends MobEntityController { this.aC = Math.max(f, this.aC); m = flag | (axisalignedbb.minY < f ? true : false); } + } + } + } + return m; } @@ -211,7 +221,9 @@ public class BoatController extends MobEntityController { if (getControllingPassenger() instanceof ServerPlayer) { this.aD /= 2.0F; } + } + Vec3 vec3d = getDeltaMovement(); setDeltaMovement(vec3d.x * this.ap, vec3d.y + d1, vec3d.z * this.ap); this.ar *= this.ap; @@ -219,14 +231,18 @@ public class BoatController extends MobEntityController { Vec3 vec3d1 = getDeltaMovement(); setDeltaMovement(vec3d1.x, vec3d1.y + d2 * 0.0615D, vec3d1.z); } + } + move(MoverType.SELF, getDeltaMovement()); if (isVehicle()) { setYRot((float) (getYRot() + this.ar)); } + } else { super.tick(); } + } private Status u() { @@ -251,9 +267,13 @@ public class BoatController extends MobEntityController { return Status.UNDER_FLOWING_WATER; flag = true; } + } + } + } + return flag ? Status.UNDER_WATER : null; } @@ -266,6 +286,7 @@ public class BoatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ChestBoatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ChestBoatController.java index 31e49fada..18df68f88 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ChestBoatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ChestBoatController.java @@ -74,6 +74,7 @@ public class ChestBoatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ChestBoatNPC(this)); } + return super.getBukkitEntity(); } @@ -93,6 +94,7 @@ public class ChestBoatController extends MobEntityController { this.aC = getBoundingBox().maxY; return entityboat_Status; } + if (t()) return Status.IN_WATER; float f = getGroundFriction(); @@ -100,6 +102,7 @@ public class ChestBoatController extends MobEntityController { this.aD = f; return Status.ON_LAND; } + return Status.IN_AIR; } @@ -120,6 +123,7 @@ public class ChestBoatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -130,6 +134,7 @@ public class ChestBoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -139,6 +144,7 @@ public class ChestBoatController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -168,9 +174,13 @@ public class ChestBoatController extends MobEntityController { this.aC = Math.max(f, this.aC); m = flag | (axisalignedbb.minY < f ? true : false); } + } + } + } + return m; } @@ -212,7 +222,9 @@ public class ChestBoatController extends MobEntityController { if (getControllingPassenger() instanceof ServerPlayer) { this.aD /= 2.0F; } + } + Vec3 vec3d = getDeltaMovement(); setDeltaMovement(vec3d.x * this.ap, vec3d.y + d1, vec3d.z * this.ap); this.ar *= this.ap; @@ -220,14 +232,18 @@ public class ChestBoatController extends MobEntityController { Vec3 vec3d1 = getDeltaMovement(); setDeltaMovement(vec3d1.x, vec3d1.y + d2 * 0.0615D, vec3d1.z); } + } + move(MoverType.SELF, getDeltaMovement()); if (isVehicle()) { setYRot((float) (getYRot() + this.ar)); } + } else { super.tick(); } + } private Status u() { @@ -252,9 +268,13 @@ public class ChestBoatController extends MobEntityController { return Status.UNDER_FLOWING_WATER; flag = true; } + } + } + } + return flag ? Status.UNDER_WATER : null; } @@ -267,6 +287,7 @@ public class ChestBoatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/DragonFireballController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/DragonFireballController.java index 2162f07ba..7a3352f3e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/DragonFireballController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/DragonFireballController.java @@ -60,6 +60,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DragonFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -90,6 +91,7 @@ public class DragonFireballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -100,6 +102,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -109,6 +112,7 @@ public class DragonFireballController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -130,9 +134,11 @@ public class DragonFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -144,6 +150,7 @@ public class DragonFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EggController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EggController.java index c68cdb4d0..262ea2c75 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EggController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EggController.java @@ -74,6 +74,7 @@ public class EggController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EggNPC(this)); } + return super.getBukkitEntity(); } @@ -104,6 +105,7 @@ public class EggController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -114,6 +116,7 @@ public class EggController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -135,9 +138,11 @@ public class EggController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -149,6 +154,7 @@ public class EggController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderCrystalController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderCrystalController.java index e91747e38..bff405769 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderCrystalController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderCrystalController.java @@ -60,6 +60,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderCrystalNPC(this)); } + return super.getBukkitEntity(); } @@ -90,6 +91,7 @@ public class EnderCrystalController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -100,6 +102,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,6 +124,7 @@ public class EnderCrystalController extends MobEntityController { } else { super.tick(); } + } @Override @@ -132,6 +136,7 @@ public class EnderCrystalController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderPearlController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderPearlController.java index b9501a8f2..519b737d1 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderPearlController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderPearlController.java @@ -61,6 +61,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderPearlNPC(this)); } + return super.getBukkitEntity(); } @@ -91,6 +92,7 @@ public class EnderPearlController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -101,6 +103,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -122,9 +125,11 @@ public class EnderPearlController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -136,6 +141,7 @@ public class EnderPearlController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderSignalController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderSignalController.java index 3b9a03c68..70e71b0c9 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderSignalController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderSignalController.java @@ -61,6 +61,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderSignalNPC(this)); } + return super.getBukkitEntity(); } @@ -91,6 +92,7 @@ public class EnderSignalController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -101,6 +103,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -122,6 +125,7 @@ public class EnderSignalController extends MobEntityController { } else { super.tick(); } + } @Override @@ -133,6 +137,7 @@ public class EnderSignalController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EvokerFangsController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EvokerFangsController.java index be4d35676..7ef3954c9 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EvokerFangsController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EvokerFangsController.java @@ -58,6 +58,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EvokerFangsNPC(this)); } + return super.getBukkitEntity(); } @@ -98,6 +99,7 @@ public class EvokerFangsController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -108,6 +110,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -128,6 +131,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -139,6 +143,7 @@ public class EvokerFangsController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ExperienceOrbController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ExperienceOrbController.java index ffadb9b56..58333682c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ExperienceOrbController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ExperienceOrbController.java @@ -54,6 +54,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ExperienceOrbNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class ExperienceOrbController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class ExperienceOrbController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class ExperienceOrbController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FallingBlockController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FallingBlockController.java index 482ac0008..ede78917f 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FallingBlockController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FallingBlockController.java @@ -70,6 +70,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FallingBlockNPC(this)); } + return super.getBukkitEntity(); } @@ -100,6 +101,7 @@ public class FallingBlockController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -110,6 +112,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -119,6 +122,7 @@ public class FallingBlockController extends AbstractEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -143,9 +147,11 @@ public class FallingBlockController extends AbstractEntityController { setDeltaMovement(mot); move(MoverType.SELF, mot); } + } else { super.tick(); } + } @Override @@ -157,6 +163,7 @@ public class FallingBlockController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FireworkController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FireworkController.java index 62f33a729..35b842fdf 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FireworkController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FireworkController.java @@ -55,6 +55,7 @@ public class FireworkController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FireworkNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class FireworkController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class FireworkController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class FireworkController extends MobEntityController { } else { super.tick(); } + } @Override @@ -127,6 +131,7 @@ public class FireworkController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FishingHookController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FishingHookController.java index cb7843da5..91081c0a3 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FishingHookController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FishingHookController.java @@ -86,6 +86,7 @@ public class FishingHookController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FishingHookNPC(this)); } + return super.getBukkitEntity(); } @@ -116,6 +117,7 @@ public class FishingHookController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -126,6 +128,7 @@ public class FishingHookController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -149,6 +152,7 @@ public class FishingHookController extends MobEntityController { } else { super.tick(); } + } @Override @@ -160,6 +164,7 @@ public class FishingHookController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/GlowItemFrameController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/GlowItemFrameController.java index a3c456d39..d8a88b80e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/GlowItemFrameController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/GlowItemFrameController.java @@ -66,6 +66,7 @@ public class GlowItemFrameController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GlowItemFrameNPC(this)); } + return super.getBukkitEntity(); } @@ -96,6 +97,7 @@ public class GlowItemFrameController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -106,6 +108,7 @@ public class GlowItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -132,6 +135,7 @@ public class GlowItemFrameController extends MobEntityController { } else { super.tick(); } + } @Override @@ -143,6 +147,7 @@ public class GlowItemFrameController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/InteractionController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/InteractionController.java index 4e8f5fa58..24b6fed2a 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/InteractionController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/InteractionController.java @@ -54,6 +54,7 @@ public class InteractionController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new InteractionNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class InteractionController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class InteractionController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class InteractionController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class InteractionController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemController.java index eb0bddb16..57d7c9b16 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemController.java @@ -67,6 +67,7 @@ public class ItemController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemNPC(this)); } + return super.getBukkitEntity(); } @@ -96,6 +97,7 @@ public class ItemController extends AbstractEntityController { if (npc == null) { super.playerTouch(entityhuman); } + } @Override @@ -104,6 +106,7 @@ public class ItemController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -114,6 +117,7 @@ public class ItemController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -135,6 +139,7 @@ public class ItemController extends AbstractEntityController { } else { super.tick(); } + } @Override @@ -146,6 +151,7 @@ public class ItemController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemDisplayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemDisplayController.java index f6d6b6f22..94672533e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemDisplayController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemDisplayController.java @@ -42,6 +42,7 @@ public class ItemDisplayController extends MobEntityController { if (npc != null) { handle.setItemStack(CraftItemStack.asNMSCopy(npc.getItemProvider().get())); } + return handle.getBukkitEntity(); } @@ -67,6 +68,7 @@ public class ItemDisplayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemDisplayNPC(this)); } + return super.getBukkitEntity(); } @@ -97,6 +99,7 @@ public class ItemDisplayController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -107,6 +110,7 @@ public class ItemDisplayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -127,6 +131,7 @@ public class ItemDisplayController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -138,6 +143,7 @@ public class ItemDisplayController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemFrameController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemFrameController.java index 7b5568aac..f18c335b8 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemFrameController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemFrameController.java @@ -65,6 +65,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemFrameNPC(this)); } + return super.getBukkitEntity(); } @@ -95,6 +96,7 @@ public class ItemFrameController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -105,6 +107,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -131,6 +134,7 @@ public class ItemFrameController extends MobEntityController { } else { super.tick(); } + } @Override @@ -142,6 +146,7 @@ public class ItemFrameController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LargeFireballController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LargeFireballController.java index c0f22ffce..98e6dfee8 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LargeFireballController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LargeFireballController.java @@ -54,6 +54,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LargeFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class LargeFireballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +106,7 @@ public class LargeFireballController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -124,9 +128,11 @@ public class LargeFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -138,6 +144,7 @@ public class LargeFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LeashController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LeashController.java index 5833a0487..721bd9578 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LeashController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LeashController.java @@ -55,6 +55,7 @@ public class LeashController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LeashNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class LeashController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class LeashController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,6 +124,7 @@ public class LeashController extends MobEntityController { } else { super.tick(); } + } @Override @@ -132,6 +136,7 @@ public class LeashController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LlamaSpitController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LlamaSpitController.java index 7d9dea40d..b50013ba8 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LlamaSpitController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LlamaSpitController.java @@ -71,6 +71,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LlamaSpitNPC(this)); } + return super.getBukkitEntity(); } @@ -101,6 +102,7 @@ public class LlamaSpitController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -111,6 +113,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -132,9 +135,11 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -146,6 +151,7 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MarkerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MarkerController.java index d0681ea0d..62fb7c3cf 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MarkerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MarkerController.java @@ -54,6 +54,7 @@ public class MarkerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MarkerNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class MarkerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class MarkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class MarkerController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class MarkerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartChestController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartChestController.java index abf0c47c6..ea33b7fa9 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartChestController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartChestController.java @@ -55,6 +55,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartChestNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class MinecartChestController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class MinecartChestController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -127,6 +131,7 @@ public class MinecartChestController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartCommandController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartCommandController.java index 7bd5029df..d7ed367c9 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartCommandController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartCommandController.java @@ -55,6 +55,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartCommandNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class MinecartCommandController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class MinecartCommandController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -127,6 +131,7 @@ public class MinecartCommandController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartFurnaceController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartFurnaceController.java index 4e6cf9ea9..e0cb93b7c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartFurnaceController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartFurnaceController.java @@ -55,6 +55,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartFurnaceNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class MinecartFurnaceController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class MinecartFurnaceController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -127,6 +131,7 @@ public class MinecartFurnaceController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartHopperController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartHopperController.java index 50c723eef..5af9ac736 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartHopperController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartHopperController.java @@ -72,6 +72,7 @@ public class MinecartHopperController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +83,7 @@ public class MinecartHopperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class MinecartHopperController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -114,6 +117,7 @@ public class MinecartHopperController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartRideableController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartRideableController.java index 8d0d0fb1f..df397a6d2 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartRideableController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartRideableController.java @@ -54,6 +54,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartRideableNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class MinecartRideableController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class MinecartRideableController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -126,6 +130,7 @@ public class MinecartRideableController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartSpawnerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartSpawnerController.java index b10c4570b..57598c23c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartSpawnerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartSpawnerController.java @@ -72,6 +72,7 @@ public class MinecartSpawnerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +83,7 @@ public class MinecartSpawnerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class MinecartSpawnerController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -114,6 +117,7 @@ public class MinecartSpawnerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartTNTController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartTNTController.java index 9af7bc1af..94b4a7d7e 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartTNTController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartTNTController.java @@ -72,6 +72,7 @@ public class MinecartTNTController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -82,6 +83,7 @@ public class MinecartTNTController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +105,7 @@ public class MinecartTNTController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -114,6 +117,7 @@ public class MinecartTNTController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/PaintingController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/PaintingController.java index d701a72c5..cc07ebf1b 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/PaintingController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/PaintingController.java @@ -54,6 +54,7 @@ public class PaintingController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PaintingNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class PaintingController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class PaintingController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -120,6 +123,7 @@ public class PaintingController extends MobEntityController { } else { super.tick(); } + } @Override @@ -131,6 +135,7 @@ public class PaintingController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ShulkerBulletController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ShulkerBulletController.java index 84923b369..98ac2d80c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ShulkerBulletController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ShulkerBulletController.java @@ -54,6 +54,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ShulkerBulletNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class ShulkerBulletController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class ShulkerBulletController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class ShulkerBulletController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SmallFireballController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SmallFireballController.java index a05e2fe77..93d8a9bc1 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SmallFireballController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SmallFireballController.java @@ -54,6 +54,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SmallFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class SmallFireballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,9 +118,11 @@ public class SmallFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -129,6 +134,7 @@ public class SmallFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SnowballController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SnowballController.java index a66da4e71..8e9d0582c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SnowballController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SnowballController.java @@ -54,6 +54,7 @@ public class SnowballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnowballNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class SnowballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class SnowballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class SnowballController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class SnowballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SpectralArrowController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SpectralArrowController.java index f6e95c0e6..2f3ab8dff 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SpectralArrowController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SpectralArrowController.java @@ -55,6 +55,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SpectralArrowNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class SpectralArrowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class SpectralArrowController extends MobEntityController { } else { super.tick(); } + } @Override @@ -127,6 +131,7 @@ public class SpectralArrowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TNTPrimedController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TNTPrimedController.java index e928614e7..b94827845 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TNTPrimedController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TNTPrimedController.java @@ -55,6 +55,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TNTPrimedNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class TNTPrimedController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class TNTPrimedController extends MobEntityController { } else { super.tick(); } + } @Override @@ -127,6 +131,7 @@ public class TNTPrimedController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TextDisplayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TextDisplayController.java index 681a70a8f..fee9aeb88 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TextDisplayController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TextDisplayController.java @@ -54,6 +54,7 @@ public class TextDisplayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TextDisplayNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class TextDisplayController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class TextDisplayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class TextDisplayController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -125,6 +129,7 @@ public class TextDisplayController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownExpBottleController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownExpBottleController.java index b321ec8c2..4a0ee3cd0 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownExpBottleController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownExpBottleController.java @@ -55,6 +55,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ThrownExpBottleNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class ThrownExpBottleController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,9 +119,11 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -130,6 +135,7 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownPotionController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownPotionController.java index 2a8f95ea0..6e9418c57 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownPotionController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownPotionController.java @@ -58,7 +58,9 @@ public class ThrownPotionController extends MobEntityController { } else { NMSImpl.setBukkitEntity(this, new SplashThrownPotionNPC(this)); } + } + return super.getBukkitEntity(); } @@ -89,6 +91,7 @@ public class ThrownPotionController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +102,7 @@ public class ThrownPotionController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -120,6 +124,7 @@ public class ThrownPotionController extends MobEntityController { } else { super.tick(); } + } @Override @@ -131,6 +136,7 @@ public class ThrownPotionController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownTridentController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownTridentController.java index c7e3231b0..ef8f0386f 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownTridentController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownTridentController.java @@ -55,6 +55,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ThrownTridentNPC(this)); } + return super.getBukkitEntity(); } @@ -85,6 +86,7 @@ public class ThrownTridentController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class ThrownTridentController extends MobEntityController { } else { super.tick(); } + } @Override @@ -127,6 +131,7 @@ public class ThrownTridentController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TippedArrowController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TippedArrowController.java index 573e875bb..631aff32f 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TippedArrowController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TippedArrowController.java @@ -54,6 +54,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TippedArrowNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class TippedArrowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class TippedArrowController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class TippedArrowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/WitherSkullController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/WitherSkullController.java index 88be6ff24..7c92a1c99 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/WitherSkullController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/WitherSkullController.java @@ -54,6 +54,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitherSkullNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class WitherSkullController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class WitherSkullController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class WitherSkullController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CitizensBlockBreaker.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CitizensBlockBreaker.java index 094e5efbc..43ebecb4f 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CitizensBlockBreaker.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CitizensBlockBreaker.java @@ -47,6 +47,7 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { ItemStack current = getCurrentItem(); return current != null ? current.isCorrectToolForDrops(block) : false; } + } @Override @@ -65,10 +66,13 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { if (i > 0) { f += i * i + 1; } + } + if (MobEffectUtil.hasDigSpeed(handle)) { f *= 1.0F + (MobEffectUtil.getDigSpeedAmplification(handle) + 1) * 0.2F; } + if (handle.hasEffect(MobEffects.DIG_SLOWDOWN)) { float f1 = 1.0F; switch (handle.getEffect(MobEffects.DIG_SLOWDOWN).getAmplifier()) { @@ -85,15 +89,20 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { default: f1 = 8.1E-4F; } + f *= f1; } + if (handle.isEyeInFluid(FluidTags.WATER) && !EnchantmentHelper.hasAquaAffinity(handle)) { f /= 5.0F; } + } + if (!entity.isOnGround()) { f /= 5.0F; } + return f; } } \ No newline at end of file diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CitizensEntityTracker.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CitizensEntityTracker.java index f77c571d9..182c485c7 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CitizensEntityTracker.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CitizensEntityTracker.java @@ -37,6 +37,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { Bukkit.getPluginManager().callEvent(new NPCLinkToPlayerEvent(((NPCHolder) tracker).getNPC(), conn.getPlayer().getBukkitEntity())); } + return res; } @@ -48,6 +49,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + } public CitizensEntityTracker(ChunkMap map, TrackedEntity entry) { @@ -64,6 +66,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { if (REQUIRES_SYNC == null) { REQUIRES_SYNC = !Bukkit.isPrimaryThread(); } + boolean cancelled = Util.callPossiblySync(() -> { NPCSeenByPlayerEvent event = new NPCSeenByPlayerEvent(npc, entityplayer.getBukkitEntity()); try { @@ -72,6 +75,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { REQUIRES_SYNC = true; throw e; } + if (event.isCancelled()) return true; Integer trackingRange = npc.data(). get(NPC.Metadata.TRACKING_RANGE); @@ -83,7 +87,9 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + } + return false; }, REQUIRES_SYNC); @@ -100,6 +106,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return 0; } @@ -109,6 +116,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return false; } @@ -118,6 +126,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -127,6 +136,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return 0; } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EmptyAdvancementDataPlayer.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EmptyAdvancementDataPlayer.java index 6a61adaa8..cf674b0c6 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EmptyAdvancementDataPlayer.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EmptyAdvancementDataPlayer.java @@ -67,9 +67,11 @@ public class EmptyAdvancementDataPlayer extends PlayerAdvancements { for (MethodHandle handle : SETS) { ((Set) handle.invoke(data)).clear(); } + } catch (Throwable e) { e.printStackTrace(); } + } private static final MethodHandle PROGRESS = NMS.getFirstGetter(PlayerAdvancements.class, Map.class); diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityMoveControl.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityMoveControl.java index 6c696c7d8..9af054aef 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityMoveControl.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityMoveControl.java @@ -64,15 +64,18 @@ public class EntityMoveControl extends MoveControl { if (f3 > f2) { f3 = f2; } + if (f3 < -f2) { f3 = -f2; } + float f4 = f + f3; if (f4 < 0.0F) { f4 += 360.0F; } else if (f4 > 360.0F) { f4 -= 360.0F; } + return f4; } @@ -102,6 +105,7 @@ public class EntityMoveControl extends MoveControl { this.entity.setYRot(rotlerp(this.entity.getYRot(), f, 90.0F)); NMS.setHeadYaw(entity.getBukkitEntity(), this.entity.getYRot()); } + float movement = (float) (this.speedMod * this.entity.getAttribute(Attributes.MOVEMENT_SPEED).getValue()); this.entity.setSpeed(movement); this.entity.zza = movement; @@ -110,13 +114,17 @@ public class EntityMoveControl extends MoveControl { if (((Slime) entity).isAggressive()) { this.jumpTicks /= 3; } + ((Slime) entity).getJumpControl().jump(); } else if (dY >= NMS.getStepHeight(entity.getBukkitEntity()) && dXZ < 0.4D) { if (entity instanceof Mob) { ((Mob) entity).getJumpControl().jump(); } + entity.setJumping(true); } + } + } } \ No newline at end of file diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityNavigation.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityNavigation.java index 51f1aa5f4..4fdf6bf15 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityNavigation.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityNavigation.java @@ -154,7 +154,7 @@ public class EntityNavigation 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; @@ -189,21 +189,26 @@ public class EntityNavigation extends PathNavigation { while (var2.getY() > this.level.getMinBuildHeight() && this.level.getBlockState(var2).isAir()) { var2 = var2.below(); } + if (var2.getY() > this.level.getMinBuildHeight()) return supercreatePath(var2.above(), var1); while (var2.getY() < this.level.getMaxBuildHeight() && this.level.getBlockState(var2).isAir()) { var2 = var2.above(); } + var0 = var2; } + if (this.level.getBlockState(var0).getMaterial().isSolid()) { BlockPos var2 = var0.above(); while (var2.getY() < this.level.getMaxBuildHeight() && this.level.getBlockState(var2).getMaterial().isSolid()) { var2 = var2.above(); } + return supercreatePath(var2, var1); } + return supercreatePath(var0, var1); } @@ -268,9 +273,11 @@ public class EntityNavigation extends PathNavigation { } else { this.isStuck = false; } + this.lastStuckCheck = this.tick; this.lastStuckCheckPos = var0; } + if (this.path != null && !this.path.isDone()) { BlockPos blockPos = this.path.getNextNodePos(); if (blockPos.equals(this.timeoutCachedNode)) { @@ -280,11 +287,14 @@ public class EntityNavigation extends PathNavigation { double var2 = var0.distanceTo(Vec3.atBottomCenterOf(this.timeoutCachedNode)); this.timeoutLimit = this.mob.getSpeed() > 0.0F ? var2 / this.mob.getSpeed() * 1000.0D : 0.0D; } + if (this.timeoutLimit > 0.0D && this.timeoutTimer > this.timeoutLimit * 3.0D) { timeoutPath(); } + this.lastTimeoutCheck = System.currentTimeMillis(); } + } @Override @@ -300,6 +310,7 @@ public class EntityNavigation extends PathNavigation { if (var8 || canCutCorner(this.path.getNextNode().type) && shouldTargetNextNodeInDirection(var0)) { this.path.advance(); } + doStuckDetection(var0); } @@ -340,6 +351,7 @@ public class EntityNavigation extends PathNavigation { return this.mob.getBlockY(); } else return Mth.floor(this.mob.getY() + 0.5); + } @Override @@ -402,9 +414,11 @@ public class EntityNavigation extends PathNavigation { this.path = null; return false; } + if (!var0.sameAs(this.path)) { this.path = var0; } + if (isDone()) return false; trimPath(); @@ -426,9 +440,11 @@ public class EntityNavigation extends PathNavigation { this.timeLastRecompute = this.level.getGameTime(); this.hasDelayedRecomputation = false; } + } else { this.hasDelayedRecomputation = true; } + } @Override @@ -476,7 +492,8 @@ public class EntityNavigation extends PathNavigation { @Override public boolean shouldRecomputePath(BlockPos var0) { - if (this.hasDelayedRecomputation || ((this.path == null) || this.path.isDone() || (this.path.getNodeCount() == 0))) + if (this.hasDelayedRecomputation + || ((this.path == null) || this.path.isDone() || (this.path.getNodeCount() == 0))) return false; else { Node var1 = this.path.getEndNode(); @@ -484,6 +501,7 @@ public class EntityNavigation extends PathNavigation { (var1.z + this.mob.getZ()) / 2.0D); return var0.closerToCenterThan(var2, this.path.getNodeCount() - this.path.getNextNodeIndex()); } + } private boolean shouldTargetNextNodeInDirection(Vec3 var0) { @@ -519,8 +537,11 @@ public class EntityNavigation extends PathNavigation { if (var2 != null && var1.y >= var2.y) { this.path.replaceNode(var0 + 1, var1.cloneAndMove(var2.x, var1.y + 1, var2.z)); } + } + } + } @Override @@ -529,6 +550,7 @@ public class EntityNavigation extends PathNavigation { if (this.hasDelayedRecomputation) { recomputePath(); } + if (isDone()) return; if (canUpdatePath()) { @@ -540,7 +562,9 @@ public class EntityNavigation extends PathNavigation { && Mth.floor(vec31.z) == Mth.floor(vec32.z)) { this.path.advance(); } + } + if (isDone()) return; Vec3 var0 = this.path.getNextEntityPos(this.mob); @@ -565,7 +589,10 @@ public class EntityNavigation extends PathNavigation { this.path.truncateNodes(var0); return; } + } + } + } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityNodeEvaluator.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityNodeEvaluator.java index 98aa523b4..a802c1310 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityNodeEvaluator.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityNodeEvaluator.java @@ -128,7 +128,9 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (this.hasCollisions(var20)) { var8 = null; } + } + } if (!this.isAmphibious() && var12 == BlockPathTypes.WATER && !this.canFloat()) { @@ -144,6 +146,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var8 = this.getNodeAndUpdateCostToMax(var0, var1, var2, var12, this.mvmt.getPathfindingMalus(var12)); } + } if (var12 == BlockPathTypes.OPEN) { @@ -168,6 +171,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var13 < 0.0F) return this.getBlockedNode(var0, var1, var2); } + } if (doesBlockHavePartialCollision(var12) && var8 == null) { @@ -176,9 +180,12 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var8.type = var12; var8.costMalus = var12.getMalus(); } + } + return var8; } + } private Node getBlockedNode(int var0, int var1, int var2) { @@ -213,6 +220,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (mvmt.getPathfindingMalus(varr9) >= mvmt.getPathfindingMalus(var7)) { var7 = varr9; } + } if (var6 == BlockPathTypes.OPEN && mvmt.getPathfindingMalus(var7) == 0.0F && this.entityWidth <= 1) @@ -243,6 +251,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var4.getPathfindingMalus(varr9) >= var4.getPathfindingMalus(var7)) { var7 = varr9; } + } if (var6 == BlockPathTypes.OPEN && var4.getPathfindingMalus(var7) == 0.0F && this.entityWidth <= 1) @@ -272,7 +281,9 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var4.add(var13); } + } + } return var5; @@ -376,6 +387,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { ++var0; var2 = this.level.getBlockState(var1.set(this.mob.getX(), var0, this.mob.getZ())); } + } else if (this.mob.isOnGround()) { var0 = Mth.floor(this.mob.getY() + 0.5); } else { @@ -386,6 +398,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var0 = var3.above().getY(); } + } else { while (true) { if (!this.mob.canStandOnFluid(var2.getFluidState())) { @@ -396,6 +409,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { ++var0; var2 = this.level.getBlockState(var1.set(this.mob.getX(), var0, this.mob.getZ())); } + } var3 = this.mob.blockPosition(); @@ -438,6 +452,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { && (var1.y < var0.y || var1.costMalus >= 0.0F || var4); } else return false; + } else return false; } @@ -479,8 +494,11 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var0.getFluidState(var1).is(FluidTags.WATER)) return BlockPathTypes.WATER_BORDER; } + } + } + } return var2; @@ -560,6 +578,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var6 == BlockPathTypes.POWDER_SNOW) { var5 = BlockPathTypes.DANGER_POWDER_SNOW; } + } if (var5 == BlockPathTypes.WALKABLE) { diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityPathfinder.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityPathfinder.java index d46b2bb22..d8731dece 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityPathfinder.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EntityPathfinder.java @@ -80,13 +80,17 @@ public class EntityPathfinder extends PathFinder { target.setReached(); var9.add(target); } + } + if (!var9.isEmpty()) { break; } + if (node.distanceTo(var1) >= var3) { continue; } + int i = this.nodeEvaluator.getNeighbors(this.neighbors, node); for (int var13 = 0; var13 < i; var13++) { Node var14 = this.neighbors[var13]; @@ -103,9 +107,13 @@ public class EntityPathfinder extends PathFinder { var14.f = var14.g + var14.h; this.openSet.insert(var14); } + } + } + } + Optional var11 = !var9.isEmpty() ? var9.stream().map(p -> reconstructPath(p.getBestNode(), var2.get(p), true)).min( Comparator.comparingInt(Path::getNodeCount)) @@ -123,13 +131,15 @@ public class EntityPathfinder extends PathFinder { var4.updateBest(var5, var0); var2 = Math.min(var5, var2); } + return var2; } public Stream getFallbackDestinations(Map var1, Set var5) { if (Setting.DISABLE_MC_NAVIGATION_FALLBACK.asBoolean()) return Stream.empty(); - return var5.stream().map(var1x -> this.reconstructPath(var1x.getBestNode(), var1.get(var1x), false)).sorted(Comparator.comparingDouble(Path::getDistToTarget).thenComparingInt(Path::getNodeCount)); + return var5.stream().map(var1x -> this.reconstructPath(var1x.getBestNode(), var1.get(var1x), false)) + .sorted(Comparator.comparingDouble(Path::getDistToTarget).thenComparingInt(Path::getNodeCount)); } private Path reconstructPath(Node var0, BlockPos var1, boolean var2) { @@ -140,6 +150,7 @@ public class EntityPathfinder extends PathFinder { var4 = var4.cameFrom; var3.add(0, var4); } + return new Path(var3, var1, var2); } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/ForwardingNPCHolder.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/ForwardingNPCHolder.java index ab1f04370..801c7dd79 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/ForwardingNPCHolder.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/ForwardingNPCHolder.java @@ -17,6 +17,7 @@ public interface ForwardingNPCHolder extends NPCHolder, Entity { () -> Joiner.on(' ').join("ForwardingNPCHolder with an improper bukkit entity", this, handle)); return null; } + return ((NPCHolder) handle).getNPC(); } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/MobAI.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/MobAI.java index fd7b84b81..cd15d114a 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/MobAI.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/MobAI.java @@ -41,6 +41,7 @@ public interface MobAI { if (!nav.isDone()) { nav.tick(); } + } default void updatePathfindingRange(float range) { @@ -170,6 +171,7 @@ public interface MobAI { }; } else if (handle instanceof MobAI) return (MobAI) handle; + return null; } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/NMSImpl.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/NMSImpl.java index 3df155983..a594c258c 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/NMSImpl.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/NMSImpl.java @@ -389,17 +389,21 @@ public class NMSImpl implements NMSBridge { viewDistance = (int) PLAYER_CHUNK_MAP_VIEW_DISTANCE_GETTER.invoke(chunkMap); PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER.invoke(chunkMap, -1); } + } catch (Throwable e) { e.printStackTrace(); } + boolean success = getHandle(entity).level.addFreshEntity(getHandle(entity), custom); try { if (chunkMap != null) { PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER.invoke(chunkMap, viewDistance); } + } catch (Throwable e) { e.printStackTrace(); } + return success; } @@ -415,12 +419,14 @@ public class NMSImpl implements NMSBridge { } else if (!handle.level.players().contains(handle)) { ((List) handle.level.players()).add(handle); } + try { CHUNKMAP_UPDATE_PLAYER_STATUS.invoke(((ServerLevel) handle.level).getChunkSource().chunkMap, handle, !remove); } catch (Throwable e) { e.printStackTrace(); } + // PlayerUpdateTask.addOrRemove(entity, remove); } @@ -433,11 +439,13 @@ public class NMSImpl implements NMSBridge { PlayerAnimation.ARM_SWING.play((Player) source.getBukkitEntity()); return; } + boolean hasAttackDamage = source.getAttributes().hasAttribute(Attributes.ATTACK_DAMAGE); if (source instanceof Mob && hasAttackDamage) { ((Mob) source).doHurtTarget(target); return; } + float f = (float) (hasAttackDamage ? source.getAttributeValue(Attributes.ATTACK_DAMAGE) : 1f); int i = 0; f += EnchantmentHelper.getDamageBonus(source.getMainHandItem(), target.getMobType()); @@ -450,10 +458,12 @@ public class NMSImpl implements NMSBridge { Math.cos(source.getYRot() * Math.PI / 180.0F) * i * 0.5F); source.setDeltaMovement(source.getDeltaMovement().multiply(0.6, 1, 0.6)); } + int fireAspectLevel = EnchantmentHelper.getFireAspect(source); if (fireAspectLevel > 0) { target.setSecondsOnFire(fireAspectLevel * 4, false); } + if (target instanceof ServerPlayer) { ServerPlayer entityhuman = (ServerPlayer) target; ItemStack itemstack = source.getMainHandItem(); @@ -465,8 +475,11 @@ public class NMSImpl implements NMSBridge { entityhuman.getCooldowns().addCooldown(Items.SHIELD, 100); source.level.broadcastEntityEvent(entityhuman, (byte) 30); } + } + } + EnchantmentHelper.doPostHurtEffects(source, target); EnchantmentHelper.doPostDamageEffects(target, source); } @@ -484,7 +497,9 @@ public class NMSImpl implements NMSBridge { } catch (Throwable t) { t.printStackTrace(); } + } + } @Override @@ -521,16 +536,21 @@ public class NMSImpl implements NMSBridge { if (!changed && entity.equipmentHasChanged(old, curr)) { changed = true; } + equipment.put(slot, curr); } + if (changed) { List> vals = Lists.newArrayList(); for (EquipmentSlot slot : EquipmentSlot.values()) { vals.add(com.mojang.datafixers.util.Pair.of(slot, equipment.get(slot))); } + agg.send(new ClientboundSetEquipmentPacket(handle.getId(), vals)); } + } + tracker.sendChanges(); } @@ -551,7 +571,9 @@ public class NMSImpl implements NMSBridge { if (callback != null) { callback.accept(entity); } + } + linked.clear(); } }; @@ -600,10 +622,13 @@ public class NMSImpl implements NMSBridge { if (df != null) { bserver = df.dragonEvent; } + } + } catch (Throwable e) { e.printStackTrace(); } + if (bserver == null) return null; BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10); @@ -612,6 +637,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return ret; } @@ -722,12 +748,14 @@ public class NMSImpl implements NMSBridge { if (SKULL_META_PROFILE == null) return null; } + try { return (GameProfile) SKULL_META_PROFILE.invoke(meta); } catch (Throwable e) { e.printStackTrace(); return null; } + } @Override @@ -740,6 +768,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { throw new CommandException(Messages.INVALID_SOUND); } + } @Override @@ -755,6 +784,7 @@ public class NMSImpl implements NMSBridge { LivingEntity handle = getHandle((org.bukkit.entity.LivingEntity) npc.getEntity()); if (handle == null) { } + return DEFAULT_SPEED; // return (float) // handle.getAttribute(Attributes.d).getValue(); @@ -768,7 +798,8 @@ public class NMSImpl implements NMSBridge { @Override public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable nodes, final NavigatorParameters params) { - List list = Lists. newArrayList(Iterables. transform(nodes, input -> new Node(input.getBlockX(), input.getBlockY(), input.getBlockZ()))); + List list = Lists. newArrayList(Iterables. transform(nodes, + input -> new Node(input.getBlockX(), input.getBlockY(), input.getBlockZ()))); Node last = list.size() > 0 ? list.get(list.size() - 1) : null; final Path path = new Path(list, last != null ? new BlockPos(last.x, last.y, last.z) : null, true); return getTargetNavigator(entity, params, input -> input.moveTo(path, params.speed())); @@ -777,7 +808,8 @@ public class NMSImpl implements NMSBridge { @Override public MCNavigator getTargetNavigator(final org.bukkit.entity.Entity entity, final Location dest, final NavigatorParameters params) { - return getTargetNavigator(entity, params, input -> input.moveTo(dest.getX(), dest.getY(), dest.getZ(), params.speed())); + return getTargetNavigator(entity, params, + input -> input.moveTo(dest.getX(), dest.getY(), dest.getZ(), params.speed())); } private MCNavigator getTargetNavigator(final org.bukkit.entity.Entity entity, final NavigatorParameters params, @@ -796,7 +828,9 @@ public class NMSImpl implements NMSBridge { } else { ((Mob) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater + 1F); } + } + navigation.getNodeEvaluator().setCanOpenDoors(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; @@ -808,6 +842,7 @@ public class NMSImpl implements NMSBridge { Node pp = path.getNode(i); blocks.add(entity.getWorld().getBlockAt(pp.x, pp.y, pp.z)); } + return blocks; } @@ -828,13 +863,16 @@ public class NMSImpl implements NMSBridge { List blocks = getBlocks(entity, path); Util.sendBlockChanges(blocks, null); } + if (oldWater >= 0) { if (raw instanceof MobAI) { ((MobAI) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater); } else { ((Mob) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater); } + } + navigation.stop(); } @@ -849,12 +887,15 @@ public class NMSImpl implements NMSBridge { SIZE_FIELD_SETTER.invoke(handle, new EntityDimensions(Math.min(0.99F, size.width), size.height, false)); } + } catch (Throwable e) { e.printStackTrace(); } + if (!function.apply(navigation)) { reason = CancelReason.STUCK; } + try { SIZE_FIELD_SETTER.invoke(handle, size); } catch (Throwable e) { @@ -862,11 +903,14 @@ public class NMSImpl implements NMSBridge { // minecraft requires that an entity fit onto both blocks if width >= 1f, but we'd prefer to // make it just fit on 1 so hack around it a bit. } + if (params.debug() && getPathEntity(navigation) != null) { Util.sendBlockChanges(getBlocks(entity, getPathEntity(navigation)), Material.DANDELION); } + lastSpeed = params.speed(); } + navigation.setSpeedModifier(params.speed()); return navigation.isDone(); } @@ -1125,30 +1169,37 @@ public class NMSImpl implements NMSBridge { if (zDiff < 0.0) { yaw += Math.abs(180 - yaw) * 2; } + if (handle.getBukkitEntity().getType() == EntityType.ENDER_DRAGON) { yaw = Util.getDragonYaw(handle.getBukkitEntity(), xDiff, zDiff); } else { yaw = yaw - 90; } + if (headOnly) { setHeadYaw(entity, (float) yaw); } else { look(entity, (float) yaw, (float) pitch); } + return; } + if (handle instanceof Mob) { ((Mob) handle).getLookControl().setLookAt(to.getX(), to.getY(), to.getZ(), ((Mob) handle).getHeadRotSpeed(), ((Mob) handle).getMaxHeadXRot()); while (((LivingEntity) handle).yHeadRot >= 180F) { ((LivingEntity) handle).yHeadRot -= 360F; } + while (((LivingEntity) handle).yHeadRot < -180F) { ((LivingEntity) handle).yHeadRot += 360F; } + } else if (handle instanceof NPCHolder) { ((NPCHolder) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1161,18 +1212,22 @@ public class NMSImpl implements NMSBridge { } else { look(from, to.getLocation(), false, true); } + } else if (handle instanceof Mob) { ((Mob) handle).getLookControl().setLookAt(target, ((Mob) handle).getHeadRotSpeed(), ((Mob) handle).getMaxHeadXRot()); while (((LivingEntity) handle).yHeadRot >= 180F) { ((LivingEntity) handle).yHeadRot -= 360F; } + while (((LivingEntity) handle).yHeadRot < -180F) { ((LivingEntity) handle).yHeadRot += 360F; } + } else if (handle instanceof NPCHolder) { ((NPCHolder) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1240,7 +1295,9 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } + } @Override @@ -1268,6 +1325,7 @@ public class NMSImpl implements NMSBridge { this, anvil), this); } + return this.bukkitEntity; } }; @@ -1315,11 +1373,13 @@ public class NMSImpl implements NMSBridge { if (key == null || type == null) { continue; } + CITIZENS_ENTITY_TYPES.put(clazz, type); int code = ENTITY_REGISTRY.getId(type); ENTITY_REGISTRY.put(code, key, type); return; } + throw new IllegalArgumentException("unable to find valid entity superclass for class " + clazz.toString()); } @@ -1357,6 +1417,7 @@ public class NMSImpl implements NMSBridge { hook.hookedIn = null; hook.getBukkitEntity().remove(); } + } @Override @@ -1396,6 +1457,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + sendPacket(recipient, packet); return true; } @@ -1410,6 +1472,7 @@ public class NMSImpl implements NMSBridge { entities[i] = (ServerPlayer) skinnable; i++; } + sendPacket(recipient, new ClientboundPlayerInfoRemovePacket( skinnableNPCs.stream().map(e -> ((ServerPlayer) e).getUUID()).collect(Collectors.toList()))); } @@ -1428,6 +1491,7 @@ public class NMSImpl implements NMSBridge { if (TEAM_FIELD == null) { TEAM_FIELD = NMS.getGetter(team.getClass(), "team"); } + try { PlayerTeam nmsTeam = (PlayerTeam) TEAM_FIELD.invoke(team); if (mode == 1) { @@ -1435,9 +1499,11 @@ public class NMSImpl implements NMSBridge { } else { sendPacket(recipient, ClientboundSetPlayerTeamPacket.createAddOrModifyPacket(nmsTeam, mode == 0)); } + } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1486,6 +1552,7 @@ public class NMSImpl implements NMSBridge { } return; } + } @Override @@ -1497,6 +1564,7 @@ public class NMSImpl implements NMSBridge { } else { getHandle(entity).setCustomName((Component) component); } + } @Override @@ -1508,6 +1576,7 @@ public class NMSImpl implements NMSBridge { if (ai != null) { ai.getMoveControl().setWantedPosition(x, y, z, speed); } + } @Override @@ -1532,6 +1601,7 @@ public class NMSImpl implements NMSBridge { if (!(handle instanceof net.minecraft.world.entity.player.Player)) { handle.setYBodyRot(yaw); } + handle.setYHeadRot(yaw); } @@ -1577,9 +1647,11 @@ public class NMSImpl implements NMSBridge { FLYING_MOVECONTROL_FLOAT_SETTER.invoke(mob.getMoveControl(), npc.data().get("flying-nogravity-float")); npc.data().remove("flying-nogravity-float"); } + } catch (Throwable t) { t.printStackTrace(); } + } @Override @@ -1616,11 +1688,13 @@ public class NMSImpl implements NMSBridge { if (SET_PROFILE_METHOD == null) return; } + try { SET_PROFILE_METHOD.invoke(meta, profile); } catch (Throwable t) { t.printStackTrace(); } + } @Override @@ -1634,6 +1708,7 @@ public class NMSImpl implements NMSBridge { } else { ((LivingEntity) handle).setJumping(true); } + } @Override @@ -1651,6 +1726,7 @@ public class NMSImpl implements NMSBridge { if (entity instanceof Player) { ((Player) entity).setSneaking(sneaking); } + Pose pose = sneaking ? Pose.CROUCHING : Pose.STANDING; getHandle(entity).setPose(pose); } @@ -1695,6 +1771,7 @@ public class NMSImpl implements NMSBridge { if (warden.hasPose(Pose.EMERGING)) { warden.setPose(Pose.STANDING); } + }, 134); } else if (pose == org.bukkit.entity.Pose.ROARING) { if (warden.hasPose(Pose.ROARING)) @@ -1707,10 +1784,12 @@ public class NMSImpl implements NMSBridge { if (warden.hasPose(Pose.ROARING)) { warden.setPose(Pose.STANDING); } + }, 84); } else { warden.setPose(Pose.STANDING); } + } @Override @@ -1728,6 +1807,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return false; } @@ -1739,6 +1819,7 @@ public class NMSImpl implements NMSBridge { ENTITY_REGISTRY_SETTER.invoke(null, ENTITY_REGISTRY.get()); } catch (Throwable e) { } + } @Override @@ -1760,6 +1841,7 @@ public class NMSImpl implements NMSBridge { handle.setDeltaMovement(handle.getDeltaMovement().x, handle.getDeltaMovement().y + power, handle.getDeltaMovement().z); } + } @Override @@ -1851,6 +1933,7 @@ public class NMSImpl implements NMSBridge { menuType = MenuType.CRAFTING; break; } + handle.connection.send(new ClientboundOpenScreenPacket(handle.containerMenu.containerId, menuType, MutableComponent.create(new LiteralContents(newTitle)))); player.updateInventory(); @@ -1872,6 +1955,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1883,6 +1967,7 @@ public class NMSImpl implements NMSBridge { ((MobAI) en).updatePathfindingRange(pathfindingRange); return; } + if (NAVIGATION_PATHFINDER == null) return; PathNavigation navigation = ((Mob) en).getNavigation(); @@ -1894,6 +1979,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } private static class CitizensInventoryAnvil extends CraftInventoryAnvil implements ForwardingInventory { @@ -2004,6 +2090,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + float oldw = size.width; float oldl = size.height; cb.accept(datawatcherobject); @@ -2011,6 +2098,7 @@ public class NMSImpl implements NMSBridge { living.setPos(living.getX() - 0.01, living.getY(), living.getZ() - 0.01); living.setPos(living.getX() + 0.01, living.getY(), living.getZ() + 0.01); } + } public static void clearGoals(NPC npc, GoalSelector... goalSelectors) { @@ -2023,14 +2111,17 @@ public class NMSImpl implements NMSBridge { if (!list.isEmpty()) { npc.data().set("selector" + i, Lists.newArrayList(list)); } + list.clear(); } catch (Exception e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } catch (Throwable e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } + i++; } + } private static CompoundTag convertNBT(net.minecraft.nbt.CompoundTag tag) { @@ -2040,6 +2131,7 @@ public class NMSImpl implements NMSBridge { for (String key : tag.getAllKeys()) { tags.put(key, convertNBT(key, tag.get(key))); } + return new CompoundTag("", tags); } @@ -2070,8 +2162,10 @@ public class NMSImpl implements NMSBridge { for (int i = 0; i < list.size(); i++) { converted.add(convertNBT("", list.get(i))); } + return new ListTag(key, tagType, converted); } + } else if (base instanceof net.minecraft.nbt.CompoundTag) return convertNBT((net.minecraft.nbt.CompoundTag) base); else if (base instanceof net.minecraft.nbt.EndTag) @@ -2087,6 +2181,7 @@ public class NMSImpl implements NMSBridge { d0 = 0.01D; entity.fallDistance = 0.0F; } + FluidState fluid = entity.level.getFluidState(entity.blockPosition()); if (entity.isInWater() && !entity.canStandOnFluid(fluid)) { double d1 = entity.getY(); @@ -2096,22 +2191,27 @@ public class NMSImpl implements NMSBridge { if (f2 > 3.0F) { f2 = 3.0F; } + if (!entity.isOnGround()) { f2 *= 0.5F; } + if (f2 > 0.0F) { f += (0.546F - f) * f2 / 3.0F; f1 += (entity.getSpeed() - f1) * f2 / 3.0F; } + if (entity.hasEffect(MobEffects.DOLPHINS_GRACE)) { f = 0.96F; } + entity.moveRelative(f1, vec3d); entity.move(MoverType.SELF, entity.getDeltaMovement()); Vec3 vec3d1 = entity.getDeltaMovement(); if (entity.horizontalCollision && entity.onClimbable()) { vec3d1 = new Vec3(vec3d1.x, 0.2D, vec3d1.z); } + entity.setDeltaMovement(vec3d1.multiply(f, 0.8D, f)); Vec3 vec3d2 = entity.getFluidFallingAdjustedMovement(d0, flag, entity.getDeltaMovement()); entity.setDeltaMovement(vec3d2); @@ -2119,6 +2219,7 @@ public class NMSImpl implements NMSBridge { && entity.isFree(vec3d2.x, vec3d2.y + 0.6D - entity.getY() + d1, vec3d2.z)) { entity.setDeltaMovement(vec3d2.x, 0.3D, vec3d2.z); } + } else if (entity.isInLava() && !entity.canStandOnFluid(fluid)) { double d1 = entity.getY(); entity.moveRelative(0.02F, vec3d); @@ -2130,19 +2231,23 @@ public class NMSImpl implements NMSBridge { } else { entity.setDeltaMovement(entity.getDeltaMovement().scale(0.5D)); } + if (!entity.isNoGravity()) { entity.setDeltaMovement(entity.getDeltaMovement().add(0.0D, -d0 / 4.0D, 0.0D)); } + Vec3 vec3d3 = entity.getDeltaMovement(); if (entity.horizontalCollision && entity.isFree(vec3d3.x, vec3d3.y + 0.6D - entity.getY() + d1, vec3d3.z)) { entity.setDeltaMovement(vec3d3.x, 0.3D, vec3d3.z); } + } else if (entity.isFallFlying()) { Vec3 vec3d4 = entity.getDeltaMovement(); if (vec3d4.y > -0.5D) { entity.fallDistance = 1.0F; } + Vec3 vec3d5 = entity.getLookAngle(); float f = entity.getXRot() * 0.017453292F; double d2 = Math.sqrt(vec3d5.x * vec3d5.x + vec3d5.z * vec3d5.z); @@ -2155,14 +2260,17 @@ public class NMSImpl implements NMSBridge { double d5 = vec3d4.y * -0.1D * f3; vec3d4 = vec3d4.add(vec3d5.x * d5 / d2, d5, vec3d5.z * d5 / d2); } + if (f < 0.0F && d2 > 0.0D) { double d5 = d3 * -Mth.sin(f) * 0.04D; vec3d4 = vec3d4.add(-vec3d5.x * d5 / d2, d5 * 3.2D, -vec3d5.z * d5 / d2); } + if (d2 > 0.0D) { vec3d4 = vec3d4.add((vec3d5.x / d2 * d3 - vec3d4.x) * 0.1D, 0.0D, (vec3d5.z / d2 * d3 - vec3d4.z) * 0.1D); } + entity.setDeltaMovement(vec3d4.multiply(0.99D, 0.98D, 0.99D)); entity.move(MoverType.SELF, entity.getDeltaMovement()); if (entity.horizontalCollision && !entity.level.isClientSide) { @@ -2173,11 +2281,14 @@ public class NMSImpl implements NMSBridge { entity.playSound(entity.getFallDamageSound0((int) f4), 1.0F, 1.0F); entity.hurt(entity.damageSources().flyIntoWall(), f4); } + } + if (entity.isOnGround() && !entity.level.isClientSide && entity.getSharedFlag(7) && !CraftEventFactory.callToggleGlideEvent(entity, false).isCancelled()) { entity.setSharedFlag(7, false); } + } else { BlockPos blockposition = BlockPos.containing(entity.getX(), entity.getBoundingBox().minY - 0.5D, entity.getZ()); @@ -2194,16 +2305,21 @@ public class NMSImpl implements NMSBridge { } else { d7 = 0.0D; } + } else if (!entity.isNoGravity()) { d7 -= d0; } + if (entity.shouldDiscardFriction()) { entity.setDeltaMovement(vec3d6.x, d7, vec3d6.z); } else { entity.setDeltaMovement(vec3d6.x * f, d7 * 0.98D, vec3d6.z * f); } + } + } + entity.calculateEntityAnimation(entity instanceof net.minecraft.world.entity.animal.FlyingAnimal); } @@ -2213,6 +2329,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -2248,6 +2365,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return null; } + } public static List> getPositionUpdate(org.bukkit.entity.Entity from, boolean position, Float bodyYaw, @@ -2256,9 +2374,11 @@ public class NMSImpl implements NMSBridge { if (bodyYaw == null) { bodyYaw = handle.getYRot(); } + if (pitch == null) { pitch = handle.getXRot(); } + List> toSend = Lists.newArrayList(); if (position) { TrackedEntity entry = ((ServerLevel) handle.level).getChunkSource().chunkMap.entityMap.get(handle.getId()); @@ -2269,6 +2389,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return Collections.emptyList(); } + Vec3 pos = handle.trackingPosition(); toSend.add(new ClientboundMoveEntityPacket.PosRot(handle.getId(), (short) vdc.encodeX(pos), (short) vdc.encodeY(pos), (short) vdc.encodeZ(pos), (byte) (bodyYaw * 256.0F / 360.0F), @@ -2277,9 +2398,11 @@ public class NMSImpl implements NMSBridge { toSend.add(new ClientboundMoveEntityPacket.Rot(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); } + if (headYaw != null) { toSend.add(new ClientboundRotateHeadPacket(handle, (byte) (headYaw * 256.0F / 360.0F))); } + return toSend; } @@ -2293,6 +2416,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -2326,6 +2450,7 @@ public class NMSImpl implements NMSBridge { if (mat != null) { minecart.setDisplayBlockState(BuiltInRegistries.BLOCK.byId(mat.getId()).defaultBlockState()); } + minecart.setDisplayOffset(offset); } @@ -2339,6 +2464,7 @@ public class NMSImpl implements NMSBridge { handle.setDeltaMovement(handle.getDeltaMovement().scale(0.9)); return true; } + return false; } @@ -2349,6 +2475,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void restoreGoals(NPC npc, GoalSelector... goalSelectors) { @@ -2363,13 +2490,16 @@ public class NMSImpl implements NMSBridge { if (old != null) { list.addAll(old); } + } catch (Exception e) { Messaging.logTr(Messages.ERROR_RESTORING_GOALS, e.getLocalizedMessage()); } catch (Throwable e) { Messaging.logTr(Messages.ERROR_RESTORING_GOALS, e.getLocalizedMessage()); } + i++; } + } public static void sendPacket(Player player, Packet packet) { @@ -2396,10 +2526,13 @@ public class NMSImpl implements NMSBridge { || location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) { continue; } + for (Packet packet : packets) { sendPacket(player, packet); } + } + } public static void sendPacketsNearby(Player from, Location location, Packet... packets) { @@ -2412,6 +2545,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setAttribute(LivingEntity entity, Attribute attribute, double value) { @@ -2429,8 +2563,10 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + attr = entity.getAttribute(attribute); } + attr.setBaseValue(value); } @@ -2440,6 +2576,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setFallingBlockState(FallingBlockEntity handle, BlockState state) { @@ -2448,6 +2585,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setLife(FishingHook entity, int life) { @@ -2456,6 +2594,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setLookControl(Mob mob, LookControl control) { @@ -2464,6 +2603,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setNotInSchool(AbstractFish entity) { @@ -2471,9 +2611,11 @@ public class NMSImpl implements NMSBridge { if (ENTITY_FISH_NUM_IN_SCHOOL != null) { ENTITY_FISH_NUM_IN_SCHOOL.invoke(entity, 2); } + } catch (Throwable ex) { ex.printStackTrace(); } + } public static void setSize(Entity entity, boolean justCreated) { @@ -2496,10 +2638,13 @@ public class NMSImpl implements NMSBridge { float f = entitysize.width - entitysize1.width; entity.move(MoverType.SELF, new Vec3(f, 0.0D, f)); } + } + } catch (Throwable e) { e.printStackTrace(); } + } public static void setSize(Entity entity, EntityDimensions size) { @@ -2510,6 +2655,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static Entity teleportAcrossWorld(Entity entity, ServerLevel worldserver, PositionImpl location) { @@ -2524,6 +2670,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + if (npc == null || sds == null) return null; npc.despawn(DespawnReason.PENDING_RESPAWN); @@ -2536,6 +2683,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return handle; } @@ -2550,6 +2698,7 @@ public class NMSImpl implements NMSBridge { } else if (entity instanceof MobAI) { ((MobAI) entity).tickAI(); } + } public static void updateMinecraftAIState(NPC npc, Mob entity) { @@ -2562,6 +2711,7 @@ public class NMSImpl implements NMSBridge { getBehaviorMap(entity).putAll(behavior); npc.data().remove("behavior-map"); } + } else { clearGoals(npc, entity.goalSelector, entity.targetSelector); TreeMap behaviorMap = getBehaviorMap(entity); @@ -2569,7 +2719,9 @@ public class NMSImpl implements NMSBridge { npc.data().set("behavior-map", new TreeMap(behaviorMap)); behaviorMap.clear(); } + } + } private static final MethodHandle ADVANCEMENTS_PLAYER_SETTER = NMS.getFirstFinalSetter(ServerPlayer.class, @@ -2660,18 +2812,21 @@ public class NMSImpl implements NMSBridge { Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage()); e.printStackTrace(); } + try { // Middle one ENDERMAN_CREEPY = (EntityDataAccessor) NMS.getField(EnderMan.class, "bU").get(null); } catch (Exception e) { e.printStackTrace(); } + try { RABBIT_TYPE_DATAWATCHER = (EntityDataAccessor) NMS .getFirstStaticGetter(Rabbit.class, EntityDataAccessor.class).invoke(); } catch (Throwable e) { e.printStackTrace(); } + try { INTERACTION_HEIGHT = (EntityDataAccessor) NMS.getGetter(Interaction.class, "d").invoke(); } catch (Throwable e) { @@ -2690,5 +2845,6 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } } diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PitchableLookControl.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PitchableLookControl.java index 6b86c84c2..d355a9bab 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PitchableLookControl.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PitchableLookControl.java @@ -18,6 +18,7 @@ public class PitchableLookControl extends LookControl { } else { resetOnTick = () -> true; } + } @Override diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerAnimationImpl.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerAnimationImpl.java index 8b7589fb0..d1b1993e9 100644 --- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerAnimationImpl.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerAnimationImpl.java @@ -24,6 +24,7 @@ public class PlayerAnimationImpl { playDefaultAnimation(player, to, DEFAULTS.get(animation)); return; } + switch (animation) { case HURT: sendPacketNearby(new ClientboundHurtAnimationPacket(player), to); @@ -61,6 +62,7 @@ public class PlayerAnimationImpl { default: throw new UnsupportedOperationException(); } + } protected static void playDefaultAnimation(ServerPlayer player, Iterable to, int code) { @@ -78,6 +80,7 @@ public class PlayerAnimationImpl { for (Player player : to) { NMSImpl.sendPacket(player, packet); } + } private static Map DEFAULTS = Maps.newEnumMap(PlayerAnimation.class); diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/AllayController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/AllayController.java index c7ef2e289..0ac8e0465 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/AllayController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/AllayController.java @@ -90,6 +90,7 @@ public class AllayController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -97,6 +98,7 @@ public class AllayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -106,6 +108,7 @@ public class AllayController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -118,6 +121,7 @@ public class AllayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new AllayNPC(this)); } + return super.getBukkitEntity(); } @@ -190,8 +194,10 @@ public class AllayController extends MobEntityController { taskId = -1; }, 2); } + return InteractionResult.FAIL; } + return super.mobInteract(var0, var1); } @@ -209,6 +215,7 @@ public class AllayController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -219,6 +226,7 @@ public class AllayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -240,6 +248,7 @@ public class AllayController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -251,6 +260,7 @@ public class AllayController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ArmorStandController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ArmorStandController.java index 930eb3d8c..62c38e411 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ArmorStandController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ArmorStandController.java @@ -60,6 +60,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { ai = new BasicMobAI(this); } + } @Override @@ -72,6 +73,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ArmorStandNPC(this)); } + return super.getBukkitEntity(); } @@ -107,6 +109,7 @@ public class ArmorStandController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -117,6 +120,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -138,6 +142,7 @@ public class ArmorStandController extends MobEntityController { npc.update(); ai.tickAI(); } + } @Override @@ -149,6 +154,7 @@ public class ArmorStandController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/AxolotlController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/AxolotlController.java index 6dc090469..1fe05a8c9 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/AxolotlController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/AxolotlController.java @@ -76,6 +76,7 @@ public class AxolotlController extends MobEntityController { this.getAttribute(Attributes.MOVEMENT_SPEED) .setBaseValue(this.getAttribute(Attributes.MOVEMENT_SPEED).getBaseValue() / 10); } + } @Override @@ -97,6 +98,7 @@ public class AxolotlController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -104,6 +106,7 @@ public class AxolotlController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -116,6 +119,7 @@ public class AxolotlController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new AxolotlNPC(this)); } + return super.getBukkitEntity(); } @@ -202,6 +206,7 @@ public class AxolotlController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -212,6 +217,7 @@ public class AxolotlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -234,11 +240,14 @@ public class AxolotlController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new MoveControl(this); } + npc.update(); } + } @Override @@ -247,9 +256,11 @@ public class AxolotlController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -261,6 +272,7 @@ public class AxolotlController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BatController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BatController.java index 25c70b87a..4d35647d4 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BatController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BatController.java @@ -59,6 +59,7 @@ public class BatController extends MobEntityController { if (npc != null) { setResting(false); } + } @Override @@ -73,6 +74,7 @@ public class BatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -84,8 +86,10 @@ public class BatController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -98,6 +102,7 @@ public class BatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BatNPC(this)); } + return super.getBukkitEntity(); } @@ -159,6 +164,7 @@ public class BatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -169,6 +175,7 @@ public class BatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -192,6 +199,7 @@ public class BatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BeeController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BeeController.java index a2c5668dc..3929abe65 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BeeController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BeeController.java @@ -70,6 +70,7 @@ public class BeeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,8 +82,10 @@ public class BeeController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -95,6 +98,7 @@ public class BeeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BeeNPC(this)); } + return super.getBukkitEntity(); } @@ -156,6 +160,7 @@ public class BeeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -166,6 +171,7 @@ public class BeeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class BeeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BlazeController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BlazeController.java index 04c58daef..9fa27450b 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BlazeController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BlazeController.java @@ -70,6 +70,7 @@ public class BlazeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -78,6 +79,7 @@ public class BlazeController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -90,6 +92,7 @@ public class BlazeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BlazeNPC(this)); } + return super.getBukkitEntity(); } @@ -151,6 +154,7 @@ public class BlazeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -161,6 +165,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -184,6 +189,7 @@ public class BlazeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CamelController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CamelController.java index cd22f8396..e76c9109a 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CamelController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CamelController.java @@ -78,6 +78,7 @@ public class CamelController extends MobEntityController { .setDomestication(((org.bukkit.entity.Camel) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -99,6 +100,7 @@ public class CamelController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -106,6 +108,7 @@ public class CamelController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -120,16 +123,20 @@ public class CamelController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -142,6 +149,7 @@ public class CamelController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CamelNPC(this)); } + return super.getBukkitEntity(); } @@ -223,6 +231,7 @@ public class CamelController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -232,6 +241,7 @@ public class CamelController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -242,6 +252,7 @@ public class CamelController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -263,6 +274,7 @@ public class CamelController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -274,6 +286,7 @@ public class CamelController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CatController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CatController.java index 9b47daa9b..b2c6201a8 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CatController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CatController.java @@ -80,6 +80,7 @@ public class CatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -87,6 +88,7 @@ public class CatController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -96,6 +98,7 @@ public class CatController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -108,6 +111,7 @@ public class CatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CatNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +181,7 @@ public class CatController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -186,6 +191,7 @@ public class CatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -196,6 +202,7 @@ public class CatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -217,6 +224,7 @@ public class CatController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -228,6 +236,7 @@ public class CatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CaveSpiderController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CaveSpiderController.java index 6bfd2981e..74f6970f5 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CaveSpiderController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CaveSpiderController.java @@ -79,6 +79,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -86,6 +87,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -95,6 +97,7 @@ public class CaveSpiderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -107,6 +110,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CaveSpiderNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +180,7 @@ public class CaveSpiderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -186,6 +191,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -195,6 +201,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -216,6 +223,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -227,6 +235,7 @@ public class CaveSpiderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ChickenController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ChickenController.java index 2ebb2222e..9ee7be521 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ChickenController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ChickenController.java @@ -66,6 +66,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { this.eggTime = 100; } + super.aiStep(); } @@ -88,6 +89,7 @@ public class ChickenController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -95,6 +97,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -104,6 +107,7 @@ public class ChickenController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -116,6 +120,7 @@ public class ChickenController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ChickenNPC(this)); } + return super.getBukkitEntity(); } @@ -185,6 +190,7 @@ public class ChickenController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -194,6 +200,7 @@ public class ChickenController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -204,6 +211,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -225,6 +233,7 @@ public class ChickenController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -236,6 +245,7 @@ public class ChickenController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CodController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CodController.java index 830b89f41..be4eee0cf 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CodController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CodController.java @@ -71,6 +71,7 @@ public class CodController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -79,10 +80,12 @@ public class CodController extends MobEntityController { if (npc != null) { this.verticalCollision = false; } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; } + } @Override @@ -104,6 +107,7 @@ public class CodController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +115,7 @@ public class CodController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -119,18 +124,23 @@ public class CodController extends MobEntityController { if (!npc.useMinecraftAI()) { NMSImpl.setNotInSchool(this); } + NMSImpl.updateMinecraftAIState(npc, this); if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -143,6 +153,7 @@ public class CodController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CodNPC(this)); } + return super.getBukkitEntity(); } @@ -222,6 +233,7 @@ public class CodController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -232,6 +244,7 @@ public class CodController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -252,9 +265,11 @@ public class CodController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -266,6 +281,7 @@ public class CodController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CowController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CowController.java index f701fc7b3..3b7bcf1ed 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CowController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CowController.java @@ -85,6 +85,7 @@ public class CowController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -92,6 +93,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -101,6 +103,7 @@ public class CowController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -113,6 +116,7 @@ public class CowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CowNPC(this)); } + return super.getBukkitEntity(); } @@ -192,6 +196,7 @@ public class CowController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -201,6 +206,7 @@ public class CowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -211,6 +217,7 @@ public class CowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -232,6 +239,7 @@ public class CowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -243,6 +251,7 @@ public class CowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CreeperController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CreeperController.java index 01aafd36a..afa936719 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CreeperController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CreeperController.java @@ -82,6 +82,7 @@ public class CreeperController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -89,6 +90,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -98,6 +100,7 @@ public class CreeperController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -110,6 +113,7 @@ public class CreeperController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new CreeperNPC(this)); } + return super.getBukkitEntity(); } @@ -148,6 +152,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isProtected()) { super.ignite(); } + } @Override @@ -186,6 +191,7 @@ public class CreeperController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -196,6 +202,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -205,6 +212,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -228,6 +236,7 @@ public class CreeperController extends MobEntityController { if (npc == null || allowPowered) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -237,6 +246,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -248,6 +258,7 @@ public class CreeperController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/DolphinController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/DolphinController.java index fc996698b..0b1af507b 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/DolphinController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/DolphinController.java @@ -70,6 +70,7 @@ public class DolphinController extends MobEntityController { this.getAttribute(Attributes.MOVEMENT_SPEED) .setBaseValue(this.getAttribute(Attributes.MOVEMENT_SPEED).getBaseValue() / 10); } + } @Override @@ -91,6 +92,7 @@ public class DolphinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -98,6 +100,7 @@ public class DolphinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -110,6 +113,7 @@ public class DolphinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DolphinNPC(this)); } + return super.getBukkitEntity(); } @@ -184,6 +188,7 @@ public class DolphinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -194,6 +199,7 @@ public class DolphinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -213,6 +219,7 @@ public class DolphinController extends MobEntityController { if (npc != null && npc.isProtected()) { inProtectedTick = true; } + super.tick(); inProtectedTick = false; if (npc != null) { @@ -220,11 +227,14 @@ public class DolphinController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new MoveControl(this); } + npc.update(); } + } @Override @@ -233,9 +243,11 @@ public class DolphinController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -247,6 +259,7 @@ public class DolphinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/DrownedController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/DrownedController.java index 713acd47f..ad7b59699 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/DrownedController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/DrownedController.java @@ -79,6 +79,7 @@ public class DrownedController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -86,6 +87,7 @@ public class DrownedController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -95,6 +97,7 @@ public class DrownedController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -107,6 +110,7 @@ public class DrownedController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DrownedNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +180,7 @@ public class DrownedController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -186,6 +191,7 @@ public class DrownedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -207,6 +213,7 @@ public class DrownedController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -218,6 +225,7 @@ public class DrownedController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EnderDragonController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EnderDragonController.java index b9092537d..1c18b65ed 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EnderDragonController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EnderDragonController.java @@ -68,16 +68,19 @@ public class EnderDragonController extends MobEntityController { npc.update(); } + if (npc != null && !npc.useMinecraftAI()) { if (isDeadOrDying()) { setHealth(0F); return; } + if (this.posPointer < 0) { for (int i = 0; i < this.positions.length; ++i) { this.positions[i][0] = this.getYRot(); this.positions[i][1] = this.getY(); } + } if (++this.posPointer == this.positions.length) { @@ -109,6 +112,7 @@ public class EnderDragonController extends MobEntityController { if (getFirstPassenger() == null) { setYRot(Util.getDragonYaw(getBukkitEntity(), mot.x, mot.z)); } + setPos(getX() + mot.x, getY() + mot.y, getZ() + mot.z); setDeltaMovement(mot); } @@ -122,8 +126,11 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + } + } + if (npc.data().get(NPC.Metadata.COLLIDABLE, false)) { try { NMSImpl.ENDERDRAGON_KNOCKBACK.invoke(this, @@ -141,10 +148,13 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable t) { t.printStackTrace(); } + } + } else { super.aiStep(); } + } @Override @@ -159,6 +169,7 @@ public class EnderDragonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -171,6 +182,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderDragonNPC(this)); } + return super.getBukkitEntity(); } @@ -232,6 +244,7 @@ public class EnderDragonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -242,6 +255,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -254,6 +268,7 @@ public class EnderDragonController extends MobEntityController { if (getPhaseManager().getCurrentPhase().getPhase() == EnderDragonPhase.HOVERING) { setDeltaMovement(old); } + return res; } @@ -278,6 +293,7 @@ public class EnderDragonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EndermanController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EndermanController.java index c3b3d65e5..607124c92 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EndermanController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EndermanController.java @@ -82,6 +82,7 @@ public class EndermanController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -89,6 +90,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -98,6 +100,7 @@ public class EndermanController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -110,6 +113,7 @@ public class EndermanController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EndermanNPC(this)); } + return super.getBukkitEntity(); } @@ -179,6 +183,7 @@ public class EndermanController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -189,6 +194,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -206,6 +212,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -227,6 +234,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -238,6 +246,7 @@ public class EndermanController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EndermiteController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EndermiteController.java index 2866f4050..4ad592535 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EndermiteController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EndermiteController.java @@ -79,6 +79,7 @@ public class EndermiteController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -86,6 +87,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -95,6 +97,7 @@ public class EndermiteController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -107,6 +110,7 @@ public class EndermiteController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EndermiteNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +180,7 @@ public class EndermiteController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -186,6 +191,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -195,6 +201,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -216,6 +223,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -227,6 +235,7 @@ public class EndermiteController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EntityHumanNPC.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EntityHumanNPC.java index e7e9a7c83..360575144 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EntityHumanNPC.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EntityHumanNPC.java @@ -77,10 +77,12 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } catch (Throwable e) { e.printStackTrace(); } + initialise(minecraftServer, ci); } else { skinTracker = null; } + } @Override @@ -95,6 +97,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -136,6 +139,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (!ai.getNavigation().isDone()) { ai.getNavigation().tick(); } + moveOnCurrentHeading(); } @@ -155,10 +159,13 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } else { axisalignedbb = this.getBoundingBox().inflate(1.0, 0.5, 1.0); } + for (Entity entity : level().getEntities(this, axisalignedbb)) { entity.playerTouch(this); } + } + } @Override @@ -172,6 +179,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable NMSImpl.setBukkitEntity(this, new PlayerNPC(this)); setBukkitEntity = true; } + return super.getBukkitEntity(); } @@ -201,6 +209,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (skinName == null) { skinName = npc.getName(); } + return skinName.toLowerCase(); } @@ -231,6 +240,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable hurtMarked = false; Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(), () -> EntityHumanNPC.this.hurtMarked = true); } + return damaged; } @@ -242,6 +252,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } catch (IOException e) { e.printStackTrace(); } + this.invulnerableTime = 0; NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing setSkinFlags((byte) 0xFF); @@ -276,9 +287,11 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable jumpFromGround(); jumpTicks = 10; } + } else { jumpTicks = 0; } + xxa *= 0.98F; zza *= 0.98F; moveWithFallDamage(new Vec3(this.xxa, this.yya, this.zza)); @@ -286,6 +299,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (jumpTicks > 0) { jumpTicks--; } + } private void moveWithFallDamage(Vec3 vec) { @@ -296,6 +310,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (!npc.isProtected()) { doCheckFallDamage(getX() - x, getY() - y, getZ() - z, onGround); } + } @Override @@ -312,6 +327,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -322,6 +338,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -374,6 +391,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -383,6 +401,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EvokerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EvokerController.java index 9ee0dcb37..cc102f892 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EvokerController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EvokerController.java @@ -73,6 +73,7 @@ public class EvokerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class EvokerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class EvokerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class EvokerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EvokerNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class EvokerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class EvokerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +207,7 @@ public class EvokerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -212,6 +219,7 @@ public class EvokerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/FoxController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/FoxController.java index 8c8e4b2fb..1ad6dbf3e 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/FoxController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/FoxController.java @@ -74,6 +74,7 @@ public class FoxController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class FoxController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class FoxController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class FoxController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FoxNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class FoxController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -180,6 +185,7 @@ public class FoxController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +196,7 @@ public class FoxController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -211,6 +218,7 @@ public class FoxController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class FoxController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/FrogController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/FrogController.java index 1727cc73d..2ade59969 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/FrogController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/FrogController.java @@ -56,6 +56,7 @@ public class FrogController extends MobEntityController { if (npc != null) { croakAnimationState.start(1); } + } @Override @@ -77,6 +78,7 @@ public class FrogController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -84,6 +86,7 @@ public class FrogController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -93,6 +96,7 @@ public class FrogController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -105,6 +109,7 @@ public class FrogController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FrogNPC(this)); } + return super.getBukkitEntity(); } @@ -174,6 +179,7 @@ public class FrogController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -183,6 +189,7 @@ public class FrogController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -193,6 +200,7 @@ public class FrogController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -214,6 +222,7 @@ public class FrogController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -225,6 +234,7 @@ public class FrogController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GhastController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GhastController.java index fd1d5e4a7..bde5e1adf 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GhastController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GhastController.java @@ -64,6 +64,7 @@ public class GhastController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -72,6 +73,7 @@ public class GhastController extends MobEntityController { npc.update(); NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); } @@ -85,6 +87,7 @@ public class GhastController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GhastNPC(this)); } + return super.getBukkitEntity(); } @@ -151,6 +154,7 @@ public class GhastController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -161,6 +165,7 @@ public class GhastController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -184,6 +189,7 @@ public class GhastController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GiantController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GiantController.java index 438fccc17..99e4cc3c8 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GiantController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GiantController.java @@ -73,6 +73,7 @@ public class GiantController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class GiantController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class GiantController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GiantNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class GiantController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class GiantController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class GiantController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GlowSquidController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GlowSquidController.java index 59a1c9ac8..cb9d94caf 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GlowSquidController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GlowSquidController.java @@ -73,6 +73,7 @@ public class GlowSquidController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class GlowSquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class GlowSquidController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class GlowSquidController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GlowSquidNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class GlowSquidController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class GlowSquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class GlowSquidController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class GlowSquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class GlowSquidController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GoatController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GoatController.java index 1d417754b..cb69363b8 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GoatController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GoatController.java @@ -74,6 +74,7 @@ public class GoatController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class GoatController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class GoatController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class GoatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GoatNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class GoatController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -180,6 +185,7 @@ public class GoatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +196,7 @@ public class GoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -211,6 +218,7 @@ public class GoatController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class GoatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GuardianController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GuardianController.java index 49c07a6e4..9534d62b0 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GuardianController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GuardianController.java @@ -65,8 +65,10 @@ public class GuardianController extends MobEntityController { } else { super.aiStep(); } + npc.update(); } + } @Override @@ -88,6 +90,7 @@ public class GuardianController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -95,6 +98,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -107,6 +111,7 @@ public class GuardianController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GuardianNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +181,7 @@ public class GuardianController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -186,6 +192,7 @@ public class GuardianController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -195,6 +202,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -216,6 +224,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -227,6 +236,7 @@ public class GuardianController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GuardianElderController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GuardianElderController.java index 6e80136a3..a0a2925fe 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GuardianElderController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GuardianElderController.java @@ -65,8 +65,10 @@ public class GuardianElderController extends MobEntityController { } else { super.aiStep(); } + npc.update(); } + } @Override @@ -88,6 +90,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -95,6 +98,7 @@ public class GuardianElderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -107,6 +111,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GuardianElderNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +181,7 @@ public class GuardianElderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -186,6 +192,7 @@ public class GuardianElderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -195,6 +202,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -216,6 +224,7 @@ public class GuardianElderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -227,6 +236,7 @@ public class GuardianElderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HoglinController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HoglinController.java index e1154b3f0..1af2eb269 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HoglinController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HoglinController.java @@ -55,6 +55,7 @@ public class HoglinController extends MobEntityController { if (npc != null) { NMSImpl.clearGoals(npc, goalSelector, targetSelector); } + } @Override @@ -76,6 +77,7 @@ public class HoglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -83,6 +85,7 @@ public class HoglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -91,10 +94,12 @@ public class HoglinController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -107,6 +112,7 @@ public class HoglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HoglinNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +182,7 @@ public class HoglinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -186,6 +193,7 @@ public class HoglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -207,6 +215,7 @@ public class HoglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -218,6 +227,7 @@ public class HoglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseController.java index 9464a0217..eba8f24c2 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseController.java @@ -72,6 +72,7 @@ public class HorseController extends MobEntityController { horse.setDomestication(horse.getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -93,6 +94,7 @@ public class HorseController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -100,6 +102,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -115,13 +118,16 @@ public class HorseController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } @@ -136,6 +142,7 @@ public class HorseController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseNPC(this)); } + return super.getBukkitEntity(); } @@ -217,6 +224,7 @@ public class HorseController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -226,6 +234,7 @@ public class HorseController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -236,6 +245,7 @@ public class HorseController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -257,6 +267,7 @@ public class HorseController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -268,6 +279,7 @@ public class HorseController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseDonkeyController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseDonkeyController.java index 12f5e0917..82f1be4a9 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseDonkeyController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseDonkeyController.java @@ -72,6 +72,7 @@ public class HorseDonkeyController extends MobEntityController { .setDomestication(((org.bukkit.entity.Donkey) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -93,6 +94,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -100,6 +102,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -114,16 +117,20 @@ public class HorseDonkeyController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -136,6 +143,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseDonkeyNPC(this)); } + return super.getBukkitEntity(); } @@ -217,6 +225,7 @@ public class HorseDonkeyController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -226,6 +235,7 @@ public class HorseDonkeyController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -236,6 +246,7 @@ public class HorseDonkeyController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -257,6 +268,7 @@ public class HorseDonkeyController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -268,6 +280,7 @@ public class HorseDonkeyController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseMuleController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseMuleController.java index 8be45c3e7..246c8c35b 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseMuleController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseMuleController.java @@ -72,6 +72,7 @@ public class HorseMuleController extends MobEntityController { .setDomestication(((org.bukkit.entity.Mule) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -93,6 +94,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -100,6 +102,7 @@ public class HorseMuleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -114,16 +117,20 @@ public class HorseMuleController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -136,6 +143,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseMuleNPC(this)); } + return super.getBukkitEntity(); } @@ -217,6 +225,7 @@ public class HorseMuleController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -226,6 +235,7 @@ public class HorseMuleController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -236,6 +246,7 @@ public class HorseMuleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -257,6 +268,7 @@ public class HorseMuleController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -268,6 +280,7 @@ public class HorseMuleController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseSkeletonController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseSkeletonController.java index a6778e686..733e3711a 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseSkeletonController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseSkeletonController.java @@ -71,6 +71,7 @@ public class HorseSkeletonController extends MobEntityController { .setDomestication(((org.bukkit.entity.SkeletonHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -92,6 +93,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -99,6 +101,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -113,16 +116,20 @@ public class HorseSkeletonController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -135,6 +142,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseSkeletonNPC(this)); } + return super.getBukkitEntity(); } @@ -216,6 +224,7 @@ public class HorseSkeletonController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -225,6 +234,7 @@ public class HorseSkeletonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -235,6 +245,7 @@ public class HorseSkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -256,6 +267,7 @@ public class HorseSkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -267,6 +279,7 @@ public class HorseSkeletonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseZombieController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseZombieController.java index e8e1a03d7..90c75d79d 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseZombieController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseZombieController.java @@ -72,6 +72,7 @@ public class HorseZombieController extends MobEntityController { .setDomestication(((org.bukkit.entity.ZombieHorse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -93,6 +94,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -100,6 +102,7 @@ public class HorseZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -114,16 +117,20 @@ public class HorseZombieController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -136,6 +143,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new HorseZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -217,6 +225,7 @@ public class HorseZombieController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -226,6 +235,7 @@ public class HorseZombieController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -236,6 +246,7 @@ public class HorseZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -257,6 +268,7 @@ public class HorseZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -268,6 +280,7 @@ public class HorseZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HumanController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HumanController.java index a7c6da9f1..eddfd835b 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HumanController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HumanController.java @@ -36,9 +36,11 @@ public class HumanController extends AbstractEntityController { if (npc.requiresNameHologram()) { name = teamName; } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } + final GameProfile profile = new GameProfile(uuid, name); final EntityHumanNPC handle = new EntityHumanNPC(MinecraftServer.getServer(), nmsWorld, profile, ClientInformation.createDefault(), npc); @@ -46,6 +48,7 @@ public class HumanController extends AbstractEntityController { if (skin != null) { skin.apply(handle); } + Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> { if (getBukkitEntity() == null || !getBukkitEntity().isValid() || getBukkitEntity() != handle.getBukkitEntity()) diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/IllusionerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/IllusionerController.java index d64c902af..5ab5f3b17 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/IllusionerController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/IllusionerController.java @@ -73,6 +73,7 @@ public class IllusionerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class IllusionerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class IllusionerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class IllusionerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new IllusionerNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class IllusionerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class IllusionerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +207,7 @@ public class IllusionerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -212,6 +219,7 @@ public class IllusionerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/IronGolemController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/IronGolemController.java index 363e4a2c8..ebb7aaf6d 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/IronGolemController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/IronGolemController.java @@ -73,6 +73,7 @@ public class IronGolemController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class IronGolemController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class IronGolemController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new IronGolemNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class IronGolemController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class IronGolemController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/LlamaController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/LlamaController.java index e0b83d3a7..bcbb5b74a 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/LlamaController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/LlamaController.java @@ -72,6 +72,7 @@ public class LlamaController extends MobEntityController { .setDomestication(((org.bukkit.entity.Llama) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttribute(Attributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -93,6 +94,7 @@ public class LlamaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -100,6 +102,7 @@ public class LlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -114,16 +117,20 @@ public class LlamaController extends MobEntityController { } else { riding = false; } + if (riding) { if (npc.getNavigator().isNavigating()) { org.bukkit.entity.Entity basePassenger = passengers.get(0).getBukkitEntity(); NMS.look(basePassenger, getYRot(), getXRot()); } + setFlag(4, true); // datawatcher method } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -136,6 +143,7 @@ public class LlamaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LlamaNPC(this)); } + return super.getBukkitEntity(); } @@ -217,6 +225,7 @@ public class LlamaController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -226,6 +235,7 @@ public class LlamaController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -236,6 +246,7 @@ public class LlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -257,6 +268,7 @@ public class LlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -268,6 +280,7 @@ public class LlamaController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MagmaCubeController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MagmaCubeController.java index b47e66734..90889d900 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MagmaCubeController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MagmaCubeController.java @@ -62,6 +62,7 @@ public class MagmaCubeController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new EntityMoveControl(this); } + } @Override @@ -83,6 +84,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -90,6 +92,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -102,6 +105,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MagmaCubeNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.playerTouch(human); } + } @Override @@ -178,6 +183,7 @@ public class MagmaCubeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -188,6 +194,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -197,6 +204,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -219,11 +227,14 @@ public class MagmaCubeController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -233,6 +244,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -244,6 +256,7 @@ public class MagmaCubeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MobEntityController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MobEntityController.java index aea5057c7..6dcd97e6c 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MobEntityController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MobEntityController.java @@ -39,7 +39,9 @@ public abstract class MobEntityController extends AbstractEntityController { if (mob.getLookControl().getClass() == LookControl.class) { NMSImpl.setLookControl(mob, new PitchableLookControl(mob)); } + } + entity.absMoveTo(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch()); if (npc != null) { // entity.onGround isn't updated right away - we approximate here so @@ -48,10 +50,12 @@ public abstract class MobEntityController extends AbstractEntityController { if (beneath.isSolid()) { entity.setOnGround(true); } + entity.setUUID(npc.getUniqueId()); if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } + } return entity.getBukkitEntity(); @@ -64,6 +68,7 @@ public abstract class MobEntityController extends AbstractEntityController { ex.printStackTrace(); return null; } + } private static Constructor getConstructor(Class clazz) { @@ -76,6 +81,7 @@ public abstract class MobEntityController extends AbstractEntityController { } catch (Exception ex) { throw new IllegalStateException("unable to find an entity constructor"); } + } private static final Map, Constructor> CONSTRUCTOR_CACHE = new WeakHashMap<>(); diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MushroomCowController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MushroomCowController.java index c8ea307e5..040549a25 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MushroomCowController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MushroomCowController.java @@ -77,6 +77,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -84,6 +85,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -93,6 +95,7 @@ public class MushroomCowController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -105,6 +108,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MushroomCowNPC(this)); } + return super.getBukkitEntity(); } @@ -181,6 +185,7 @@ public class MushroomCowController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -190,6 +195,7 @@ public class MushroomCowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -200,6 +206,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -221,6 +228,7 @@ public class MushroomCowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -232,6 +240,7 @@ public class MushroomCowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/OcelotController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/OcelotController.java index 86b9dbf53..f761e026e 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/OcelotController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/OcelotController.java @@ -75,6 +75,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,6 +83,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -92,10 +94,12 @@ public class OcelotController extends MobEntityController { if (restorePose) { this.setPose(old); } + if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -108,6 +112,7 @@ public class OcelotController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new OcelotNPC(this)); } + return super.getBukkitEntity(); } @@ -177,6 +182,7 @@ public class OcelotController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -186,6 +192,7 @@ public class OcelotController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -196,6 +203,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -217,6 +225,7 @@ public class OcelotController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -228,6 +237,7 @@ public class OcelotController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PandaController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PandaController.java index eb00bc947..72774abc8 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PandaController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PandaController.java @@ -74,6 +74,7 @@ public class PandaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class PandaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class PandaController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class PandaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PandaNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class PandaController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -180,6 +185,7 @@ public class PandaController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +196,7 @@ public class PandaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -211,6 +218,7 @@ public class PandaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class PandaController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ParrotController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ParrotController.java index a59284f8b..0bb83c21c 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ParrotController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ParrotController.java @@ -67,6 +67,7 @@ public class ParrotController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -78,8 +79,10 @@ public class ParrotController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -92,6 +95,7 @@ public class ParrotController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ParrotNPC(this)); } + return super.getBukkitEntity(); } @@ -161,6 +165,7 @@ public class ParrotController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -171,6 +176,7 @@ public class ParrotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -194,6 +200,7 @@ public class ParrotController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PhantomController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PhantomController.java index 423146a0c..2855a5e93 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PhantomController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PhantomController.java @@ -67,6 +67,7 @@ public class PhantomController extends MobEntityController { this.lookControl = new LookControl(this); // TODO: phantom pitch reversed } + } @Override @@ -78,15 +79,19 @@ public class PhantomController extends MobEntityController { this.moveControl = this.oldMoveController; this.lookControl = this.oldLookController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); this.lookControl = new LookControl(this); } + if (npc.isProtected()) { setSecondsOnFire(0); } + npc.update(); } + } @Override @@ -108,6 +113,7 @@ public class PhantomController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -115,6 +121,7 @@ public class PhantomController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -127,6 +134,7 @@ public class PhantomController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PhantomNPC(this)); } + return super.getBukkitEntity(); } @@ -203,6 +211,7 @@ public class PhantomController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -212,6 +221,7 @@ public class PhantomController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -222,6 +232,7 @@ public class PhantomController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -248,6 +259,7 @@ public class PhantomController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -259,6 +271,7 @@ public class PhantomController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PigController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PigController.java index 9d59d4276..f7caa1116 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PigController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PigController.java @@ -75,6 +75,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,6 +83,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -91,6 +93,7 @@ public class PigController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -103,6 +106,7 @@ public class PigController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PigNPC(this)); } + return super.getBukkitEntity(); } @@ -178,6 +182,7 @@ public class PigController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -187,6 +192,7 @@ public class PigController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -197,6 +203,7 @@ public class PigController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -216,6 +223,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -225,6 +233,7 @@ public class PigController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -236,6 +245,7 @@ public class PigController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PigZombieController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PigZombieController.java index f611883b3..86d4e572d 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PigZombieController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PigZombieController.java @@ -73,6 +73,7 @@ public class PigZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class PigZombieController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class PigZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PigZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class PigZombieController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +207,7 @@ public class PigZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -212,6 +219,7 @@ public class PigZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PiglinBruteController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PiglinBruteController.java index a33d45e69..bc82477b6 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PiglinBruteController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PiglinBruteController.java @@ -73,6 +73,7 @@ public class PiglinBruteController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class PiglinBruteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,10 +90,12 @@ public class PiglinBruteController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -104,6 +108,7 @@ public class PiglinBruteController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PiglinBruteNPC(this)); } + return super.getBukkitEntity(); } @@ -173,6 +178,7 @@ public class PiglinBruteController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -183,6 +189,7 @@ public class PiglinBruteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -204,6 +211,7 @@ public class PiglinBruteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -215,6 +223,7 @@ public class PiglinBruteController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PiglinController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PiglinController.java index dc61003ed..a8166a2f6 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PiglinController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PiglinController.java @@ -73,6 +73,7 @@ public class PiglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class PiglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -88,10 +90,12 @@ public class PiglinController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); setImmuneToZombification(true); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -104,6 +108,7 @@ public class PiglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PiglinNPC(this)); } + return super.getBukkitEntity(); } @@ -173,6 +178,7 @@ public class PiglinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -183,6 +189,7 @@ public class PiglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -204,6 +211,7 @@ public class PiglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -215,6 +223,7 @@ public class PiglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PillagerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PillagerController.java index 77536f521..5261658e4 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PillagerController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PillagerController.java @@ -74,6 +74,7 @@ public class PillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class PillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class PillagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class PillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class PillagerController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -180,6 +185,7 @@ public class PillagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +196,7 @@ public class PillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -211,6 +218,7 @@ public class PillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class PillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PolarBearController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PolarBearController.java index 99de39e52..1d3d88d10 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PolarBearController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PolarBearController.java @@ -65,6 +65,7 @@ public class PolarBearController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -74,6 +75,7 @@ public class PolarBearController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -86,6 +88,7 @@ public class PolarBearController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PolarBearNPC(this)); } + return super.getBukkitEntity(); } @@ -147,6 +150,7 @@ public class PolarBearController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -156,6 +160,7 @@ public class PolarBearController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -166,6 +171,7 @@ public class PolarBearController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class PolarBearController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PufferFishController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PufferFishController.java index c33e48bb6..064f82be5 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PufferFishController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PufferFishController.java @@ -68,6 +68,7 @@ public class PufferFishController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -78,11 +79,13 @@ public class PufferFishController extends MobEntityController { this.verticalCollision = false; setPuffState(0); } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; setPuffState(lastPuffState); } + } @Override @@ -104,6 +107,7 @@ public class PufferFishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -111,6 +115,7 @@ public class PufferFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -121,11 +126,14 @@ public class PufferFishController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -138,6 +146,7 @@ public class PufferFishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PufferFishNPC(this)); } + return super.getBukkitEntity(); } @@ -224,6 +233,7 @@ public class PufferFishController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -234,6 +244,7 @@ public class PufferFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -253,11 +264,13 @@ public class PufferFishController extends MobEntityController { if (npc != null) { NMSImpl.resetPuffTicks(this); } + super.tick(); PufferFishTrait trait = null; if (npc != null && (trait = npc.getTraitNullable(PufferFishTrait.class)) != null) { setPuffState(trait.getPuffState()); } + } @Override @@ -266,9 +279,11 @@ public class PufferFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -280,6 +295,7 @@ public class PufferFishController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } @@ -292,6 +308,7 @@ public class PufferFishController extends MobEntityController { default: return 1.0F; } + } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/RabbitController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/RabbitController.java index 9eecbc356..dee238994 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/RabbitController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/RabbitController.java @@ -75,6 +75,7 @@ public class RabbitController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -82,6 +83,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -92,8 +94,10 @@ public class RabbitController extends MobEntityController { if (npc.getNavigator().isNavigating()) { NMS.setShouldJump(getBukkitEntity()); } + npc.update(); } + } @Override @@ -106,6 +110,7 @@ public class RabbitController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new RabbitNPC(this)); } + return super.getBukkitEntity(); } @@ -180,6 +185,7 @@ public class RabbitController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -189,6 +195,7 @@ public class RabbitController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -199,6 +206,7 @@ public class RabbitController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -214,6 +222,7 @@ public class RabbitController extends MobEntityController { this.entityData.set(NMSImpl.RABBIT_TYPE_DATAWATCHER, variant.id()); return; } + super.setVariant(variant); } @@ -231,6 +240,7 @@ public class RabbitController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -242,6 +252,7 @@ public class RabbitController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/RavagerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/RavagerController.java index 03ef06621..39a06ea08 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/RavagerController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/RavagerController.java @@ -74,6 +74,7 @@ public class RavagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class RavagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class RavagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class RavagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new RavagerNPC(this)); } + return super.getBukkitEntity(); } @@ -176,6 +180,7 @@ public class RavagerController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -185,6 +190,7 @@ public class RavagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -195,6 +201,7 @@ public class RavagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -216,6 +223,7 @@ public class RavagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -227,6 +235,7 @@ public class RavagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SalmonController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SalmonController.java index 5639e1435..249e66f61 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SalmonController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SalmonController.java @@ -65,6 +65,7 @@ public class SalmonController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -73,10 +74,12 @@ public class SalmonController extends MobEntityController { if (npc != null) { this.verticalCollision = false; } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; } + } @Override @@ -98,6 +101,7 @@ public class SalmonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -105,6 +109,7 @@ public class SalmonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -115,14 +120,18 @@ public class SalmonController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -135,6 +144,7 @@ public class SalmonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SalmonNPC(this)); } + return super.getBukkitEntity(); } @@ -214,6 +224,7 @@ public class SalmonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -224,6 +235,7 @@ public class SalmonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -244,9 +256,11 @@ public class SalmonController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -258,6 +272,7 @@ public class SalmonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SheepController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SheepController.java index c410c7666..2ac29b6bb 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SheepController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SheepController.java @@ -74,6 +74,7 @@ public class SheepController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class SheepController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class SheepController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SheepNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class SheepController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -180,6 +185,7 @@ public class SheepController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +196,7 @@ public class SheepController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -211,6 +218,7 @@ public class SheepController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class SheepController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ShulkerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ShulkerController.java index ab5e96e38..3da7f0876 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ShulkerController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ShulkerController.java @@ -60,6 +60,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || npc.useMinecraftAI()) { super.aiStep(); } + } @Override @@ -81,6 +82,7 @@ public class ShulkerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -88,6 +90,7 @@ public class ShulkerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -105,6 +108,7 @@ public class ShulkerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ShulkerNPC(this)); } + return super.getBukkitEntity(); } @@ -174,6 +178,7 @@ public class ShulkerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -184,6 +189,7 @@ public class ShulkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -193,6 +199,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -214,10 +221,12 @@ public class ShulkerController extends MobEntityController { if (npc.useMinecraftAI()) { super.tick(); } + npc.update(); } else { super.tick(); } + } @Override @@ -227,6 +236,7 @@ public class ShulkerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -238,6 +248,7 @@ public class ShulkerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SilverfishController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SilverfishController.java index 04084383e..ab5a9b5dd 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SilverfishController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SilverfishController.java @@ -73,6 +73,7 @@ public class SilverfishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SilverfishController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SilverfishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SilverfishNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SilverfishController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class SilverfishController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonController.java index b8a91683f..ad65551a8 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonController.java @@ -73,6 +73,7 @@ public class SkeletonController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SkeletonController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SkeletonController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SkeletonNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SkeletonController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class SkeletonController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonStrayController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonStrayController.java index 0922f032f..4b593b292 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonStrayController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonStrayController.java @@ -73,6 +73,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SkeletonStrayController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new StrayNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SkeletonStrayController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class SkeletonStrayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class SkeletonStrayController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class SkeletonStrayController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonWitherController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonWitherController.java index e96afa1f5..09908e923 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonWitherController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonWitherController.java @@ -73,6 +73,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SkeletonWitherController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SkeletonWitherNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SkeletonWitherController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class SkeletonWitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class SkeletonWitherController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class SkeletonWitherController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SlimeController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SlimeController.java index db8881c14..5706f0dc9 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SlimeController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SlimeController.java @@ -62,6 +62,7 @@ public class SlimeController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new EntityMoveControl(this); } + } @Override @@ -85,6 +86,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -92,6 +94,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -104,6 +107,7 @@ public class SlimeController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SlimeNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +176,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.playerTouch(human); } + } @Override @@ -180,6 +185,7 @@ public class SlimeController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +196,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -199,6 +206,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -221,11 +229,14 @@ public class SlimeController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + npc.update(); } + } @Override @@ -235,6 +246,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -246,6 +258,7 @@ public class SlimeController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SnifferController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SnifferController.java index aa2f5a70e..49f33d8ce 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SnifferController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SnifferController.java @@ -79,6 +79,7 @@ public class SnifferController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -86,6 +87,7 @@ public class SnifferController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -95,6 +97,7 @@ public class SnifferController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -107,6 +110,7 @@ public class SnifferController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnifferNPC(this)); } + return super.getBukkitEntity(); } @@ -186,6 +190,7 @@ public class SnifferController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -195,6 +200,7 @@ public class SnifferController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -205,6 +211,7 @@ public class SnifferController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -226,6 +233,7 @@ public class SnifferController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -237,6 +245,7 @@ public class SnifferController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SnowmanController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SnowmanController.java index 0a5afe94e..e6878cd16 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SnowmanController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SnowmanController.java @@ -73,6 +73,7 @@ public class SnowmanController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SnowmanController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SnowmanController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnowmanNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SnowmanController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class SnowmanController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SpiderController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SpiderController.java index 332eb1373..258a379ec 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SpiderController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SpiderController.java @@ -73,6 +73,7 @@ public class SpiderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SpiderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SpiderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SpiderNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SpiderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class SpiderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SquidController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SquidController.java index 50e1c845f..fc82b4bc1 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SquidController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SquidController.java @@ -73,6 +73,7 @@ public class SquidController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class SquidController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class SquidController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SquidNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class SquidController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class SquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class SquidController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/StriderController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/StriderController.java index cd776d39e..fc4b237ef 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/StriderController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/StriderController.java @@ -73,6 +73,7 @@ public class StriderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class StriderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class StriderController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class StriderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new StriderNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class StriderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class StriderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +207,7 @@ public class StriderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -212,6 +219,7 @@ public class StriderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TadpoleController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TadpoleController.java index c264963d9..936106c1b 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TadpoleController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TadpoleController.java @@ -66,6 +66,7 @@ public class TadpoleController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -74,10 +75,12 @@ public class TadpoleController extends MobEntityController { if (npc != null) { this.verticalCollision = false; } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; } + } @Override @@ -99,6 +102,7 @@ public class TadpoleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -106,6 +110,7 @@ public class TadpoleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -115,14 +120,18 @@ public class TadpoleController extends MobEntityController { if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -135,6 +144,7 @@ public class TadpoleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TadpoleNPC(this)); } + return super.getBukkitEntity(); } @@ -214,6 +224,7 @@ public class TadpoleController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -224,6 +235,7 @@ public class TadpoleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -244,9 +256,11 @@ public class TadpoleController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -258,6 +272,7 @@ public class TadpoleController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TraderLlamaController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TraderLlamaController.java index c9fc3d327..0b7b5cc59 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TraderLlamaController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TraderLlamaController.java @@ -65,6 +65,7 @@ public class TraderLlamaController extends MobEntityController { ((org.bukkit.entity.TraderLlama) getBukkitEntity()) .setDomestication(((org.bukkit.entity.TraderLlama) getBukkitEntity()).getMaxDomestication()); } + } @Override @@ -86,6 +87,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -93,6 +95,7 @@ public class TraderLlamaController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -104,10 +107,12 @@ public class TraderLlamaController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + setDespawnDelay(10); NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -120,6 +125,7 @@ public class TraderLlamaController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TraderLlamaNPC(this)); } + return super.getBukkitEntity(); } @@ -189,6 +195,7 @@ public class TraderLlamaController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -198,6 +205,7 @@ public class TraderLlamaController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -208,6 +216,7 @@ public class TraderLlamaController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -229,6 +238,7 @@ public class TraderLlamaController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -240,6 +250,7 @@ public class TraderLlamaController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TropicalFishController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TropicalFishController.java index d4ea0e9f6..32f023204 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TropicalFishController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TropicalFishController.java @@ -65,6 +65,7 @@ public class TropicalFishController extends MobEntityController { this.oldMoveController = this.moveControl; this.moveControl = new MoveControl(this); } + } @Override @@ -73,10 +74,12 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { this.verticalCollision = false; } + super.aiStep(); if (npc != null) { this.verticalCollision = lastInWater; } + } @Override @@ -98,6 +101,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -105,6 +109,7 @@ public class TropicalFishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -113,18 +118,23 @@ public class TropicalFishController extends MobEntityController { if (!npc.useMinecraftAI()) { NMSImpl.setNotInSchool(this); } + NMSImpl.updateMinecraftAIState(npc, this); if (npc.useMinecraftAI() && this.moveControl != this.oldMoveController) { this.moveControl = this.oldMoveController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); } + } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -137,6 +147,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TropicalFishNPC(this)); } + return super.getBukkitEntity(); } @@ -216,6 +227,7 @@ public class TropicalFishController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -226,6 +238,7 @@ public class TropicalFishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -246,9 +259,11 @@ public class TropicalFishController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -260,6 +275,7 @@ public class TropicalFishController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TurtleController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TurtleController.java index 7e1bf2c93..bfcdc3777 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TurtleController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TurtleController.java @@ -66,6 +66,7 @@ public class TurtleController extends MobEntityController { this.moveControl = new MoveControl(this); this.jumpControl = new EmptyControllerJump(this); } + } @Override @@ -87,6 +88,7 @@ public class TurtleController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -94,6 +96,7 @@ public class TurtleController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -105,12 +108,15 @@ public class TurtleController extends MobEntityController { this.moveControl = this.oldMoveController; this.jumpControl = this.oldJumpController; } + if (!npc.useMinecraftAI() && this.moveControl == this.oldMoveController) { this.moveControl = new EntityMoveControl(this); this.jumpControl = new EmptyControllerJump(this); } + npc.update(); } + } @Override @@ -123,6 +129,7 @@ public class TurtleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TurtleNPC(this)); } + return super.getBukkitEntity(); } @@ -192,6 +199,7 @@ public class TurtleController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -202,6 +210,7 @@ public class TurtleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -222,9 +231,11 @@ public class TurtleController extends MobEntityController { if (!NMSImpl.moveFish(npc, this, vec3d)) { super.travel(vec3d); } + } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -236,6 +247,7 @@ public class TurtleController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VexController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VexController.java index 3a56b602d..758adb4e5 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VexController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VexController.java @@ -53,6 +53,7 @@ public class VexController extends MobEntityController { if (npc != null) { setNoGravity(true); } + } @Override @@ -67,6 +68,7 @@ public class VexController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -76,6 +78,7 @@ public class VexController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -88,6 +91,7 @@ public class VexController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VexNPC(this)); } + return super.getBukkitEntity(); } @@ -149,6 +153,7 @@ public class VexController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -159,6 +164,7 @@ public class VexController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -182,6 +188,7 @@ public class VexController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VillagerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VillagerController.java index f72869dd8..6128c8ab1 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VillagerController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VillagerController.java @@ -64,6 +64,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(0.3); } + } @Override @@ -85,6 +86,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -92,6 +94,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -99,13 +102,16 @@ public class VillagerController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); if (npc != null) { npc.update(); if (npc.data().get(NPC.Metadata.RESET_PITCH_ON_TICK, true)) { NMS.setPitch(getBukkitEntity(), 0); } + } + } @Override @@ -118,6 +124,7 @@ public class VillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -168,6 +175,7 @@ public class VillagerController extends MobEntityController { blockingATrade = false; return true; } + return super.isTrading(); } @@ -190,7 +198,9 @@ public class VillagerController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.mobInteract(entityhuman, enumhand); } @@ -208,6 +218,7 @@ public class VillagerController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -217,6 +228,7 @@ public class VillagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -227,6 +239,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -246,6 +259,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -255,6 +269,7 @@ public class VillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -266,6 +281,7 @@ public class VillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VindicatorController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VindicatorController.java index dfc4c6aa3..9df6de5f8 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VindicatorController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VindicatorController.java @@ -74,6 +74,7 @@ public class VindicatorController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -81,6 +82,7 @@ public class VindicatorController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -90,6 +92,7 @@ public class VindicatorController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -102,6 +105,7 @@ public class VindicatorController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new VindicatorNPC(this)); } + return super.getBukkitEntity(); } @@ -171,6 +175,7 @@ public class VindicatorController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -180,6 +185,7 @@ public class VindicatorController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +196,7 @@ public class VindicatorController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -211,6 +218,7 @@ public class VindicatorController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -222,6 +230,7 @@ public class VindicatorController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WanderingTraderController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WanderingTraderController.java index 64a275fd2..cf3bb1c21 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WanderingTraderController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WanderingTraderController.java @@ -83,6 +83,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -90,6 +91,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -97,11 +99,13 @@ public class WanderingTraderController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); if (npc != null) { setDespawnDelay(10); npc.update(); } + } @Override @@ -114,6 +118,7 @@ public class WanderingTraderController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WanderingTraderNPC(this)); } + return super.getBukkitEntity(); } @@ -168,6 +173,7 @@ public class WanderingTraderController extends MobEntityController { blockingATrade = false; return true; } + return super.isTrading(); } @@ -190,7 +196,9 @@ public class WanderingTraderController extends MobEntityController { if (list != null) { list.clear(); } + } + return super.mobInteract(entityhuman, enumhand); } @@ -208,6 +216,7 @@ public class WanderingTraderController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -217,6 +226,7 @@ public class WanderingTraderController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -227,6 +237,7 @@ public class WanderingTraderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -250,6 +261,7 @@ public class WanderingTraderController extends MobEntityController { if (npc == null) { super.thunderHit(worldserver, entitylightning); } + } @Override @@ -259,6 +271,7 @@ public class WanderingTraderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -270,6 +283,7 @@ public class WanderingTraderController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WardenController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WardenController.java index 4aa752696..65b341934 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WardenController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WardenController.java @@ -76,6 +76,7 @@ public class WardenController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -83,6 +84,7 @@ public class WardenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -97,6 +99,7 @@ public class WardenController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + } @Override @@ -109,6 +112,7 @@ public class WardenController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WardenNPC(this)); } + return super.getBukkitEntity(); } @@ -178,6 +182,7 @@ public class WardenController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -188,6 +193,7 @@ public class WardenController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -209,6 +215,7 @@ public class WardenController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -220,6 +227,7 @@ public class WardenController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WitchController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WitchController.java index 6cd459873..124bd6968 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WitchController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WitchController.java @@ -73,6 +73,7 @@ public class WitchController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class WitchController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class WitchController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitchNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class WitchController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class WitchController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -189,6 +195,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -210,6 +217,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -221,6 +229,7 @@ public class WitchController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WitherController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WitherController.java index f61826fc0..ec742398e 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WitherController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WitherController.java @@ -64,6 +64,7 @@ public class WitherController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -75,8 +76,10 @@ public class WitherController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } + npc.update(); } + } @Override @@ -94,6 +97,7 @@ public class WitherController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitherNPC(this)); } + return super.getBukkitEntity(); } @@ -161,6 +165,7 @@ public class WitherController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -171,6 +176,7 @@ public class WitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -194,6 +200,7 @@ public class WitherController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WolfController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WolfController.java index 59020304d..eb92a426a 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WolfController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WolfController.java @@ -76,6 +76,7 @@ public class WolfController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -83,6 +84,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -92,6 +94,7 @@ public class WolfController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -104,6 +107,7 @@ public class WolfController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WolfNPC(this)); } + return super.getBukkitEntity(); } @@ -173,6 +177,7 @@ public class WolfController extends MobEntityController { super.onSyncedDataUpdated(datawatcherobject); return; } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); } @@ -182,6 +187,7 @@ public class WolfController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -192,6 +198,7 @@ public class WolfController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -218,6 +225,7 @@ public class WolfController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -229,6 +237,7 @@ public class WolfController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZoglinController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZoglinController.java index c2af35171..c3fbdc6b9 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZoglinController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZoglinController.java @@ -73,6 +73,7 @@ public class ZoglinController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class ZoglinController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -87,10 +89,12 @@ public class ZoglinController extends MobEntityController { if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); } + super.customServerAiStep(); if (npc != null) { npc.update(); } + } @Override @@ -103,6 +107,7 @@ public class ZoglinController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZoglinNPC(this)); } + return super.getBukkitEntity(); } @@ -172,6 +177,7 @@ public class ZoglinController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -182,6 +188,7 @@ public class ZoglinController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -203,6 +210,7 @@ public class ZoglinController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -214,6 +222,7 @@ public class ZoglinController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieController.java index 376446056..2eb173095 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieController.java @@ -73,6 +73,7 @@ public class ZombieController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class ZombieController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class ZombieController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class ZombieController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +207,7 @@ public class ZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -212,6 +219,7 @@ public class ZombieController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieHuskController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieHuskController.java index aabd03e9c..72fc11511 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieHuskController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieHuskController.java @@ -73,6 +73,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class ZombieHuskController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class ZombieHuskController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieHuskNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class ZombieHuskController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class ZombieHuskController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +207,7 @@ public class ZombieHuskController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -212,6 +219,7 @@ public class ZombieHuskController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieVillagerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieVillagerController.java index 9726402c3..930592b03 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieVillagerController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieVillagerController.java @@ -73,6 +73,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null) { super.checkDespawn(); } + } @Override @@ -80,6 +81,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.checkFallDamage(d0, flag, iblockdata, blockposition); } + } @Override @@ -89,6 +91,7 @@ public class ZombieVillagerController extends MobEntityController { NMSImpl.updateMinecraftAIState(npc, this); npc.update(); } + } @Override @@ -101,6 +104,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ZombieVillagerNPC(this)); } + return super.getBukkitEntity(); } @@ -170,6 +174,7 @@ public class ZombieVillagerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -180,6 +185,7 @@ public class ZombieVillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -201,6 +207,7 @@ public class ZombieVillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, vec3d); } + } @Override @@ -212,6 +219,7 @@ public class ZombieVillagerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/AreaEffectCloudController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/AreaEffectCloudController.java index a5e896327..ed788c71b 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/AreaEffectCloudController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/AreaEffectCloudController.java @@ -59,6 +59,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new AreaEffectCloudNPC(this)); } + return super.getBukkitEntity(); } @@ -89,6 +90,7 @@ public class AreaEffectCloudController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +101,7 @@ public class AreaEffectCloudController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -120,6 +123,7 @@ public class AreaEffectCloudController extends MobEntityController { } else { super.tick(); } + } @Override @@ -131,6 +135,7 @@ public class AreaEffectCloudController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/BlockDisplayController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/BlockDisplayController.java index f271d6d11..2df72df1c 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/BlockDisplayController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/BlockDisplayController.java @@ -41,6 +41,7 @@ public class BlockDisplayController extends MobEntityController { ((org.bukkit.entity.BlockDisplay) handle.getBukkitEntity()) .setBlock(npc.getItemProvider().get().getType().createBlockData()); } + return handle.getBukkitEntity(); } @@ -72,6 +73,7 @@ public class BlockDisplayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BlockDisplayNPC(this)); } + return super.getBukkitEntity(); } @@ -102,6 +104,7 @@ public class BlockDisplayController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -112,6 +115,7 @@ public class BlockDisplayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -133,6 +137,7 @@ public class BlockDisplayController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -144,6 +149,7 @@ public class BlockDisplayController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/BoatController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/BoatController.java index b60e261be..5d4ad8177 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/BoatController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/BoatController.java @@ -72,6 +72,7 @@ public class BoatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new BoatNPC(this)); } + return super.getBukkitEntity(); } @@ -91,6 +92,7 @@ public class BoatController extends MobEntityController { this.aC = getBoundingBox().maxY; return entityboat_Status; } + if (t()) return Status.IN_WATER; float f = getGroundFriction(); @@ -98,6 +100,7 @@ public class BoatController extends MobEntityController { this.aD = f; return Status.ON_LAND; } + return Status.IN_AIR; } @@ -118,6 +121,7 @@ public class BoatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -128,6 +132,7 @@ public class BoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -137,6 +142,7 @@ public class BoatController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -166,9 +172,13 @@ public class BoatController extends MobEntityController { this.aC = Math.max(f, this.aC); m = flag | (axisalignedbb.minY < f ? true : false); } + } + } + } + return m; } @@ -210,7 +220,9 @@ public class BoatController extends MobEntityController { if (getControllingPassenger() instanceof ServerPlayer) { this.aD /= 2.0F; } + } + Vec3 vec3d = getDeltaMovement(); setDeltaMovement(vec3d.x * this.ap, vec3d.y + d1, vec3d.z * this.ap); this.ar *= this.ap; @@ -218,14 +230,18 @@ public class BoatController extends MobEntityController { Vec3 vec3d1 = getDeltaMovement(); setDeltaMovement(vec3d1.x, vec3d1.y + d2 * 0.0615D, vec3d1.z); } + } + move(MoverType.SELF, getDeltaMovement()); if (isVehicle()) { setYRot((float) (getYRot() + this.ar)); } + } else { super.tick(); } + } private Status u() { @@ -250,9 +266,13 @@ public class BoatController extends MobEntityController { return Status.UNDER_FLOWING_WATER; flag = true; } + } + } + } + return flag ? Status.UNDER_WATER : null; } @@ -265,6 +285,7 @@ public class BoatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ChestBoatController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ChestBoatController.java index 1fe2c735c..a67caea57 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ChestBoatController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ChestBoatController.java @@ -73,6 +73,7 @@ public class ChestBoatController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ChestBoatNPC(this)); } + return super.getBukkitEntity(); } @@ -92,6 +93,7 @@ public class ChestBoatController extends MobEntityController { this.aC = getBoundingBox().maxY; return entityboat_Status; } + if (t()) return Status.IN_WATER; float f = getGroundFriction(); @@ -99,6 +101,7 @@ public class ChestBoatController extends MobEntityController { this.aD = f; return Status.ON_LAND; } + return Status.IN_AIR; } @@ -119,6 +122,7 @@ public class ChestBoatController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -129,6 +133,7 @@ public class ChestBoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -138,6 +143,7 @@ public class ChestBoatController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -167,9 +173,13 @@ public class ChestBoatController extends MobEntityController { this.aC = Math.max(f, this.aC); m = flag | (axisalignedbb.minY < f ? true : false); } + } + } + } + return m; } @@ -211,7 +221,9 @@ public class ChestBoatController extends MobEntityController { if (getControllingPassenger() instanceof ServerPlayer) { this.aD /= 2.0F; } + } + Vec3 vec3d = getDeltaMovement(); setDeltaMovement(vec3d.x * this.ap, vec3d.y + d1, vec3d.z * this.ap); this.ar *= this.ap; @@ -219,14 +231,18 @@ public class ChestBoatController extends MobEntityController { Vec3 vec3d1 = getDeltaMovement(); setDeltaMovement(vec3d1.x, vec3d1.y + d2 * 0.0615D, vec3d1.z); } + } + move(MoverType.SELF, getDeltaMovement()); if (isVehicle()) { setYRot((float) (getYRot() + this.ar)); } + } else { super.tick(); } + } private Status u() { @@ -251,9 +267,13 @@ public class ChestBoatController extends MobEntityController { return Status.UNDER_FLOWING_WATER; flag = true; } + } + } + } + return flag ? Status.UNDER_WATER : null; } @@ -266,6 +286,7 @@ public class ChestBoatController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/DragonFireballController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/DragonFireballController.java index bd4eba6e4..f9bcf0cf9 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/DragonFireballController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/DragonFireballController.java @@ -59,6 +59,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new DragonFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -89,6 +90,7 @@ public class DragonFireballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +101,7 @@ public class DragonFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -108,6 +111,7 @@ public class DragonFireballController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -129,9 +133,11 @@ public class DragonFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -143,6 +149,7 @@ public class DragonFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EggController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EggController.java index 5fab87da0..b0b0d6852 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EggController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EggController.java @@ -73,6 +73,7 @@ public class EggController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EggNPC(this)); } + return super.getBukkitEntity(); } @@ -103,6 +104,7 @@ public class EggController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -113,6 +115,7 @@ public class EggController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -134,9 +137,11 @@ public class EggController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -148,6 +153,7 @@ public class EggController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderCrystalController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderCrystalController.java index 732a430c9..e4fc7a30e 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderCrystalController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderCrystalController.java @@ -59,6 +59,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderCrystalNPC(this)); } + return super.getBukkitEntity(); } @@ -89,6 +90,7 @@ public class EnderCrystalController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -99,6 +101,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -120,6 +123,7 @@ public class EnderCrystalController extends MobEntityController { } else { super.tick(); } + } @Override @@ -131,6 +135,7 @@ public class EnderCrystalController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderPearlController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderPearlController.java index 7d4bf385f..498085446 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderPearlController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderPearlController.java @@ -60,6 +60,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderPearlNPC(this)); } + return super.getBukkitEntity(); } @@ -90,6 +91,7 @@ public class EnderPearlController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -100,6 +102,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,9 +124,11 @@ public class EnderPearlController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -135,6 +140,7 @@ public class EnderPearlController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderSignalController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderSignalController.java index c46119e0d..4262b76de 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderSignalController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderSignalController.java @@ -60,6 +60,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EnderSignalNPC(this)); } + return super.getBukkitEntity(); } @@ -90,6 +91,7 @@ public class EnderSignalController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -100,6 +102,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,6 +124,7 @@ public class EnderSignalController extends MobEntityController { } else { super.tick(); } + } @Override @@ -132,6 +136,7 @@ public class EnderSignalController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EvokerFangsController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EvokerFangsController.java index 490561a2e..0d37f55e6 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EvokerFangsController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EvokerFangsController.java @@ -57,6 +57,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new EvokerFangsNPC(this)); } + return super.getBukkitEntity(); } @@ -97,6 +98,7 @@ public class EvokerFangsController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -107,6 +109,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -127,6 +130,7 @@ public class EvokerFangsController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -138,6 +142,7 @@ public class EvokerFangsController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ExperienceOrbController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ExperienceOrbController.java index e24a26b84..78d0c24cd 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ExperienceOrbController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ExperienceOrbController.java @@ -53,6 +53,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ExperienceOrbNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class ExperienceOrbController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class ExperienceOrbController extends MobEntityController { } else { super.tick(); } + } @Override @@ -125,6 +129,7 @@ public class ExperienceOrbController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FallingBlockController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FallingBlockController.java index 4384d36c1..89f67bc6f 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FallingBlockController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FallingBlockController.java @@ -69,6 +69,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FallingBlockNPC(this)); } + return super.getBukkitEntity(); } @@ -99,6 +100,7 @@ public class FallingBlockController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -109,6 +111,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -118,6 +121,7 @@ public class FallingBlockController extends AbstractEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -142,9 +146,11 @@ public class FallingBlockController extends AbstractEntityController { setDeltaMovement(mot); move(MoverType.SELF, mot); } + } else { super.tick(); } + } @Override @@ -156,6 +162,7 @@ public class FallingBlockController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FireworkController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FireworkController.java index 61326b671..5062cb9d2 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FireworkController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FireworkController.java @@ -54,6 +54,7 @@ public class FireworkController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FireworkNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class FireworkController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class FireworkController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class FireworkController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class FireworkController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FishingHookController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FishingHookController.java index 1118d9b68..389994b09 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FishingHookController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FishingHookController.java @@ -86,6 +86,7 @@ public class FishingHookController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new FishingHookNPC(this)); } + return super.getBukkitEntity(); } @@ -116,6 +117,7 @@ public class FishingHookController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -126,6 +128,7 @@ public class FishingHookController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -149,6 +152,7 @@ public class FishingHookController extends MobEntityController { } else { super.tick(); } + } @Override @@ -160,6 +164,7 @@ public class FishingHookController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/GlowItemFrameController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/GlowItemFrameController.java index 2354f7fc7..defeeee73 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/GlowItemFrameController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/GlowItemFrameController.java @@ -65,6 +65,7 @@ public class GlowItemFrameController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new GlowItemFrameNPC(this)); } + return super.getBukkitEntity(); } @@ -95,6 +96,7 @@ public class GlowItemFrameController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -105,6 +107,7 @@ public class GlowItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -131,6 +134,7 @@ public class GlowItemFrameController extends MobEntityController { } else { super.tick(); } + } @Override @@ -142,6 +146,7 @@ public class GlowItemFrameController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/InteractionController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/InteractionController.java index 0f5c6ff77..e089b4748 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/InteractionController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/InteractionController.java @@ -53,6 +53,7 @@ public class InteractionController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new InteractionNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class InteractionController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class InteractionController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class InteractionController extends MobEntityController { } else { super.tick(); } + } @Override @@ -125,6 +129,7 @@ public class InteractionController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemController.java index 6975021a2..181c3e831 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemController.java @@ -66,6 +66,7 @@ public class ItemController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemNPC(this)); } + return super.getBukkitEntity(); } @@ -95,6 +96,7 @@ public class ItemController extends AbstractEntityController { if (npc == null) { super.playerTouch(entityhuman); } + } @Override @@ -103,6 +105,7 @@ public class ItemController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -113,6 +116,7 @@ public class ItemController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -134,6 +138,7 @@ public class ItemController extends AbstractEntityController { } else { super.tick(); } + } @Override @@ -145,6 +150,7 @@ public class ItemController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemDisplayController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemDisplayController.java index ee0281f94..985fa2762 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemDisplayController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemDisplayController.java @@ -41,6 +41,7 @@ public class ItemDisplayController extends MobEntityController { if (npc != null) { handle.setItemStack(CraftItemStack.asNMSCopy(npc.getItemProvider().get())); } + return handle.getBukkitEntity(); } @@ -66,6 +67,7 @@ public class ItemDisplayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemDisplayNPC(this)); } + return super.getBukkitEntity(); } @@ -96,6 +98,7 @@ public class ItemDisplayController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -106,6 +109,7 @@ public class ItemDisplayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -126,6 +130,7 @@ public class ItemDisplayController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -137,6 +142,7 @@ public class ItemDisplayController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemFrameController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemFrameController.java index 447d5051b..4f06213c3 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemFrameController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemFrameController.java @@ -64,6 +64,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ItemFrameNPC(this)); } + return super.getBukkitEntity(); } @@ -94,6 +95,7 @@ public class ItemFrameController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -104,6 +106,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +133,7 @@ public class ItemFrameController extends MobEntityController { } else { super.tick(); } + } @Override @@ -141,6 +145,7 @@ public class ItemFrameController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LargeFireballController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LargeFireballController.java index 02afab167..8db37c99d 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LargeFireballController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LargeFireballController.java @@ -53,6 +53,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LargeFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class LargeFireballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -102,6 +105,7 @@ public class LargeFireballController extends MobEntityController { } else { NMSImpl.setSize(this, firstTick); } + } @Override @@ -123,9 +127,11 @@ public class LargeFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -137,6 +143,7 @@ public class LargeFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LeashController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LeashController.java index 01f3d38c5..008263c79 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LeashController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LeashController.java @@ -54,6 +54,7 @@ public class LeashController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LeashNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class LeashController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class LeashController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -120,6 +123,7 @@ public class LeashController extends MobEntityController { } else { super.tick(); } + } @Override @@ -131,6 +135,7 @@ public class LeashController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LlamaSpitController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LlamaSpitController.java index 2966ff8cc..a05b71581 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LlamaSpitController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LlamaSpitController.java @@ -70,6 +70,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new LlamaSpitNPC(this)); } + return super.getBukkitEntity(); } @@ -100,6 +101,7 @@ public class LlamaSpitController extends AbstractEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -110,6 +112,7 @@ public class LlamaSpitController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -131,9 +134,11 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -145,6 +150,7 @@ public class LlamaSpitController extends AbstractEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MarkerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MarkerController.java index 85a3af3e2..680978e3d 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MarkerController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MarkerController.java @@ -53,6 +53,7 @@ public class MarkerController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MarkerNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class MarkerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class MarkerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class MarkerController extends MobEntityController { } else { super.tick(); } + } @Override @@ -125,6 +129,7 @@ public class MarkerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartChestController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartChestController.java index d6d4aa757..b5793f8dc 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartChestController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartChestController.java @@ -54,6 +54,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartChestNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class MinecartChestController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class MinecartChestController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -126,6 +130,7 @@ public class MinecartChestController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartCommandController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartCommandController.java index 2f6ff03a0..7ce5e7ab4 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartCommandController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartCommandController.java @@ -54,6 +54,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartCommandNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class MinecartCommandController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class MinecartCommandController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -126,6 +130,7 @@ public class MinecartCommandController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartFurnaceController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartFurnaceController.java index e826e41c6..f08ea5041 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartFurnaceController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartFurnaceController.java @@ -54,6 +54,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartFurnaceNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class MinecartFurnaceController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class MinecartFurnaceController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -126,6 +130,7 @@ public class MinecartFurnaceController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartHopperController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartHopperController.java index 9ea6fcf94..2721b5019 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartHopperController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartHopperController.java @@ -71,6 +71,7 @@ public class MinecartHopperController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -81,6 +82,7 @@ public class MinecartHopperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -102,6 +104,7 @@ public class MinecartHopperController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -113,6 +116,7 @@ public class MinecartHopperController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartRideableController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartRideableController.java index 669abee7e..2403c266b 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartRideableController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartRideableController.java @@ -53,6 +53,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new MinecartRideableNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class MinecartRideableController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class MinecartRideableController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -125,6 +129,7 @@ public class MinecartRideableController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartSpawnerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartSpawnerController.java index 110bf0f0b..4b98b1a30 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartSpawnerController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartSpawnerController.java @@ -71,6 +71,7 @@ public class MinecartSpawnerController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -81,6 +82,7 @@ public class MinecartSpawnerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -102,6 +104,7 @@ public class MinecartSpawnerController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -113,6 +116,7 @@ public class MinecartSpawnerController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartTNTController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartTNTController.java index c3a0ba5d6..3e090ead8 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartTNTController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartTNTController.java @@ -71,6 +71,7 @@ public class MinecartTNTController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -81,6 +82,7 @@ public class MinecartTNTController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -102,6 +104,7 @@ public class MinecartTNTController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } @Override @@ -113,6 +116,7 @@ public class MinecartTNTController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/PaintingController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/PaintingController.java index b91dadb10..1ea73e9f1 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/PaintingController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/PaintingController.java @@ -53,6 +53,7 @@ public class PaintingController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new PaintingNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class PaintingController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class PaintingController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -119,6 +122,7 @@ public class PaintingController extends MobEntityController { } else { super.tick(); } + } @Override @@ -130,6 +134,7 @@ public class PaintingController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ShulkerBulletController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ShulkerBulletController.java index ac1277909..86b0c39ef 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ShulkerBulletController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ShulkerBulletController.java @@ -53,6 +53,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ShulkerBulletNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class ShulkerBulletController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class ShulkerBulletController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class ShulkerBulletController extends MobEntityController { } else { super.tick(); } + } @Override @@ -125,6 +129,7 @@ public class ShulkerBulletController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SmallFireballController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SmallFireballController.java index e52a9b5bd..2ec54c21e 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SmallFireballController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SmallFireballController.java @@ -53,6 +53,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SmallFireballNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class SmallFireballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,9 +117,11 @@ public class SmallFireballController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -128,6 +133,7 @@ public class SmallFireballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SnowballController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SnowballController.java index e9b3b9074..cc4322331 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SnowballController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SnowballController.java @@ -53,6 +53,7 @@ public class SnowballController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SnowballNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class SnowballController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class SnowballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class SnowballController extends MobEntityController { } else { super.tick(); } + } @Override @@ -125,6 +129,7 @@ public class SnowballController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SpectralArrowController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SpectralArrowController.java index 8ae96aee2..ae0ebdb2a 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SpectralArrowController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SpectralArrowController.java @@ -54,6 +54,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new SpectralArrowNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class SpectralArrowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class SpectralArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class SpectralArrowController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class SpectralArrowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TNTPrimedController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TNTPrimedController.java index cb65179d9..538cbf9b7 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TNTPrimedController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TNTPrimedController.java @@ -54,6 +54,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TNTPrimedNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class TNTPrimedController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class TNTPrimedController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class TNTPrimedController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TextDisplayController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TextDisplayController.java index 8294c3cc4..8a0466602 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TextDisplayController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TextDisplayController.java @@ -53,6 +53,7 @@ public class TextDisplayController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TextDisplayNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class TextDisplayController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class TextDisplayController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -113,6 +116,7 @@ public class TextDisplayController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -124,6 +128,7 @@ public class TextDisplayController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownExpBottleController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownExpBottleController.java index b495316c3..f99a3f5aa 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownExpBottleController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownExpBottleController.java @@ -54,6 +54,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ThrownExpBottleNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class ThrownExpBottleController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,9 +118,11 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isProtected()) { super.tick(); } + } else { super.tick(); } + } @Override @@ -129,6 +134,7 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownPotionController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownPotionController.java index b158b2925..94c1771d2 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownPotionController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownPotionController.java @@ -57,7 +57,9 @@ public class ThrownPotionController extends MobEntityController { } else { NMSImpl.setBukkitEntity(this, new SplashThrownPotionNPC(this)); } + } + return super.getBukkitEntity(); } @@ -88,6 +90,7 @@ public class ThrownPotionController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -98,6 +101,7 @@ public class ThrownPotionController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -119,6 +123,7 @@ public class ThrownPotionController extends MobEntityController { } else { super.tick(); } + } @Override @@ -130,6 +135,7 @@ public class ThrownPotionController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownTridentController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownTridentController.java index 6e6490188..74e590c63 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownTridentController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownTridentController.java @@ -54,6 +54,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new ThrownTridentNPC(this)); } + return super.getBukkitEntity(); } @@ -84,6 +85,7 @@ public class ThrownTridentController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -94,6 +96,7 @@ public class ThrownTridentController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +118,7 @@ public class ThrownTridentController extends MobEntityController { } else { super.tick(); } + } @Override @@ -126,6 +130,7 @@ public class ThrownTridentController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TippedArrowController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TippedArrowController.java index bd7b1584c..10c466afa 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TippedArrowController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TippedArrowController.java @@ -53,6 +53,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new TippedArrowNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class TippedArrowController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class TippedArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class TippedArrowController extends MobEntityController { } else { super.tick(); } + } @Override @@ -125,6 +129,7 @@ public class TippedArrowController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/WitherSkullController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/WitherSkullController.java index 4a66739cf..f5d210e45 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/WitherSkullController.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/WitherSkullController.java @@ -53,6 +53,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { NMSImpl.setBukkitEntity(this, new WitherSkullNPC(this)); } + return super.getBukkitEntity(); } @@ -83,6 +84,7 @@ public class WitherSkullController extends MobEntityController { if (vector != null) { super.push(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +95,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -114,6 +117,7 @@ public class WitherSkullController extends MobEntityController { } else { super.tick(); } + } @Override @@ -125,6 +129,7 @@ public class WitherSkullController extends MobEntityController { if (!npc.isPushableByFluids()) { setDeltaMovement(old); } + return res; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/network/EmptyConnection.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/network/EmptyConnection.java index 78bb29791..f07e076dd 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/network/EmptyConnection.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/network/EmptyConnection.java @@ -49,5 +49,6 @@ public class EmptyConnection extends Connection { } catch (Throwable e) { e.printStackTrace(); } + } } \ No newline at end of file diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CitizensBlockBreaker.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CitizensBlockBreaker.java index 1c514c058..c22cd9e21 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CitizensBlockBreaker.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CitizensBlockBreaker.java @@ -47,6 +47,7 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { ItemStack current = getCurrentItem(); return current != null ? current.isCorrectToolForDrops(block) : false; } + } @Override @@ -65,10 +66,13 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { if (i > 0) { f += i * i + 1; } + } + if (MobEffectUtil.hasDigSpeed(handle)) { f *= 1.0F + (MobEffectUtil.getDigSpeedAmplification(handle) + 1) * 0.2F; } + if (handle.hasEffect(MobEffects.DIG_SLOWDOWN)) { float f1 = 1.0F; switch (handle.getEffect(MobEffects.DIG_SLOWDOWN).getAmplifier()) { @@ -85,15 +89,20 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { default: f1 = 8.1E-4F; } + f *= f1; } + if (handle.isEyeInFluid(FluidTags.WATER) && !EnchantmentHelper.hasAquaAffinity(handle)) { f /= 5.0F; } + } + if (!entity.isOnGround()) { f /= 5.0F; } + return f; } } \ No newline at end of file diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CitizensEntityTracker.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CitizensEntityTracker.java index 81e197ab4..05fdb8661 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CitizensEntityTracker.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CitizensEntityTracker.java @@ -37,6 +37,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { Bukkit.getPluginManager().callEvent(new NPCLinkToPlayerEvent(((NPCHolder) tracker).getNPC(), conn.getPlayer().getBukkitEntity())); } + return res; } @@ -48,6 +49,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + } public CitizensEntityTracker(ChunkMap map, TrackedEntity entry) { @@ -86,7 +88,9 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + } + return false; }, REQUIRES_SYNC); @@ -103,6 +107,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return false; } @@ -112,6 +117,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -121,6 +127,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return 0; } @@ -130,6 +137,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { } catch (Throwable e) { e.printStackTrace(); } + return 0; } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EmptyAdvancementDataPlayer.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EmptyAdvancementDataPlayer.java index 7d4ae98b3..e68a1e44e 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EmptyAdvancementDataPlayer.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EmptyAdvancementDataPlayer.java @@ -71,9 +71,11 @@ public class EmptyAdvancementDataPlayer extends PlayerAdvancements { for (MethodHandle handle : SETS) { ((Set) handle.invoke(data)).clear(); } + } catch (Throwable e) { e.printStackTrace(); } + } private static final MethodHandle PROGRESS = NMS.getFirstGetter(PlayerAdvancements.class, Map.class); diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityMoveControl.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityMoveControl.java index 8d9ac4177..bc3115724 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityMoveControl.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityMoveControl.java @@ -60,15 +60,18 @@ public class EntityMoveControl extends MoveControl { if (f3 > f2) { f3 = f2; } + if (f3 < -f2) { f3 = -f2; } + float f4 = f + f3; if (f4 < 0.0F) { f4 += 360.0F; } else if (f4 > 360.0F) { f4 -= 360.0F; } + return f4; } @@ -110,12 +113,15 @@ public class EntityMoveControl extends MoveControl { if (((Slime) entity).isAggressive()) { this.jumpTicks /= 3; } + ((Slime) entity).getJumpControl().jump(); } else if (dY >= NMS.getStepHeight(entity.getBukkitEntity()) && dXZ < 0.4D) { if (entity instanceof Mob) { ((Mob) entity).getJumpControl().jump(); } + entity.setJumping(true); } + } } \ No newline at end of file diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNavigation.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNavigation.java index d477f74c8..43ae8fb33 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNavigation.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNavigation.java @@ -167,6 +167,7 @@ public class EntityNavigation extends PathNavigation { return supercreatePath(var2, var1); } + } @Override @@ -229,9 +230,11 @@ public class EntityNavigation extends PathNavigation { } else { this.isStuck = false; } + this.lastStuckCheck = this.tick; this.lastStuckCheckPos = var0; } + if (this.path != null && !this.path.isDone()) { BlockPos blockPos = this.path.getNextNodePos(); if (blockPos.equals(this.timeoutCachedNode)) { @@ -241,11 +244,14 @@ public class EntityNavigation extends PathNavigation { double var2 = var0.distanceTo(Vec3.atBottomCenterOf(this.timeoutCachedNode)); this.timeoutLimit = this.mob.getSpeed() > 0.0F ? var2 / this.mob.getSpeed() * 1000.0D : 0.0D; } + if (this.timeoutLimit > 0.0D && this.timeoutTimer > this.timeoutLimit * 3.0D) { timeoutPath(); } + this.lastTimeoutCheck = System.currentTimeMillis(); } + } @Override @@ -261,6 +267,7 @@ public class EntityNavigation extends PathNavigation { if (var8 || canCutCorner(this.path.getNextNode().type) && shouldTargetNextNodeInDirection(var0)) { this.path.advance(); } + doStuckDetection(var0); } @@ -301,6 +308,7 @@ public class EntityNavigation extends PathNavigation { return this.mob.getBlockY(); } else return Mth.floor(this.mob.getY() + 0.5); + } @Override @@ -358,9 +366,11 @@ public class EntityNavigation extends PathNavigation { this.path = null; return false; } + if (!var0.sameAs(this.path)) { this.path = var0; } + if (isDone()) return false; trimPath(); @@ -382,9 +392,11 @@ public class EntityNavigation extends PathNavigation { this.timeLastRecompute = this.level.getGameTime(); this.hasDelayedRecomputation = false; } + } else { this.hasDelayedRecomputation = true; } + } @Override @@ -432,7 +444,8 @@ public class EntityNavigation extends PathNavigation { @Override public boolean shouldRecomputePath(BlockPos var0) { - if (this.hasDelayedRecomputation || ((this.path == null) || this.path.isDone() || (this.path.getNodeCount() == 0))) + if (this.hasDelayedRecomputation + || ((this.path == null) || this.path.isDone() || (this.path.getNodeCount() == 0))) return false; else { Node var1 = this.path.getEndNode(); @@ -440,6 +453,7 @@ public class EntityNavigation extends PathNavigation { (var1.z + this.mob.getZ()) / 2.0D); return var0.closerToCenterThan(var2, this.path.getNodeCount() - this.path.getNextNodeIndex()); } + } private boolean shouldTargetNextNodeInDirection(Vec3 var0) { @@ -475,8 +489,11 @@ public class EntityNavigation extends PathNavigation { if (var2 != null && var1.y >= var2.y) { this.path.replaceNode(var0 + 1, var1.cloneAndMove(var2.x, var1.y + 1, var2.z)); } + } + } + } @Override @@ -485,6 +502,7 @@ public class EntityNavigation extends PathNavigation { if (this.hasDelayedRecomputation) { recomputePath(); } + if (isDone()) return; if (canUpdatePath()) { @@ -496,7 +514,9 @@ public class EntityNavigation extends PathNavigation { && Mth.floor(vec31.z) == Mth.floor(vec32.z)) { this.path.advance(); } + } + if (isDone()) return; Vec3 var0 = this.path.getNextEntityPos(this.mob); @@ -521,7 +541,10 @@ public class EntityNavigation extends PathNavigation { this.path.truncateNodes(var0); return; } + } + } + } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNodeEvaluator.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNodeEvaluator.java index 8d377f4f7..1690d123f 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNodeEvaluator.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNodeEvaluator.java @@ -127,7 +127,9 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (this.hasCollisions(var20)) { var8 = null; } + } + } if (!this.isAmphibious() && var12 == BlockPathTypes.WATER && !this.canFloat()) { @@ -143,6 +145,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var8 = this.getNodeAndUpdateCostToMax(var0, var1, var2, var12, this.mvmt.getPathfindingMalus(var12)); } + } if (var12 == BlockPathTypes.OPEN) { @@ -167,6 +170,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var13 < 0.0F) return this.getBlockedNode(var0, var1, var2); } + } if (doesBlockHavePartialCollision(var12) && var8 == null) { @@ -175,9 +179,12 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var8.type = var12; var8.costMalus = var12.getMalus(); } + } + return var8; } + } private Node getBlockedNode(int var0, int var1, int var2) { @@ -212,6 +219,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (mvmt.getPathfindingMalus(varr9) >= mvmt.getPathfindingMalus(var7)) { var7 = varr9; } + } if (var6 == BlockPathTypes.OPEN && mvmt.getPathfindingMalus(var7) == 0.0F && this.entityWidth <= 1) @@ -242,6 +250,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (mvmt.getPathfindingMalus(varr9) >= mvmt.getPathfindingMalus(var7)) { var7 = varr9; } + } if (var6 == BlockPathTypes.OPEN && mvmt.getPathfindingMalus(var7) == 0.0F && this.entityWidth <= 1) @@ -271,7 +280,9 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var4.add(var13); } + } + } return var5; @@ -375,6 +386,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { ++var0; var2 = this.level.getBlockState(var1.set(this.mob.getX(), var0, this.mob.getZ())); } + } else if (this.mob.onGround()) { var0 = Mth.floor(this.mob.getY() + 0.5); } else { @@ -385,6 +397,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { var0 = var3.above().getY(); } + } else { while (true) { if (!this.mob.canStandOnFluid(var2.getFluidState())) { @@ -395,6 +408,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { ++var0; var2 = this.level.getBlockState(var1.set(this.mob.getX(), var0, this.mob.getZ())); } + } var3 = this.mob.blockPosition(); @@ -437,6 +451,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { && (var1.y < var0.y || var1.costMalus >= 0.0F || var4); } else return false; + } else return false; } @@ -481,8 +496,11 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var9.is(Blocks.WITHER_ROSE) || var9.is(Blocks.POINTED_DRIPSTONE)) return BlockPathTypes.DAMAGE_CAUTIOUS; } + } + } + } return var2; @@ -566,6 +584,7 @@ public class EntityNodeEvaluator extends EntityNodeEvaluatorBase { if (var6 == BlockPathTypes.DAMAGE_CAUTIOUS) { var5 = BlockPathTypes.DAMAGE_CAUTIOUS; } + } if (var5 == BlockPathTypes.WALKABLE) { diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityPathfinder.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityPathfinder.java index 838360a63..bc9e52e66 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityPathfinder.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityPathfinder.java @@ -92,6 +92,7 @@ public class EntityPathfinder extends PathFinder { var13.setReached(); var9.add(var13); } + } if (!var9.isEmpty()) { @@ -116,12 +117,19 @@ public class EntityPathfinder extends PathFinder { var14.h += var14.f; this.openSet.insert(var14); } + } + } + } + } - Optional var11 = !var9.isEmpty() ? var9.stream().map(var1x -> this.reconstructPath(var1x.getBestNode(), var2.get(var1x), true)).min(Comparator.comparingInt(Path::getNodeCount)) : getFallbackDestinations(var2, var6).findFirst(); + Optional var11 = !var9.isEmpty() + ? var9.stream().map(var1x -> this.reconstructPath(var1x.getBestNode(), var2.get(var1x), true)).min( + Comparator.comparingInt(Path::getNodeCount)) + : getFallbackDestinations(var2, var6).findFirst(); /*var6.stream().map((var1x) -> { return this.reconstructPath(var1x.getBestNode(), (BlockPos)var2.get(var1x), false); }).min(Comparator.comparingDouble(Path::getDistToTarget).thenComparingInt(Path::getNodeCount))*/ @@ -131,6 +139,7 @@ public class EntityPathfinder extends PathFinder { Path var12 = var11.get(); return var12; } + } private float getBestH(Node var0, Set var1) { @@ -140,13 +149,15 @@ public class EntityPathfinder extends PathFinder { var4.updateBest(var5, var0); var2 = Math.min(var5, var2); } + return var2; } public Stream getFallbackDestinations(Map var1, Set var5) { if (Setting.DISABLE_MC_NAVIGATION_FALLBACK.asBoolean()) return Stream.empty(); - return var5.stream().map(var1x -> this.reconstructPath(var1x.getBestNode(), var1.get(var1x), false)).sorted(Comparator.comparingDouble(Path::getDistToTarget).thenComparingInt(Path::getNodeCount)); + return var5.stream().map(var1x -> this.reconstructPath(var1x.getBestNode(), var1.get(var1x), false)) + .sorted(Comparator.comparingDouble(Path::getDistToTarget).thenComparingInt(Path::getNodeCount)); } private Path reconstructPath(Node var0, BlockPos var1, boolean var2) { diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/ForwardingNPCHolder.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/ForwardingNPCHolder.java index 08fbd13cf..4b8911143 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/ForwardingNPCHolder.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/ForwardingNPCHolder.java @@ -17,6 +17,7 @@ public interface ForwardingNPCHolder extends NPCHolder, Entity { () -> Joiner.on(' ').join("ForwardingNPCHolder with an improper bukkit entity", this, handle)); return null; } + return ((NPCHolder) handle).getNPC(); } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/MobAI.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/MobAI.java index 4ade482cc..c4acfe6dd 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/MobAI.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/MobAI.java @@ -41,6 +41,7 @@ public interface MobAI { if (!nav.isDone()) { nav.tick(); } + } default void updatePathfindingRange(float range) { @@ -170,6 +171,7 @@ public interface MobAI { }; } else if (handle instanceof MobAI) return (MobAI) handle; + return null; } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/NMSImpl.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/NMSImpl.java index ec907be3c..42d434204 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/NMSImpl.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/NMSImpl.java @@ -380,17 +380,21 @@ public class NMSImpl implements NMSBridge { viewDistance = (int) PLAYER_CHUNK_MAP_VIEW_DISTANCE_GETTER.invoke(chunkMap); PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER.invoke(chunkMap, -1); } + } catch (Throwable e) { e.printStackTrace(); } + boolean success = getHandle(entity).level().addFreshEntity(getHandle(entity), custom); try { if (chunkMap != null) { PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER.invoke(chunkMap, viewDistance); } + } catch (Throwable e) { e.printStackTrace(); } + return success; } @@ -406,12 +410,14 @@ public class NMSImpl implements NMSBridge { } else if (!handle.level().players().contains(handle)) { ((List) handle.level().players()).add(handle); } + try { CHUNKMAP_UPDATE_PLAYER_STATUS.invoke(((ServerLevel) handle.level()).getChunkSource().chunkMap, handle, !remove); } catch (Throwable e) { e.printStackTrace(); } + // PlayerUpdateTask.addOrRemove(entity, remove); } @@ -424,11 +430,13 @@ public class NMSImpl implements NMSBridge { PlayerAnimation.ARM_SWING.play((Player) source.getBukkitEntity()); return; } + boolean hasAttackDamage = source.getAttributes().hasAttribute(Attributes.ATTACK_DAMAGE); if (source instanceof Mob && hasAttackDamage) { ((Mob) source).doHurtTarget(target); return; } + float f = (float) (hasAttackDamage ? source.getAttributeValue(Attributes.ATTACK_DAMAGE) : 1f); int i = 0; f += EnchantmentHelper.getDamageBonus(source.getMainHandItem(), target.getMobType()); @@ -441,10 +449,12 @@ public class NMSImpl implements NMSBridge { Math.cos(source.getYRot() * Math.PI / 180.0F) * i * 0.5F); source.setDeltaMovement(source.getDeltaMovement().multiply(0.6, 1, 0.6)); } + int fireAspectLevel = EnchantmentHelper.getFireAspect(source); if (fireAspectLevel > 0) { target.setSecondsOnFire(fireAspectLevel * 4, false); } + if (target instanceof ServerPlayer) { ServerPlayer entityhuman = (ServerPlayer) target; ItemStack itemstack = source.getMainHandItem(); @@ -456,8 +466,11 @@ public class NMSImpl implements NMSBridge { entityhuman.getCooldowns().addCooldown(Items.SHIELD, 100); source.level().broadcastEntityEvent(entityhuman, (byte) 30); } + } + } + EnchantmentHelper.doPostHurtEffects(source, target); EnchantmentHelper.doPostDamageEffects(target, source); } @@ -475,7 +488,9 @@ public class NMSImpl implements NMSBridge { } catch (Throwable t) { t.printStackTrace(); } + } + } @Override @@ -512,16 +527,21 @@ public class NMSImpl implements NMSBridge { if (!changed && entity.equipmentHasChanged(old, curr)) { changed = true; } + equipment.put(slot, curr); } + if (changed) { List> vals = Lists.newArrayList(); for (EquipmentSlot slot : EquipmentSlot.values()) { vals.add(com.mojang.datafixers.util.Pair.of(slot, equipment.get(slot))); } + agg.send(new ClientboundSetEquipmentPacket(handle.getId(), vals)); } + } + tracker.sendChanges(); } @@ -542,7 +562,9 @@ public class NMSImpl implements NMSBridge { if (callback != null) { callback.accept(entity); } + } + linked.clear(); } }; @@ -577,10 +599,13 @@ public class NMSImpl implements NMSBridge { if (df != null) { bserver = df.dragonEvent; } + } + } catch (Throwable e) { e.printStackTrace(); } + if (bserver == null) return null; BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10); @@ -589,6 +614,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return ret; } @@ -699,12 +725,14 @@ public class NMSImpl implements NMSBridge { if (SKULL_META_PROFILE == null) return null; } + try { return (GameProfile) SKULL_META_PROFILE.invoke(meta); } catch (Throwable e) { e.printStackTrace(); return null; } + } @Override @@ -717,6 +745,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { throw new CommandException(Messages.INVALID_SOUND); } + } @Override @@ -732,6 +761,7 @@ public class NMSImpl implements NMSBridge { LivingEntity handle = getHandle((org.bukkit.entity.LivingEntity) npc.getEntity()); if (handle == null) { } + return DEFAULT_SPEED; // return (float) // handle.getAttribute(Attributes.d).getValue(); @@ -745,7 +775,8 @@ public class NMSImpl implements NMSBridge { @Override public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable nodes, final NavigatorParameters params) { - List list = Lists. newArrayList(Iterables. transform(nodes, input -> new Node(input.getBlockX(), input.getBlockY(), input.getBlockZ()))); + List list = Lists. newArrayList(Iterables. transform(nodes, + input -> new Node(input.getBlockX(), input.getBlockY(), input.getBlockZ()))); Node last = list.size() > 0 ? list.get(list.size() - 1) : null; final Path path = new Path(list, last != null ? new BlockPos(last.x, last.y, last.z) : null, true); return getTargetNavigator(entity, params, input -> input.moveTo(path, params.speed())); @@ -754,7 +785,8 @@ public class NMSImpl implements NMSBridge { @Override public MCNavigator getTargetNavigator(final org.bukkit.entity.Entity entity, final Location dest, final NavigatorParameters params) { - return getTargetNavigator(entity, params, input -> input.moveTo(dest.getX(), dest.getY(), dest.getZ(), params.speed())); + return getTargetNavigator(entity, params, + input -> input.moveTo(dest.getX(), dest.getY(), dest.getZ(), params.speed())); } private MCNavigator getTargetNavigator(final org.bukkit.entity.Entity entity, final NavigatorParameters params, @@ -773,7 +805,9 @@ public class NMSImpl implements NMSBridge { } else { ((Mob) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater + 1F); } + } + navigation.getNodeEvaluator().setCanOpenDoors(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; @@ -785,6 +819,7 @@ public class NMSImpl implements NMSBridge { Node pp = path.getNode(i); blocks.add(entity.getWorld().getBlockAt(pp.x, pp.y, pp.z)); } + return blocks; } @@ -805,13 +840,16 @@ public class NMSImpl implements NMSBridge { List blocks = getBlocks(entity, path); Util.sendBlockChanges(blocks, null); } + if (oldWater >= 0) { if (raw instanceof MobAI) { ((MobAI) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater); } else { ((Mob) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater); } + } + navigation.stop(); } @@ -826,12 +864,15 @@ public class NMSImpl implements NMSBridge { SIZE_FIELD_SETTER.invoke(handle, new EntityDimensions(Math.min(0.99F, size.width), size.height, false)); } + } catch (Throwable e) { e.printStackTrace(); } + if (!function.apply(navigation)) { reason = CancelReason.STUCK; } + try { SIZE_FIELD_SETTER.invoke(handle, size); } catch (Throwable e) { @@ -839,11 +880,14 @@ public class NMSImpl implements NMSBridge { // minecraft requires that an entity fit onto both blocks if width >= 1f, but we'd prefer to // make it just fit on 1 so hack around it a bit. } + if (params.debug() && getPathEntity(navigation) != null) { Util.sendBlockChanges(getBlocks(entity, getPathEntity(navigation)), Material.DANDELION); } + lastSpeed = params.speed(); } + navigation.setSpeedModifier(params.speed()); return navigation.isDone(); } @@ -1103,30 +1147,37 @@ public class NMSImpl implements NMSBridge { if (zDiff < 0.0) { yaw += Math.abs(180 - yaw) * 2; } + if (handle.getBukkitEntity().getType() == EntityType.ENDER_DRAGON) { yaw = Util.getDragonYaw(handle.getBukkitEntity(), xDiff, zDiff); } else { yaw = yaw - 90; } + if (headOnly) { setHeadYaw(entity, (float) yaw); } else { look(entity, (float) yaw, (float) pitch); } + return; } + if (handle instanceof Mob) { ((Mob) handle).getLookControl().setLookAt(to.getX(), to.getY(), to.getZ(), ((Mob) handle).getHeadRotSpeed(), ((Mob) handle).getMaxHeadXRot()); while (((LivingEntity) handle).yHeadRot >= 180F) { ((LivingEntity) handle).yHeadRot -= 360F; } + while (((LivingEntity) handle).yHeadRot < -180F) { ((LivingEntity) handle).yHeadRot += 360F; } + } else if (handle instanceof NPCHolder) { ((NPCHolder) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1139,18 +1190,22 @@ public class NMSImpl implements NMSBridge { } else { look(from, to.getLocation(), false, true); } + } else if (handle instanceof Mob) { ((Mob) handle).getLookControl().setLookAt(target, ((Mob) handle).getHeadRotSpeed(), ((Mob) handle).getMaxHeadXRot()); while (((LivingEntity) handle).yHeadRot >= 180F) { ((LivingEntity) handle).yHeadRot -= 360F; } + while (((LivingEntity) handle).yHeadRot < -180F) { ((LivingEntity) handle).yHeadRot += 360F; } + } else if (handle instanceof NPCHolder) { ((NPCHolder) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -1218,7 +1273,9 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } + } @Override @@ -1246,6 +1303,7 @@ public class NMSImpl implements NMSBridge { this, anvil), this); } + return this.bukkitEntity; } }; @@ -1293,11 +1351,13 @@ public class NMSImpl implements NMSBridge { if (key == null || type == null) { continue; } + CITIZENS_ENTITY_TYPES.put(clazz, type); int code = ENTITY_REGISTRY.getId(type); ENTITY_REGISTRY.put(code, key, type); return; } + throw new IllegalArgumentException("unable to find valid entity superclass for class " + clazz.toString()); } @@ -1335,6 +1395,7 @@ public class NMSImpl implements NMSBridge { hook.hookedIn = null; hook.getBukkitEntity().remove(); } + } @Override @@ -1374,6 +1435,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + sendPacket(recipient, packet); return true; } @@ -1388,6 +1450,7 @@ public class NMSImpl implements NMSBridge { entities[i] = (ServerPlayer) skinnable; i++; } + sendPacket(recipient, new ClientboundPlayerInfoRemovePacket( skinnableNPCs.stream().map(e -> ((ServerPlayer) e).getUUID()).collect(Collectors.toList()))); } @@ -1406,6 +1469,7 @@ public class NMSImpl implements NMSBridge { if (TEAM_FIELD == null) { TEAM_FIELD = NMS.getGetter(team.getClass(), "team"); } + try { PlayerTeam nmsTeam = (PlayerTeam) TEAM_FIELD.invoke(team); if (mode == 1) { @@ -1413,9 +1477,11 @@ public class NMSImpl implements NMSBridge { } else { sendPacket(recipient, ClientboundSetPlayerTeamPacket.createAddOrModifyPacket(nmsTeam, mode == 0)); } + } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1464,6 +1530,7 @@ public class NMSImpl implements NMSBridge { } return; } + } @Override @@ -1475,6 +1542,7 @@ public class NMSImpl implements NMSBridge { } else { getHandle(entity).setCustomName((Component) component); } + } @Override @@ -1486,6 +1554,7 @@ public class NMSImpl implements NMSBridge { if (ai != null) { ai.getMoveControl().setWantedPosition(x, y, z, speed); } + } @Override @@ -1510,6 +1579,7 @@ public class NMSImpl implements NMSBridge { if (!(handle instanceof net.minecraft.world.entity.player.Player)) { handle.setYBodyRot(yaw); } + handle.setYHeadRot(yaw); } @@ -1555,9 +1625,11 @@ public class NMSImpl implements NMSBridge { FLYING_MOVECONTROL_FLOAT_SETTER.invoke(mob.getMoveControl(), npc.data().get("flying-nogravity-float")); npc.data().remove("flying-nogravity-float"); } + } catch (Throwable t) { t.printStackTrace(); } + } @Override @@ -1594,11 +1666,13 @@ public class NMSImpl implements NMSBridge { if (SET_PROFILE_METHOD == null) return; } + try { SET_PROFILE_METHOD.invoke(meta, profile); } catch (Throwable t) { t.printStackTrace(); } + } @Override @@ -1612,6 +1686,7 @@ public class NMSImpl implements NMSBridge { } else { ((LivingEntity) handle).setJumping(true); } + } @Override @@ -1629,6 +1704,7 @@ public class NMSImpl implements NMSBridge { if (entity instanceof Player) { ((Player) entity).setSneaking(sneaking); } + Pose pose = sneaking ? Pose.CROUCHING : Pose.STANDING; getHandle(entity).setPose(pose); } @@ -1673,6 +1749,7 @@ public class NMSImpl implements NMSBridge { if (warden.hasPose(Pose.EMERGING)) { warden.setPose(Pose.STANDING); } + }, 134); } else if (pose == org.bukkit.entity.Pose.ROARING) { if (warden.hasPose(Pose.ROARING)) @@ -1685,10 +1762,12 @@ public class NMSImpl implements NMSBridge { if (warden.hasPose(Pose.ROARING)) { warden.setPose(Pose.STANDING); } + }, 84); } else { warden.setPose(Pose.STANDING); } + } @Override @@ -1706,6 +1785,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return false; } @@ -1717,6 +1797,7 @@ public class NMSImpl implements NMSBridge { ENTITY_REGISTRY_SETTER.invoke(null, ENTITY_REGISTRY.get()); } catch (Throwable e) { } + } @Override @@ -1738,6 +1819,7 @@ public class NMSImpl implements NMSBridge { handle.setDeltaMovement(handle.getDeltaMovement().x, handle.getDeltaMovement().y + power, handle.getDeltaMovement().z); } + } @Override @@ -1829,6 +1911,7 @@ public class NMSImpl implements NMSBridge { menuType = MenuType.CRAFTING; break; } + handle.connection.send(new ClientboundOpenScreenPacket(handle.containerMenu.containerId, menuType, MutableComponent.create(new LiteralContents(newTitle)))); player.updateInventory(); @@ -1850,6 +1933,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1861,6 +1945,7 @@ public class NMSImpl implements NMSBridge { ((MobAI) en).updatePathfindingRange(pathfindingRange); return; } + if (NAVIGATION_PATHFINDER == null) return; PathNavigation navigation = ((Mob) en).getNavigation(); @@ -1872,6 +1957,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } private static class CitizensInventoryAnvil extends CraftInventoryAnvil implements ForwardingInventory { @@ -1982,6 +2068,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return; } + float oldw = size.width; float oldl = size.height; cb.accept(datawatcherobject); @@ -1989,6 +2076,7 @@ public class NMSImpl implements NMSBridge { living.setPos(living.getX() - 0.01, living.getY(), living.getZ() - 0.01); living.setPos(living.getX() + 0.01, living.getY(), living.getZ() + 0.01); } + } public static void clearGoals(NPC npc, GoalSelector... goalSelectors) { @@ -2001,14 +2089,17 @@ public class NMSImpl implements NMSBridge { if (!list.isEmpty()) { npc.data().set("selector" + i, Lists.newArrayList(list)); } + list.clear(); } catch (Exception e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } catch (Throwable e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } + i++; } + } private static CompoundTag convertNBT(net.minecraft.nbt.CompoundTag tag) { @@ -2018,6 +2109,7 @@ public class NMSImpl implements NMSBridge { for (String key : tag.getAllKeys()) { tags.put(key, convertNBT(key, tag.get(key))); } + return new CompoundTag("", tags); } @@ -2048,8 +2140,10 @@ public class NMSImpl implements NMSBridge { for (int i = 0; i < list.size(); i++) { converted.add(convertNBT("", list.get(i))); } + return new ListTag(key, tagType, converted); } + } else if (base instanceof net.minecraft.nbt.CompoundTag) return convertNBT((net.minecraft.nbt.CompoundTag) base); else if (base instanceof net.minecraft.nbt.EndTag) @@ -2065,6 +2159,7 @@ public class NMSImpl implements NMSBridge { d0 = 0.01D; entity.fallDistance = 0.0F; } + FluidState fluid = entity.level().getFluidState(entity.blockPosition()); if (entity.isInWater() && !entity.canStandOnFluid(fluid)) { double d1 = entity.getY(); @@ -2074,22 +2169,27 @@ public class NMSImpl implements NMSBridge { if (f2 > 3.0F) { f2 = 3.0F; } + if (!entity.onGround()) { f2 *= 0.5F; } + if (f2 > 0.0F) { f += (0.546F - f) * f2 / 3.0F; f1 += (entity.getSpeed() - f1) * f2 / 3.0F; } + if (entity.hasEffect(MobEffects.DOLPHINS_GRACE)) { f = 0.96F; } + entity.moveRelative(f1, vec3d); entity.move(MoverType.SELF, entity.getDeltaMovement()); Vec3 vec3d1 = entity.getDeltaMovement(); if (entity.horizontalCollision && entity.onClimbable()) { vec3d1 = new Vec3(vec3d1.x, 0.2D, vec3d1.z); } + entity.setDeltaMovement(vec3d1.multiply(f, 0.8D, f)); Vec3 vec3d2 = entity.getFluidFallingAdjustedMovement(d0, flag, entity.getDeltaMovement()); entity.setDeltaMovement(vec3d2); @@ -2097,6 +2197,7 @@ public class NMSImpl implements NMSBridge { && entity.isFree(vec3d2.x, vec3d2.y + 0.6D - entity.getY() + d1, vec3d2.z)) { entity.setDeltaMovement(vec3d2.x, 0.3D, vec3d2.z); } + } else if (entity.isInLava() && !entity.canStandOnFluid(fluid)) { double d1 = entity.getY(); entity.moveRelative(0.02F, vec3d); @@ -2108,19 +2209,23 @@ public class NMSImpl implements NMSBridge { } else { entity.setDeltaMovement(entity.getDeltaMovement().scale(0.5D)); } + if (!entity.isNoGravity()) { entity.setDeltaMovement(entity.getDeltaMovement().add(0.0D, -d0 / 4.0D, 0.0D)); } + Vec3 vec3d3 = entity.getDeltaMovement(); if (entity.horizontalCollision && entity.isFree(vec3d3.x, vec3d3.y + 0.6D - entity.getY() + d1, vec3d3.z)) { entity.setDeltaMovement(vec3d3.x, 0.3D, vec3d3.z); } + } else if (entity.isFallFlying()) { Vec3 vec3d4 = entity.getDeltaMovement(); if (vec3d4.y > -0.5D) { entity.fallDistance = 1.0F; } + Vec3 vec3d5 = entity.getLookAngle(); float f = entity.getXRot() * 0.017453292F; double d2 = Math.sqrt(vec3d5.x * vec3d5.x + vec3d5.z * vec3d5.z); @@ -2133,14 +2238,17 @@ public class NMSImpl implements NMSBridge { double d5 = vec3d4.y * -0.1D * f3; vec3d4 = vec3d4.add(vec3d5.x * d5 / d2, d5, vec3d5.z * d5 / d2); } + if (f < 0.0F && d2 > 0.0D) { double d5 = d3 * -Mth.sin(f) * 0.04D; vec3d4 = vec3d4.add(-vec3d5.x * d5 / d2, d5 * 3.2D, -vec3d5.z * d5 / d2); } + if (d2 > 0.0D) { vec3d4 = vec3d4.add((vec3d5.x / d2 * d3 - vec3d4.x) * 0.1D, 0.0D, (vec3d5.z / d2 * d3 - vec3d4.z) * 0.1D); } + entity.setDeltaMovement(vec3d4.multiply(0.99D, 0.98D, 0.99D)); entity.move(MoverType.SELF, entity.getDeltaMovement()); if (entity.horizontalCollision && !entity.level().isClientSide) { @@ -2151,11 +2259,14 @@ public class NMSImpl implements NMSBridge { entity.playSound(entity.getFallDamageSound0((int) f4), 1.0F, 1.0F); entity.hurt(entity.damageSources().flyIntoWall(), f4); } + } + if (entity.onGround() && !entity.level().isClientSide && entity.getSharedFlag(7) && !CraftEventFactory.callToggleGlideEvent(entity, false).isCancelled()) { entity.setSharedFlag(7, false); } + } else { BlockPos blockposition = BlockPos.containing(entity.getX(), entity.getBoundingBox().minY - 0.5D, entity.getZ()); @@ -2172,16 +2283,21 @@ public class NMSImpl implements NMSBridge { } else { d7 = 0.0D; } + } else if (!entity.isNoGravity()) { d7 -= d0; } + if (entity.shouldDiscardFriction()) { entity.setDeltaMovement(vec3d6.x, d7, vec3d6.z); } else { entity.setDeltaMovement(vec3d6.x * f, d7 * 0.98D, vec3d6.z * f); } + } + } + entity.calculateEntityAnimation(entity instanceof net.minecraft.world.entity.animal.FlyingAnimal); } @@ -2191,6 +2307,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -2226,6 +2343,7 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return null; } + } public static List> getPositionUpdate(org.bukkit.entity.Entity from, boolean position, Float bodyYaw, @@ -2234,6 +2352,7 @@ public class NMSImpl implements NMSBridge { if (bodyYaw == null) { bodyYaw = handle.getYRot(); } + if (pitch == null) { pitch = handle.getXRot(); } @@ -2269,9 +2388,11 @@ public class NMSImpl implements NMSBridge { toSend.add(new ClientboundMoveEntityPacket.Rot(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); } + if (headYaw != null) { toSend.add(new ClientboundRotateHeadPacket(handle, (byte) (headYaw * 256.0F / 360.0F))); } + return toSend; } @@ -2281,6 +2402,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return null; } @@ -2306,6 +2428,7 @@ public class NMSImpl implements NMSBridge { if (mat != null) { minecart.setDisplayBlockState(BuiltInRegistries.BLOCK.byId(mat.getId()).defaultBlockState()); } + minecart.setDisplayOffset(offset); } @@ -2319,6 +2442,7 @@ public class NMSImpl implements NMSBridge { handle.setDeltaMovement(handle.getDeltaMovement().scale(0.9)); return true; } + return false; } @@ -2329,6 +2453,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void restoreGoals(NPC npc, GoalSelector... goalSelectors) { @@ -2343,13 +2468,16 @@ public class NMSImpl implements NMSBridge { if (old != null) { list.addAll(old); } + } catch (Exception e) { Messaging.logTr(Messages.ERROR_RESTORING_GOALS, e.getLocalizedMessage()); } catch (Throwable e) { Messaging.logTr(Messages.ERROR_RESTORING_GOALS, e.getLocalizedMessage()); } + i++; } + } public static void sendPacket(Player player, Packet packet) { @@ -2376,10 +2504,13 @@ public class NMSImpl implements NMSBridge { || location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) { continue; } + for (Packet packet : packets) { sendPacket(player, packet); } + } + } public static void sendPacketsNearby(Player from, Location location, Packet... packets) { @@ -2392,6 +2523,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setAttribute(LivingEntity entity, Attribute attribute, double value) { @@ -2409,8 +2541,10 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + attr = entity.getAttribute(attribute); } + attr.setBaseValue(value); } @@ -2420,6 +2554,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setFallingBlockState(FallingBlockEntity handle, BlockState state) { @@ -2428,6 +2563,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setLife(FishingHook entity, int life) { @@ -2436,6 +2572,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setLookControl(Mob mob, LookControl control) { @@ -2444,6 +2581,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setNotInSchool(AbstractFish entity) { @@ -2451,9 +2589,11 @@ public class NMSImpl implements NMSBridge { if (ENTITY_FISH_NUM_IN_SCHOOL != null) { ENTITY_FISH_NUM_IN_SCHOOL.invoke(entity, 2); } + } catch (Throwable ex) { ex.printStackTrace(); } + } public static void setSize(Entity entity, boolean justCreated) { @@ -2476,10 +2616,13 @@ public class NMSImpl implements NMSBridge { float f = entitysize.width - entitysize1.width; entity.move(MoverType.SELF, new Vec3(f, 0.0D, f)); } + } + } catch (Throwable e) { e.printStackTrace(); } + } public static void setSize(Entity entity, EntityDimensions size) { @@ -2490,6 +2633,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static Entity teleportAcrossWorld(Entity entity, ServerLevel worldserver, Vec3 location) { @@ -2504,6 +2648,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + if (npc == null || sds == null) return null; npc.despawn(DespawnReason.PENDING_RESPAWN); @@ -2516,6 +2661,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + return handle; } @@ -2530,6 +2676,7 @@ public class NMSImpl implements NMSBridge { } else if (entity instanceof MobAI) { ((MobAI) entity).tickAI(); } + } public static void updateMinecraftAIState(NPC npc, Mob entity) { @@ -2542,6 +2689,7 @@ public class NMSImpl implements NMSBridge { getBehaviorMap(entity).putAll(behavior); npc.data().remove("behavior-map"); } + } else { clearGoals(npc, entity.goalSelector, entity.targetSelector); TreeMap behaviorMap = getBehaviorMap(entity); @@ -2549,7 +2697,9 @@ public class NMSImpl implements NMSBridge { npc.data().set("behavior-map", new TreeMap(behaviorMap)); behaviorMap.clear(); } + } + } private static final MethodHandle ADVANCEMENTS_PLAYER_SETTER = NMS.getFirstFinalSetter(ServerPlayer.class, @@ -2678,5 +2828,6 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } } diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/PitchableLookControl.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/PitchableLookControl.java index 5eaf8749d..2cfe6580a 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/PitchableLookControl.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/PitchableLookControl.java @@ -18,6 +18,7 @@ public class PitchableLookControl extends LookControl { } else { resetOnTick = () -> true; } + } @Override diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/PlayerAnimationImpl.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/PlayerAnimationImpl.java index b14c979a6..29e52b63f 100644 --- a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/PlayerAnimationImpl.java +++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/PlayerAnimationImpl.java @@ -62,6 +62,7 @@ public class PlayerAnimationImpl { default: throw new UnsupportedOperationException(); } + } protected static void playDefaultAnimation(ServerPlayer player, Iterable to, int code) { @@ -79,6 +80,7 @@ public class PlayerAnimationImpl { for (Player player : to) { NMSImpl.sendPacket(player, packet); } + } private static Map DEFAULTS = Maps.newEnumMap(PlayerAnimation.class); diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/ArmorStandController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/ArmorStandController.java index da18641f5..a129f688b 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/ArmorStandController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/ArmorStandController.java @@ -81,6 +81,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -94,6 +95,7 @@ public class ArmorStandController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -101,6 +103,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ArmorStandNPC(this); } + return super.getBukkitEntity(); } @@ -116,6 +119,7 @@ public class ArmorStandController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @Override @@ -124,6 +128,7 @@ public class ArmorStandController extends MobEntityController { if (npc != null) { npc.update(); } + } } } \ No newline at end of file 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 f61d900fe..cd6d52662 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 @@ -57,6 +57,7 @@ public class BatController extends MobEntityController { if (npc != null) { setAsleep(false); } + } @Override @@ -103,6 +104,7 @@ public class BatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -115,6 +117,7 @@ public class BatController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -125,6 +128,7 @@ public class BatController extends MobEntityController { NMSImpl.updateAI(this); npc.update(); } + } @Override @@ -133,6 +137,7 @@ public class BatController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -140,6 +145,7 @@ public class BatController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BatNPC(this); } + return super.getBukkitEntity(); } 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 e80278b7d..2c51c085e 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 @@ -100,6 +100,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -112,6 +113,7 @@ public class BlazeController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -119,6 +121,7 @@ public class BlazeController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -127,6 +130,7 @@ public class BlazeController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -134,6 +138,7 @@ public class BlazeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BlazeNPC(this); } + return super.getBukkitEntity(); } 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 98e6ec410..1ff633b3c 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 @@ -68,6 +68,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -109,6 +110,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,6 +123,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -128,6 +131,7 @@ public class CaveSpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -136,6 +140,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -144,6 +149,7 @@ public class CaveSpiderController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -153,6 +159,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -160,6 +167,7 @@ public class CaveSpiderController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CaveSpiderNPC(this); } + return super.getBukkitEntity(); } @@ -183,6 +191,7 @@ public class CaveSpiderController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 34861a7ab..b8e34e6c7 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 @@ -69,6 +69,7 @@ public class ChickenController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -77,6 +78,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -118,6 +120,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -130,6 +133,7 @@ public class ChickenController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -137,6 +141,7 @@ public class ChickenController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -145,6 +150,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -153,6 +159,7 @@ public class ChickenController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -162,6 +169,7 @@ public class ChickenController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -169,6 +177,7 @@ public class ChickenController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ChickenNPC(this); } + return super.getBukkitEntity(); } @@ -190,6 +199,7 @@ public class ChickenController extends MobEntityController { if (npc != null) { this.bs = 100; // egg timer } + super.m(); } 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 985e7506c..199dd4290 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 @@ -72,6 +72,7 @@ public class CowController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -80,6 +81,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -132,6 +134,7 @@ public class CowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -144,6 +147,7 @@ public class CowController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -151,6 +155,7 @@ public class CowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -159,6 +164,7 @@ public class CowController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -167,6 +173,7 @@ public class CowController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -176,6 +183,7 @@ public class CowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -183,6 +191,7 @@ public class CowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CowNPC(this); } + return super.getBukkitEntity(); } 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 4030689f8..a325bd09a 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 @@ -72,6 +72,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -115,6 +116,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isProtected()) { super.co(); } + } @Override @@ -125,6 +127,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -137,6 +140,7 @@ public class CreeperController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -144,6 +148,7 @@ public class CreeperController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -152,6 +157,7 @@ public class CreeperController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -160,6 +166,7 @@ public class CreeperController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -169,6 +176,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -176,6 +184,7 @@ public class CreeperController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new CreeperNPC(this); } + return super.getBukkitEntity(); } @@ -197,6 +206,7 @@ public class CreeperController extends MobEntityController { if (npc == null || allowPowered) { super.onLightningStrike(entitylightning); } + } public void setAllowPowered(boolean allowPowered) { @@ -210,6 +220,7 @@ public class CreeperController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 1dc7ae46d..ac3f878f1 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 @@ -105,6 +105,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -117,6 +118,7 @@ public class EnderDragonController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -139,6 +141,7 @@ public class EnderDragonController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -146,6 +149,7 @@ public class EnderDragonController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderDragonNPC(this); } + return super.getBukkitEntity(); } @@ -164,6 +168,7 @@ public class EnderDragonController extends MobEntityController { this.bk[i][0] = this.yaw; this.bk[i][1] = this.locY; } + } if (++this.bl == this.bk.length) { @@ -186,6 +191,7 @@ public class EnderDragonController extends MobEntityController { if (getBukkitEntity().getPassenger() != null) { yaw = getBukkitEntity().getPassenger().getLocation().getYaw() - 180; } + if (motX != 0 || motY != 0 || motZ != 0) { motX *= 0.98; motY *= 0.98; @@ -193,6 +199,7 @@ public class EnderDragonController extends MobEntityController { if (getBukkitEntity().getPassenger() == null) { yaw = Util.getDragonYaw(getBukkitEntity(), motX, motZ); } + setPosition(locX + motX, locY + motY, locZ + motZ); } @@ -205,8 +212,11 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable e) { e.printStackTrace(); } + } + } + if (npc.data().get(NPC.Metadata.COLLIDABLE, false)) { try { KNOCKBACK.invoke(this, this.world.getEntities(this, @@ -218,10 +228,13 @@ public class EnderDragonController extends MobEntityController { } catch (Throwable t) { t.printStackTrace(); } + } + } else { super.m(); } + } @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 0758290aa..0e148234e 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 @@ -68,6 +68,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -109,6 +110,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,6 +123,7 @@ public class EndermanController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -128,6 +131,7 @@ public class EndermanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -136,6 +140,7 @@ public class EndermanController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -144,6 +149,7 @@ public class EndermanController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -153,6 +159,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -160,6 +167,7 @@ public class EndermanController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EndermanNPC(this); } + return super.getBukkitEntity(); } @@ -190,6 +198,7 @@ public class EndermanController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 bba68aabc..54e71bb5f 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 @@ -68,6 +68,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -109,6 +110,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -121,6 +123,7 @@ public class EndermiteController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -128,6 +131,7 @@ public class EndermiteController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -136,6 +140,7 @@ public class EndermiteController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -144,6 +149,7 @@ public class EndermiteController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -153,6 +159,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -160,6 +167,7 @@ public class EndermiteController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EndermiteNPC(this); } + return super.getBukkitEntity(); } @@ -183,6 +191,7 @@ public class EndermiteController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EntityHumanNPC.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EntityHumanNPC.java index 5b9a88a85..18043cb07 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EntityHumanNPC.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EntityHumanNPC.java @@ -80,6 +80,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { skinTracker = null; } + } @Override @@ -87,6 +88,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -121,6 +123,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -132,6 +135,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (damaged && velocityChanged) { velocityChanged = false; } + return damaged; } @@ -142,7 +146,14 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (dead) return; super.die(damagesource); - Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), () -> world.removeEntity(EntityHumanNPC.this), 15); // give enough time for death and smoke animation + Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), () -> world.removeEntity(EntityHumanNPC.this), 15); // give + // enough + // time + // for + // death + // and + // smoke + // animation } @Override @@ -150,6 +161,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -158,6 +170,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -167,6 +180,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -174,6 +188,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (npc != null && bukkitEntity == null) { bukkitEntity = new PlayerNPC(this); } + return super.getBukkitEntity(); } @@ -200,6 +215,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (skinName == null) { skinName = npc.getName(); } + return skinName.toLowerCase(); } @@ -224,10 +240,12 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } catch (NoSuchMethodError err) { // reported by a single user on Discord } + AttributeInstance range = getAttributeInstance(GenericAttributes.FOLLOW_RANGE); if (range == null) { range = getAttributeMap().b(GenericAttributes.FOLLOW_RANGE); } + range.setValue(Setting.DEFAULT_PATHFINDING_RANGE.asDouble()); controllerJump = new PlayerControllerJump(this); controllerMove = new PlayerControllerMove(this); @@ -254,6 +272,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable super.l(); return; } + super.K(); boolean navigating = npc.getNavigator().isNavigating() || controllerMove.a(); if (!navigating && getBukkitEntity() != null @@ -262,15 +281,19 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable && (!npc.isProtected() || SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld()))) { moveWithFallDamage(0, 0); } + if (Math.abs(motX) < EPSILON && Math.abs(motY) < EPSILON && Math.abs(motZ) < EPSILON) { motX = motY = motZ = 0; } + if (navigating) { if (!NMSImpl.isNavigationFinished(navigation)) { NMSImpl.updateNavigation(navigation); } + moveOnCurrentHeading(); } + updateAI(); bL(); if (npc.data().get(NPC.Metadata.PICKUP_ITEMS, false)) { @@ -280,12 +303,16 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable } else { axisalignedbb = this.getBoundingBox().grow(1.0, 0.5, 1.0); } + for (Entity entity : this.world.getEntities(this, axisalignedbb)) { if (!entity.dead) { entity.d(this); } + } + } + } private void moveOnCurrentHeading() { @@ -294,9 +321,11 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable bF(); jumpTicks = 10; } + } else { jumpTicks = 0; } + aZ *= 0.98F; ba *= 0.98F; bb *= 0.9F; @@ -305,6 +334,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (jumpTicks > 0) { jumpTicks--; } + } private void moveWithFallDamage(float mx, float my) { @@ -313,6 +343,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (!npc.isProtected()) { a(this.locY - y, onGround); } + } public void setMoveDestination(double x, double y, double z, double speed) { @@ -384,9 +415,12 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable if (equipment != null) { this.getAttributeMap().b(equipment.B()); } + } + equipmentCache.put(slot, equipment); } + if (!itemChanged) return; Location current = getBukkitEntity().getLocation(packetLocationCache); @@ -394,6 +428,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable for (int i = 0; i < this.inventory.armor.length; i++) { packets[i] = new PacketPlayOutEntityEquipment(getId(), i, getEquipment(i)); } + NMSImpl.sendPacketsNearby(getBukkitEntity(), current, packets); } 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 c70da7bbd..0429bcc9d 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 @@ -91,6 +91,7 @@ public class GhastController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -103,6 +104,7 @@ public class GhastController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -110,6 +112,7 @@ public class GhastController extends MobEntityController { if (npc != null) { npc.update(); } + super.E(); } @@ -119,6 +122,7 @@ public class GhastController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -126,6 +130,7 @@ public class GhastController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GhastNPC(this); } + return super.getBukkitEntity(); } 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 44787f170..d1c4fe94c 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 @@ -54,6 +54,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -95,6 +96,7 @@ public class GiantController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +109,7 @@ public class GiantController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -114,6 +117,7 @@ public class GiantController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class GiantController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -130,6 +135,7 @@ public class GiantController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -139,6 +145,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +153,7 @@ public class GiantController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GiantNPC(this); } + return super.getBukkitEntity(); } @@ -169,6 +177,7 @@ public class GiantController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 e808c1d05..3ba03c54d 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 @@ -54,6 +54,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -95,6 +96,7 @@ public class GuardianController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +109,7 @@ public class GuardianController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -114,6 +117,7 @@ public class GuardianController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class GuardianController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -131,6 +136,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -138,6 +144,7 @@ public class GuardianController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new GuardianNPC(this); } + return super.getBukkitEntity(); } @@ -161,6 +168,7 @@ public class GuardianController extends MobEntityController { } else { npc.update(); } + } @Override @@ -172,6 +180,7 @@ public class GuardianController extends MobEntityController { this.setPosition(locX - 0.01, locY, locZ - 0.01); this.setPosition(locX + 0.01, locY, locZ + 0.01); } + } @Override @@ -181,6 +190,7 @@ public class GuardianController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 069cd38aa..656314b58 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 @@ -61,6 +61,7 @@ public class HorseController extends MobEntityController { ((Horse) getBukkitEntity()).setDomestication(((Horse) getBukkitEntity()).getMaxDomestication()); baseMovementSpeed = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue(); } + } @Override @@ -74,6 +75,7 @@ public class HorseController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -82,6 +84,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -123,6 +126,7 @@ public class HorseController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -143,6 +147,7 @@ public class HorseController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -150,6 +155,7 @@ public class HorseController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -163,16 +169,20 @@ public class HorseController extends MobEntityController { } else { riding = false; } + if (riding) { try { C.invoke(this, 4, true); } catch (Throwable e) { e.printStackTrace(); } + } + NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } + } @Override @@ -181,6 +191,7 @@ public class HorseController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -190,6 +201,7 @@ public class HorseController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -197,6 +209,7 @@ public class HorseController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new HorseNPC(this); } + return super.getBukkitEntity(); } diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/HumanController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/HumanController.java index 5994373b2..038c467fb 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/HumanController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/HumanController.java @@ -35,9 +35,11 @@ public class HumanController extends AbstractEntityController { if (npc.requiresNameHologram()) { name = teamName; } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } + final GameProfile profile = new GameProfile(uuid, name); final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile, new PlayerInteractManager(nmsWorld), npc); @@ -45,6 +47,7 @@ public class HumanController extends AbstractEntityController { if (skin != null) { skin.apply(handle); } + Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> { if (getBukkitEntity() == null || !getBukkitEntity().isValid() || getBukkitEntity() != handle.getBukkitEntity()) 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 8ea3540c7..85cd1899f 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 @@ -54,6 +54,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -95,6 +96,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +109,7 @@ public class IronGolemController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -114,6 +117,7 @@ public class IronGolemController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class IronGolemController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -130,6 +135,7 @@ public class IronGolemController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -139,6 +145,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +153,7 @@ public class IronGolemController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new IronGolemNPC(this); } + return super.getBukkitEntity(); } @@ -169,6 +177,7 @@ public class IronGolemController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 c361a83b6..abcdd56e7 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 @@ -48,6 +48,7 @@ public class MagmaCubeController extends MobEntityController { setSize(3); this.moveController = new PlayerControllerMove(this); } + } @Override @@ -60,6 +61,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -101,6 +103,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -108,6 +111,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.d(human); } + } @Override @@ -120,6 +124,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -127,6 +132,7 @@ public class MagmaCubeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -135,6 +141,7 @@ public class MagmaCubeController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -151,6 +159,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MagmaCubeNPC(this); } + return super.getBukkitEntity(); } @@ -173,6 +182,7 @@ public class MagmaCubeController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -182,6 +192,7 @@ public class MagmaCubeController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @Override diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MobEntityController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MobEntityController.java index c72a4bc73..4154502d2 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MobEntityController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MobEntityController.java @@ -34,6 +34,7 @@ public abstract class MobEntityController extends AbstractEntityController { if (entity instanceof EntityInsentient) { NMSImpl.clearGoals(((EntityInsentient) entity).goalSelector, ((EntityInsentient) entity).targetSelector); } + entity.setPositionRotation(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch()); if (npc != null) { // entity.onGround isn't updated right away - we approximate here so @@ -42,15 +43,19 @@ public abstract class MobEntityController extends AbstractEntityController { if (beneath.isSolid()) { entity.onGround = true; } + try { UUID_FIELD.set(entity, npc.getUniqueId()); } catch (Throwable e) { e.printStackTrace(); } + if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } + } + return entity.getBukkitEntity(); } @@ -61,6 +66,7 @@ public abstract class MobEntityController extends AbstractEntityController { ex.printStackTrace(); return null; } + } private static Constructor getConstructor(Class clazz) { @@ -73,6 +79,7 @@ public abstract class MobEntityController extends AbstractEntityController { } catch (Exception ex) { throw new IllegalStateException("unable to find an entity constructor"); } + } private static final Map, Constructor> CONSTRUCTOR_CACHE = new WeakHashMap<>(); 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 4216a62eb..61a825615 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 @@ -56,6 +56,7 @@ public class MushroomCowController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -64,6 +65,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -112,6 +114,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -124,6 +127,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -131,6 +135,7 @@ public class MushroomCowController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -139,6 +144,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -147,6 +153,7 @@ public class MushroomCowController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -156,6 +163,7 @@ public class MushroomCowController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -163,6 +171,7 @@ public class MushroomCowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MushroomCowNPC(this); } + return super.getBukkitEntity(); } 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 196525b08..d753bd9cc 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 @@ -55,6 +55,7 @@ public class OcelotController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -63,6 +64,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -101,6 +103,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.cm(); } + } @Override @@ -111,6 +114,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -123,6 +127,7 @@ public class OcelotController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -130,6 +135,7 @@ public class OcelotController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -138,6 +144,7 @@ public class OcelotController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -146,6 +153,7 @@ public class OcelotController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -155,6 +163,7 @@ public class OcelotController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -162,6 +171,7 @@ public class OcelotController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new OcelotNPC(this); } + return super.getBukkitEntity(); } 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 43fcf98f2..2e4bcc74a 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 @@ -56,6 +56,7 @@ public class PigController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -64,6 +65,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -112,6 +114,7 @@ public class PigController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -124,6 +127,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -131,6 +135,7 @@ public class PigController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -139,6 +144,7 @@ public class PigController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -147,6 +153,7 @@ public class PigController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -156,6 +163,7 @@ public class PigController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -163,6 +171,7 @@ public class PigController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PigNPC(this); } + return super.getBukkitEntity(); } @@ -184,6 +193,7 @@ public class PigController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } @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 1132c7381..657e124f6 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 @@ -54,6 +54,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -95,6 +96,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +109,7 @@ public class PigZombieController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -114,6 +117,7 @@ public class PigZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class PigZombieController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -130,6 +135,7 @@ public class PigZombieController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -139,6 +145,7 @@ public class PigZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +153,7 @@ public class PigZombieController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PigZombieNPC(this); } + return super.getBukkitEntity(); } 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 4c629701d..f0c22267d 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 @@ -56,6 +56,7 @@ public class RabbitController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -64,6 +65,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -105,6 +107,7 @@ public class RabbitController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -117,6 +120,7 @@ public class RabbitController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -124,6 +128,7 @@ public class RabbitController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -135,6 +140,7 @@ public class RabbitController extends MobEntityController { } else { super.E(); } + } @Override @@ -143,6 +149,7 @@ public class RabbitController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -152,6 +159,7 @@ public class RabbitController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -159,6 +167,7 @@ public class RabbitController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new RabbitNPC(this); } + return super.getBukkitEntity(); } @@ -186,6 +195,7 @@ public class RabbitController extends MobEntityController { this.datawatcher.watch(18, (byte) i); return; } + super.setRabbitType(i); } 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 3e56419e9..5bd06007a 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 @@ -55,6 +55,7 @@ public class SheepController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -63,6 +64,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -104,6 +106,7 @@ public class SheepController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -116,6 +119,7 @@ public class SheepController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -123,6 +127,7 @@ public class SheepController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -131,6 +136,7 @@ public class SheepController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -139,6 +145,7 @@ public class SheepController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -148,6 +155,7 @@ public class SheepController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -155,6 +163,7 @@ public class SheepController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SheepNPC(this); } + return super.getBukkitEntity(); } 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 4835fbbe1..44c158443 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 @@ -54,6 +54,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -95,6 +96,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +109,7 @@ public class SilverfishController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -114,6 +117,7 @@ public class SilverfishController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class SilverfishController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -130,6 +135,7 @@ public class SilverfishController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -139,6 +145,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +153,7 @@ public class SilverfishController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SilverfishNPC(this); } + return super.getBukkitEntity(); } @@ -169,6 +177,7 @@ public class SilverfishController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 a758380ab..067de5e68 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 @@ -54,6 +54,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -95,6 +96,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +109,7 @@ public class SkeletonController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -114,6 +117,7 @@ public class SkeletonController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class SkeletonController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -130,6 +135,7 @@ public class SkeletonController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -139,6 +145,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +153,7 @@ public class SkeletonController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SkeletonNPC(this); } + return super.getBukkitEntity(); } @@ -169,6 +177,7 @@ public class SkeletonController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 0d3300f70..c7192921e 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 @@ -48,6 +48,7 @@ public class SlimeController extends MobEntityController { setSize(3); this.moveController = new PlayerControllerMove(this); } + } @Override @@ -60,6 +61,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -101,6 +103,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -108,6 +111,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.d(human); } + } @Override @@ -120,6 +124,7 @@ public class SlimeController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -127,6 +132,7 @@ public class SlimeController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -135,6 +141,7 @@ public class SlimeController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -144,6 +151,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -151,6 +159,7 @@ public class SlimeController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SlimeNPC(this); } + return super.getBukkitEntity(); } @@ -173,6 +182,7 @@ public class SlimeController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -182,6 +192,7 @@ public class SlimeController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 a3f258c39..dcdd07b3d 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 @@ -54,6 +54,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -95,6 +96,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +109,7 @@ public class SnowmanController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -114,6 +117,7 @@ public class SnowmanController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class SnowmanController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -130,6 +135,7 @@ public class SnowmanController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -139,6 +145,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +153,7 @@ public class SnowmanController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SnowmanNPC(this); } + return super.getBukkitEntity(); } @@ -169,6 +177,7 @@ public class SnowmanController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 58ae0ce64..e3117302e 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 @@ -54,6 +54,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -95,6 +96,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +109,7 @@ public class SpiderController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -114,6 +117,7 @@ public class SpiderController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class SpiderController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -130,6 +135,7 @@ public class SpiderController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -139,6 +145,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +153,7 @@ public class SpiderController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SpiderNPC(this); } + return super.getBukkitEntity(); } @@ -169,6 +177,7 @@ public class SpiderController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 9f400b653..c228c7137 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 @@ -54,6 +54,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -95,6 +96,7 @@ public class SquidController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +109,7 @@ public class SquidController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -114,6 +117,7 @@ public class SquidController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class SquidController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -131,6 +136,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -138,6 +144,7 @@ public class SquidController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SquidNPC(this); } + return super.getBukkitEntity(); } @@ -160,6 +167,7 @@ public class SquidController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -169,6 +177,7 @@ public class SquidController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 0d0648ce1..94f4922fd 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 @@ -59,6 +59,7 @@ public class VillagerController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -67,6 +68,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -80,6 +82,7 @@ public class VillagerController extends MobEntityController { if (npc != null && npc.data().get(NPC.Metadata.VILLAGER_BLOCK_TRADES, true)) { blockingATrade = true; } + return super.a(entityhuman); } @@ -114,6 +117,7 @@ public class VillagerController extends MobEntityController { blockingATrade = false; return true; } + return super.co(); } @@ -125,6 +129,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -137,6 +142,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -144,6 +150,7 @@ public class VillagerController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -152,6 +159,7 @@ public class VillagerController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -160,6 +168,7 @@ public class VillagerController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -169,6 +178,7 @@ public class VillagerController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -176,6 +186,7 @@ public class VillagerController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new VillagerNPC(this); } + return super.getBukkitEntity(); } @@ -197,6 +208,7 @@ public class VillagerController extends MobEntityController { if (npc == null) { super.onLightningStrike(entitylightning); } + } @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 17c07714e..26b282864 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 @@ -54,6 +54,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -95,6 +96,7 @@ public class WitchController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +109,7 @@ public class WitchController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -114,6 +117,7 @@ public class WitchController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class WitchController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -130,6 +135,7 @@ public class WitchController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -139,6 +145,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +153,7 @@ public class WitchController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitchNPC(this); } + return super.getBukkitEntity(); } @@ -169,6 +177,7 @@ public class WitchController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @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 afe73c7d9..a28a412ce 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 @@ -92,6 +92,7 @@ public class WitherController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -104,6 +105,7 @@ public class WitherController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -112,6 +114,7 @@ public class WitherController extends MobEntityController { super.E(); return; } + npc.update(); } @@ -121,6 +124,7 @@ public class WitherController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -128,6 +132,7 @@ public class WitherController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitherNPC(this); } + return super.getBukkitEntity(); } 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 5e00df43d..24f09fbe9 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 @@ -57,6 +57,7 @@ public class WolfController extends MobEntityController { super.a(flag); return; } + NMSImpl.checkAndUpdateHeight(this, flag, super::a); } @@ -65,6 +66,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -106,6 +108,7 @@ public class WolfController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -118,6 +121,7 @@ public class WolfController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -125,6 +129,7 @@ public class WolfController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -133,6 +138,7 @@ public class WolfController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -141,6 +147,7 @@ public class WolfController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -150,6 +157,7 @@ public class WolfController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -157,6 +165,7 @@ public class WolfController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WolfNPC(this); } + return super.getBukkitEntity(); } @@ -178,6 +187,7 @@ public class WolfController extends MobEntityController { if (npc == null || this.equals(entityliving)) { super.setGoalTarget(entityliving, reason, fire); } + } @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 b113c062d..873577c4d 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 @@ -54,6 +54,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.a(d0, flag, block, blockposition); } + } @Override @@ -95,6 +96,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -107,6 +109,7 @@ public class ZombieController extends MobEntityController { if (npc == null) { super.D(); } + } @Override @@ -114,6 +117,7 @@ public class ZombieController extends MobEntityController { if (npc == null || !npc.isFlyable()) { super.e(f, f1); } + } @Override @@ -122,6 +126,7 @@ public class ZombieController extends MobEntityController { if (npc != null) { npc.update(); } + } @Override @@ -130,6 +135,7 @@ public class ZombieController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -139,6 +145,7 @@ public class ZombieController extends MobEntityController { } else { NMSImpl.flyingMoveLogic(this, f, f1); } + } @Override @@ -146,6 +153,7 @@ public class ZombieController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ZombieNPC(this); } + return super.getBukkitEntity(); } 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 a7fb4106d..7eee78208 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 @@ -67,6 +67,7 @@ public class ArrowController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -80,6 +81,7 @@ public class ArrowController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -87,6 +89,7 @@ public class ArrowController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ArrowNPC(this); } + return super.getBukkitEntity(); } @@ -102,6 +105,7 @@ public class ArrowController extends MobEntityController { } else { super.t_(); } + } } } \ No newline at end of file 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 808d5c8e4..82e389785 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 @@ -77,6 +77,7 @@ public class BoatController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -90,6 +91,7 @@ public class BoatController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -97,6 +99,7 @@ public class BoatController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new BoatNPC(this); } + return super.getBukkitEntity(); } @@ -112,6 +115,7 @@ public class BoatController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @Override @@ -122,6 +126,7 @@ public class BoatController extends MobEntityController { } else { super.t_(); } + } private void updateBoat() { @@ -138,7 +143,9 @@ public class BoatController extends MobEntityController { if (this.world.b(axisalignedbb, Material.WATER)) { d0 += 1.0D / b0; } + } + double d3 = Math.sqrt(this.motX * this.motX + this.motZ * this.motZ); if (d3 > 0.2975D) { double d4 = Math.cos(this.yaw * Math.PI / 180.0D); @@ -157,8 +164,11 @@ public class BoatController extends MobEntityController { this.world.addParticle(EnumParticle.WATER_SPLASH, d8, this.locY - 0.125D, d9, this.motX, this.motY, this.motZ); } + } + } + if (d0 < 1.0D) { double d = d0 * 2.0D - 1.0D; this.motY += 0.04D * d; @@ -166,8 +176,10 @@ public class BoatController extends MobEntityController { if (this.motY < 0.0D) { this.motY /= 2.0D; } + this.motY += 0.007D; } + if (this.passenger instanceof EntityLiving) { EntityLiving entityliving = (EntityLiving) this.passenger; float f = this.passenger.yaw + -entityliving.aZ * 90.0F; @@ -179,10 +191,13 @@ public class BoatController extends MobEntityController { if (this.motX <= 1.0E-5D) { this.motX = 0.0D; } + if (this.motZ <= 1.0E-5D) { this.motZ = 0.0D; } + } + double d4 = Math.sqrt(this.motX * this.motX + this.motZ * this.motZ); if (d4 > 0.35D) { double d = 0.35D / d4; @@ -190,17 +205,21 @@ public class BoatController extends MobEntityController { this.motZ *= d; d4 = 0.35D; } + if (d4 > d3 && this.b < 0.35D) { this.b += (0.35D - this.b) / 35.0D; if (this.b > 0.35D) { this.b = 0.35D; } + } else { this.b -= (this.b - 0.07D) / 35.0D; if (this.b < 0.07D) { this.b = 0.07D; } + } + for (int k = 0; k < 4; k++) { int l = MathHelper.floor(this.locX + (k % 2 - 0.5D) * 0.8D); int j = MathHelper.floor(this.locZ + (k / 2 - 0.5D) * 0.8D); @@ -214,20 +233,26 @@ public class BoatController extends MobEntityController { this.world.setAir(blockposition); this.positionChanged = false; } + } else if (block == Blocks.WATERLILY) { if (!CraftEventFactory.callEntityChangeBlockEvent(this, l, j1, j, Blocks.AIR, 0) .isCancelled()) { this.world.setAir(blockposition, true); this.positionChanged = false; } + } + } + } + if (this.onGround && !this.landBoats) { this.motX *= 0.5D; this.motY *= 0.5D; this.motZ *= 0.5D; } + move(this.motX, this.motY, this.motZ); if (this.positionChanged && d3 > 0.2975D) { } else { @@ -235,6 +260,7 @@ public class BoatController extends MobEntityController { this.motY *= 0.95D; this.motZ *= 0.99D; } + this.pitch = 0.0F; double d5 = this.yaw; double d10 = this.lastX - this.locX; @@ -242,13 +268,16 @@ public class BoatController extends MobEntityController { if (d10 * d10 + d11 * d11 > 0.001D) { d5 = (float) (MathHelper.b(d11, d10) * 180.0D / Math.PI); } + double d12 = MathHelper.g(d5 - this.yaw); if (d12 > 20.0D) { d12 = 20.0D; } + if (d12 < -20.0D) { d12 = -20.0D; } + this.yaw += d12; } } 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 ea2b90a0d..5aca78e0e 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 @@ -83,6 +83,7 @@ public class EggController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -96,6 +97,7 @@ public class EggController extends AbstractEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -103,6 +105,7 @@ public class EggController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EggNPC(this); } + return super.getBukkitEntity(); } @@ -118,9 +121,11 @@ public class EggController extends AbstractEntityController { if (!npc.isProtected()) { super.t_(); } + } else { super.t_(); } + } } } \ No newline at end of file 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 c47f04d84..652d298eb 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 @@ -67,6 +67,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -80,6 +81,7 @@ public class EnderCrystalController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -87,6 +89,7 @@ public class EnderCrystalController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderCrystalNPC(this); } + return super.getBukkitEntity(); } @@ -102,6 +105,7 @@ public class EnderCrystalController extends MobEntityController { } else { super.t_(); } + } } } \ No newline at end of file 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 2b21f1bc5..bb684da4c 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 @@ -67,6 +67,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -80,6 +81,7 @@ public class EnderPearlController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -87,6 +89,7 @@ public class EnderPearlController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderPearlNPC(this); } + return super.getBukkitEntity(); } @@ -102,9 +105,11 @@ public class EnderPearlController extends MobEntityController { if (!npc.isProtected()) { super.t_(); } + } else { super.t_(); } + } } } \ No newline at end of file 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 5f6cdea48..93116cf25 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 @@ -67,6 +67,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -80,6 +81,7 @@ public class EnderSignalController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -87,6 +89,7 @@ public class EnderSignalController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new EnderSignalNPC(this); } + return super.getBukkitEntity(); } @@ -102,6 +105,7 @@ public class EnderSignalController extends MobEntityController { } else { super.t_(); } + } } } \ No newline at end of file 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 1b154b54b..a191c0b1b 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 @@ -53,6 +53,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class ExperienceOrbController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class ExperienceOrbController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ExperienceOrbNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class ExperienceOrbController extends MobEntityController { } else { super.t_(); } + } } 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 59b1e31e0..526027ebf 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 @@ -75,6 +75,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -88,6 +89,7 @@ public class FallingBlockController extends AbstractEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -95,6 +97,7 @@ public class FallingBlockController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FallingBlockNPC(this); } + return super.getBukkitEntity(); } @@ -110,6 +113,7 @@ public class FallingBlockController extends AbstractEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @Override @@ -122,9 +126,11 @@ public class FallingBlockController extends AbstractEntityController { motZ *= 0.98; move(motX, motY, motZ); } + } else { super.t_(); } + } private static final double EPSILON = 0.001; 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 91a1c685c..7eb185f84 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 @@ -53,6 +53,7 @@ public class FireworkController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class FireworkController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class FireworkController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FireworkNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class FireworkController extends MobEntityController { } else { super.t_(); } + } } 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 02053806b..a08392256 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 @@ -53,6 +53,7 @@ public class FishingHookController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class FishingHookController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class FishingHookController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new FishingHookNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class FishingHookController extends MobEntityController { } else { super.t_(); } + } } 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 266a3f158..1e282bce0 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 @@ -66,6 +66,7 @@ public class ItemController extends AbstractEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -73,6 +74,7 @@ public class ItemController extends AbstractEntityController { if (npc == null) { super.d(entityhuman); } + } @Override @@ -86,6 +88,7 @@ public class ItemController extends AbstractEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -93,6 +96,7 @@ public class ItemController extends AbstractEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ItemNPC(this); } + return super.getBukkitEntity(); } @@ -108,6 +112,7 @@ public class ItemController extends AbstractEntityController { } else { super.t_(); } + } } 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 6b212fb7d..36e15b9ff 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 @@ -66,6 +66,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -79,6 +80,7 @@ public class ItemFrameController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -86,6 +88,7 @@ public class ItemFrameController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ItemFrameNPC(this); } + return super.getBukkitEntity(); } @@ -106,6 +109,7 @@ public class ItemFrameController extends MobEntityController { } else { super.t_(); } + } } 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 03bd78aec..3a30475ae 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 @@ -54,6 +54,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -67,6 +68,7 @@ public class LargeFireballController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -74,6 +76,7 @@ public class LargeFireballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LargeFireballNPC(this); } + return super.getBukkitEntity(); } @@ -89,6 +92,7 @@ public class LargeFireballController extends MobEntityController { } else { NMSImpl.setSize(this, f, f1, justCreated); } + } @Override @@ -98,9 +102,11 @@ public class LargeFireballController extends MobEntityController { if (!npc.isProtected()) { super.t_(); } + } else { super.t_(); } + } } 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 2fad0fe3c..5c0f81938 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 @@ -53,6 +53,7 @@ public class LeashController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class LeashController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class LeashController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new LeashNPC(this); } + return super.getBukkitEntity(); } @@ -93,6 +96,7 @@ public class LeashController extends MobEntityController { } else { super.t_(); } + } } 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 5451aab31..93a3253ba 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 @@ -54,6 +54,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -67,6 +68,7 @@ public class MinecartChestController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -74,6 +76,7 @@ public class MinecartChestController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartChestNPC(this); } + return super.getBukkitEntity(); } @@ -89,6 +92,7 @@ public class MinecartChestController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 81bdf4925..aeb30b21c 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 @@ -54,6 +54,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -67,6 +68,7 @@ public class MinecartCommandController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -74,6 +76,7 @@ public class MinecartCommandController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartCommandNPC(this); } + return super.getBukkitEntity(); } @@ -89,6 +92,7 @@ public class MinecartCommandController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 e0c981b65..af106531a 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 @@ -54,6 +54,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -67,6 +68,7 @@ public class MinecartFurnaceController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -74,6 +76,7 @@ public class MinecartFurnaceController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartFurnaceNPC(this); } + return super.getBukkitEntity(); } @@ -89,6 +92,7 @@ public class MinecartFurnaceController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 cec319a79..a86b34487 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 @@ -50,6 +50,7 @@ public class MinecartHopperController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -63,6 +64,7 @@ public class MinecartHopperController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -77,6 +79,7 @@ public class MinecartHopperController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 06af690f2..218de0faf 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 @@ -54,6 +54,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -67,6 +68,7 @@ public class MinecartRideableController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -74,6 +76,7 @@ public class MinecartRideableController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new MinecartRideableNPC(this); } + return super.getBukkitEntity(); } @@ -89,6 +92,7 @@ public class MinecartRideableController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } 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 d5c906186..38fb3e815 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 @@ -50,6 +50,7 @@ public class MinecartSpawnerController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -63,6 +64,7 @@ public class MinecartSpawnerController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -77,6 +79,7 @@ public class MinecartSpawnerController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 d844710ff..09836a142 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 @@ -50,6 +50,7 @@ public class MinecartTNTController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -63,6 +64,7 @@ public class MinecartTNTController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -77,6 +79,7 @@ public class MinecartTNTController extends MobEntityController { npc.update(); NMSImpl.minecartItemLogic(this); } + } } } \ No newline at end of file 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 5cb6f16f0..9b96902fd 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 @@ -53,6 +53,7 @@ public class PaintingController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class PaintingController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class PaintingController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PaintingNPC(this); } + return super.getBukkitEntity(); } @@ -93,6 +96,7 @@ public class PaintingController extends MobEntityController { } else { super.t_(); } + } } 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 635e9faa9..3613422db 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 @@ -53,6 +53,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class SmallFireballController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class SmallFireballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SmallFireballNPC(this); } + return super.getBukkitEntity(); } @@ -88,9 +91,11 @@ public class SmallFireballController extends MobEntityController { if (!npc.isProtected()) { super.t_(); } + } else { super.t_(); } + } } 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 02a5262d4..dc7dff5d3 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 @@ -53,6 +53,7 @@ public class SnowballController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class SnowballController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class SnowballController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new SnowballNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class SnowballController extends MobEntityController { } else { super.t_(); } + } } 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 a969d4d50..554cc1cb4 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 @@ -53,6 +53,7 @@ public class SplashPotionController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class SplashPotionController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class SplashPotionController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new PotionNPC(this); } + return super.getBukkitEntity(); } @@ -88,9 +91,11 @@ public class SplashPotionController extends MobEntityController { if (!npc.isProtected()) { super.t_(); } + } else { super.t_(); } + } } 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 32148b729..b1d5b3ed2 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 @@ -53,6 +53,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class TNTPrimedController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class TNTPrimedController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new TNTPrimedNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class TNTPrimedController extends MobEntityController { } else { super.t_(); } + } } 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 75e87bd75..897884dce 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 @@ -53,6 +53,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class ThrownExpBottleController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class ThrownExpBottleController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new ThrownExpBottleNPC(this); } + return super.getBukkitEntity(); } @@ -88,9 +91,11 @@ public class ThrownExpBottleController extends MobEntityController { if (!npc.isProtected()) { super.t_(); } + } else { super.t_(); } + } } 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 005e6532e..8bdf572f9 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 @@ -53,6 +53,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null) { Util.callCollisionEvent(npc, entity.getBukkitEntity()); } + } @Override @@ -66,6 +67,7 @@ public class WitherSkullController extends MobEntityController { if (vector != null) { super.g(vector.getX(), vector.getY(), vector.getZ()); } + } @Override @@ -73,6 +75,7 @@ public class WitherSkullController extends MobEntityController { if (npc != null && !(bukkitEntity instanceof NPCHolder)) { bukkitEntity = new WitherSkullNPC(this); } + return super.getBukkitEntity(); } @@ -88,6 +91,7 @@ public class WitherSkullController extends MobEntityController { } else { super.t_(); } + } } diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/CitizensBlockBreaker.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/CitizensBlockBreaker.java index fa9ca880e..c33a49e3a 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/CitizensBlockBreaker.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/CitizensBlockBreaker.java @@ -45,6 +45,7 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { ItemStack current = getCurrentItem(); return current != null ? current.b(block) : false; } + } @Override @@ -62,10 +63,13 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { if (i > 0) { f += i * i + 1; } + } + if (handle.hasEffect(MobEffectList.FASTER_DIG)) { f *= 1.0F + (handle.getEffect(MobEffectList.FASTER_DIG).getAmplifier() + 1) * 0.2F; } + if (handle.hasEffect(MobEffectList.SLOWER_DIG)) { float f1 = 1.0F; switch (handle.getEffect(MobEffectList.SLOWER_DIG).getAmplifier()) { @@ -82,15 +86,20 @@ public class CitizensBlockBreaker extends AbstractBlockBreaker { default: f1 = 8.1E-4F; } + f *= f1; } + if (handle.a(Material.WATER) && !EnchantmentManager.j(handle)) { f /= 5.0F; } + } + if (!getHandle().onGround) { f /= 5.0F; } + return f; } } \ No newline at end of file diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java index b85a306b7..39e612572 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java @@ -247,6 +247,7 @@ public class NMSImpl implements NMSBridge { } else if (!handle.world.players.contains(handle)) { handle.world.players.add(handle); } + } @Override @@ -259,6 +260,7 @@ public class NMSImpl implements NMSBridge { PlayerAnimation.ARM_SWING.play(humanHandle.getBukkitEntity()); return; } + AttributeInstance attackDamage = handle.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE); float f = (float) (attackDamage == null ? 1 : attackDamage.getValue()); int i = 0; @@ -266,6 +268,7 @@ public class NMSImpl implements NMSBridge { f += EnchantmentManager.a(handle.bA(), target.getMonsterType()); i += EnchantmentManager.a(handle); } + boolean flag = target.damageEntity(DamageSource.mobAttack(handle), f); if (!flag) return; @@ -275,17 +278,21 @@ public class NMSImpl implements NMSBridge { handle.motX *= 0.6D; handle.motZ *= 0.6D; } + int fireAspectLevel = EnchantmentManager.getFireAspectEnchantmentLevel(handle); if (fireAspectLevel > 0) { target.setOnFire(fireAspectLevel * 4); } + if (ENTITY_ATTACK_A != null) { try { ENTITY_ATTACK_A.invoke(handle, handle, target); } catch (Throwable t) { t.printStackTrace(); } + } + } @Override @@ -297,9 +304,11 @@ public class NMSImpl implements NMSBridge { } catch (Throwable t) { t.printStackTrace(); } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getControllerMove().f = false; } + } @Override @@ -331,14 +340,19 @@ public class NMSImpl implements NMSBridge { if (!changed && !ItemStack.matches(old, curr)) { changed = true; } + equipment.put(i, curr); } + if (changed) { for (int i = 0; i < entity.getEquipment().length; i++) { agg.send(new PacketPlayOutEntityEquipment(handle.getId(), i, equipment.get(i))); } + } + } + tracker.track(Lists.newArrayList(tracker.trackedPlayers)); } @@ -358,7 +372,9 @@ public class NMSImpl implements NMSBridge { if (callback != null) { callback.accept(entity); } + } + tracker.trackedPlayers.clear(); } }; @@ -507,12 +523,15 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { return null; } + } + try { return (GameProfile) SKULL_PROFILE_FIELD.get(meta); } catch (Exception e) { return null; } + } @Override @@ -525,6 +544,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { throw new CommandException(Messages.INVALID_SOUND); } + } @Override @@ -540,6 +560,7 @@ public class NMSImpl implements NMSBridge { EntityLiving handle = NMSImpl.getHandle((LivingEntity) npc.getEntity()); if (handle == null) { } + return DEFAULT_SPEED; // return (float) // handle.getAttributeInstance(GenericAttributes.d).getValue(); @@ -579,6 +600,7 @@ public class NMSImpl implements NMSBridge { if (navigation instanceof Navigation) { ((Navigation) navigation).a(params.avoidWater()); } + return new MCNavigator() { float lastSpeed; CancelReason reason; @@ -598,6 +620,7 @@ public class NMSImpl implements NMSBridge { if (navigation instanceof Navigation) { ((Navigation) navigation).a(oldAvoidsWater); } + stopNavigation(navigation); } @@ -609,13 +632,16 @@ public class NMSImpl implements NMSBridge { if (handle instanceof EntityHorse) { handle.width = Math.min(0.99f, oldWidth); } + if (!function.apply(navigation)) { reason = CancelReason.STUCK; } + handle.width = oldWidth; // minecraft requires that an entity fit onto both blocks if width >= 1f, // but we'd prefer to make it just fit on 1 so hack around it a bit. lastSpeed = params.speed(); } + navigation.a(params.speed()); return NMSImpl.isNavigationFinished(navigation); } @@ -671,6 +697,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { return in.getType().isSolid(); } + return block.w(); } @@ -775,30 +802,37 @@ public class NMSImpl implements NMSBridge { if (zDiff < 0.0) { yaw += Math.abs(180 - yaw) * 2; } + if (handle instanceof EntityEnderDragon) { yaw = Util.getDragonYaw(handle.getBukkitEntity(), xDiff, zDiff); } else { yaw = yaw - 90; } + if (headOnly) { setHeadYaw(entity, (float) yaw); } else { look(entity, (float) yaw, (float) pitch); } + return; } + if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(to.getX(), to.getY(), to.getZ(), 10, ((EntityInsentient) handle).bQ()); while (((EntityInsentient) handle).aK >= 180F) { ((EntityInsentient) handle).aK -= 360F; } + while (((EntityInsentient) handle).aK < -180F) { ((EntityInsentient) handle).aK += 360F; } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -811,17 +845,21 @@ public class NMSImpl implements NMSBridge { } else { look(from, to.getLocation(), false, true); } + } else if (handle instanceof EntityInsentient) { ((EntityInsentient) handle).getControllerLook().a(target, 10, ((EntityInsentient) handle).bQ()); while (((EntityLiving) handle).aK >= 180F) { ((EntityLiving) handle).aK -= 360F; } + while (((EntityLiving) handle).aK < -180F) { ((EntityLiving) handle).aK += 360F; } + } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).getNPC().getOrAddTrait(RotationTrait.class).getPhysicalSession().rotateToFace(to); } + } @Override @@ -861,7 +899,9 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); return super.getBukkitView(); } + } + return this.bukkitEntity; } }; @@ -911,16 +951,20 @@ public class NMSImpl implements NMSBridge { entity.appendEntityCrashDetails(crashreportsystemdetails); throw new ReportedException(crashreport); } + } + if (entity.dead) { entity.world.removeEntity(entity); } else if (!removeFromPlayerList) { if (!entity.world.players.contains(entity)) { entity.world.players.add(entity); } + } else { entity.world.players.remove(entity); } + }; } @@ -933,11 +977,13 @@ public class NMSImpl implements NMSBridge { if (!ENTITY_CLASS_TO_INT.containsKey(search)) { continue; } + int code = ENTITY_CLASS_TO_INT.get(search); ENTITY_CLASS_TO_INT.put(clazz, code); ENTITY_CLASS_TO_NAME.put(clazz, ENTITY_CLASS_TO_NAME.get(search)); return; } + throw new IllegalArgumentException("unable to find valid entity superclass for class " + clazz.toString()); } @@ -971,6 +1017,7 @@ public class NMSImpl implements NMSBridge { hook.hooked = null; hook.getBukkitEntity().remove(); } + } @Override @@ -992,10 +1039,13 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } + if (getHandle(entity) instanceof EntityHumanNPC) { ((EntityHumanNPC) getHandle(entity)).setTracked(replace); } + } @Override @@ -1005,9 +1055,11 @@ public class NMSImpl implements NMSBridge { if (bodyYaw == null) { bodyYaw = handle.yaw; } + if (pitch == null) { pitch = handle.pitch; } + List> toSend = Lists.newArrayList(); if (position) { EntityTrackerEntry entry = ((WorldServer) handle.world).getTracker().trackedEntities.get(handle.getId()); @@ -1020,9 +1072,11 @@ public class NMSImpl implements NMSBridge { toSend.add(new PacketPlayOutEntityLook(handle.getId(), (byte) (bodyYaw * 256.0F / 360.0F), (byte) (pitch * 256.0F / 360.0F), handle.onGround)); } + if (headYaw != null) { toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F))); } + sendPacketsNearby(null, from.getLocation(), toSend, 64); } @@ -1046,6 +1100,7 @@ public class NMSImpl implements NMSBridge { entities[i] = (EntityPlayer) skinnable; i++; } + NMSImpl.sendPacket(recipient, new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, entities)); } @@ -1066,12 +1121,14 @@ public class NMSImpl implements NMSBridge { if (TEAM_FIELD == null) { TEAM_FIELD = NMS.getField(team.getClass(), "team"); } + try { ScoreboardTeam nmsTeam = (ScoreboardTeam) TEAM_FIELD.get(team); sendPacket(recipient, new PacketPlayOutScoreboardTeam(nmsTeam, mode)); } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1099,6 +1156,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).setMoveDestination(x, y, z, speed); } + } @Override @@ -1121,6 +1179,7 @@ public class NMSImpl implements NMSBridge { if (!(handle instanceof EntityHuman)) { handle.aI = yaw; } + handle.aK = yaw; } @@ -1164,11 +1223,14 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { return; } + } + try { SKULL_PROFILE_FIELD.set(meta, profile); } catch (Exception e) { } + } @Override @@ -1182,6 +1244,7 @@ public class NMSImpl implements NMSBridge { } else if (handle instanceof EntityHumanNPC) { ((EntityHumanNPC) handle).setShouldJump(); } + } @Override @@ -1199,6 +1262,7 @@ public class NMSImpl implements NMSBridge { if (entity instanceof Player) { ((Player) entity).setSneaking(sneaking); } + } @Override @@ -1211,6 +1275,7 @@ public class NMSImpl implements NMSBridge { if (TEAM_FIELD == null) { TEAM_FIELD = NMS.getField(team.getClass(), "team"); } + ScoreboardTeam nmsTeam; try { nmsTeam = (ScoreboardTeam) TEAM_FIELD.get(team); @@ -1218,6 +1283,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } @Override @@ -1245,6 +1311,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + return false; } @@ -1282,6 +1349,7 @@ public class NMSImpl implements NMSBridge { facingByte = (byte) 3; break; } + Location bedLoc = loc.clone().add(0, -loc.getY(), 0); PacketPlayOutBed bed = new PacketPlayOutBed(from, new BlockPosition(bedLoc.getBlockX(), bedLoc.getBlockY(), bedLoc.getBlockZ())); @@ -1300,6 +1368,7 @@ public class NMSImpl implements NMSBridge { list.forEach(packet -> sendPacket(nearby, packet)); meta.set(nearby.getUniqueId(), entity.getUniqueId().toString(), System.currentTimeMillis()); } + } else { PacketPlayOutAnimation packet = new PacketPlayOutAnimation(from, 2); sendPacketNearby(entity, entity.getLocation(), packet, 64); @@ -1307,8 +1376,11 @@ public class NMSImpl implements NMSBridge { if (meta.remove(player.getUniqueId(), entity.getUniqueId().toString())) { sendPacket(player, packet); } + } + } + } @Override @@ -1324,6 +1396,7 @@ public class NMSImpl implements NMSBridge { if (RANDOM.nextFloat() <= 0.85F && (handle.W() || handle.ab())) { handle.motY += power; } + } @Override @@ -1351,6 +1424,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { Messaging.logTr(Messages.ERROR_UPDATING_NAVIGATION_WORLD, e.getMessage()); } + } @Override @@ -1362,8 +1436,10 @@ public class NMSImpl implements NMSBridge { if (en instanceof EntityHumanNPC) { ((EntityHumanNPC) en).updatePathfindingRange(pathfindingRange); } + return; } + if (PATHFINDING_RANGE == null) return; EntityInsentient handle = (EntityInsentient) en; @@ -1376,6 +1452,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } private static class CitizensInventoryAnvil extends CraftInventoryAnvil implements ForwardingInventory { @@ -1484,6 +1561,7 @@ public class NMSImpl implements NMSBridge { living.setPosition(living.locX - 0.01, living.locY, living.locZ - 0.01); living.setPosition(living.locX + 0.01, living.locY, living.locZ + 0.01); } + } public static void clearGoals(PathfinderGoalSelector... goalSelectors) { @@ -1496,7 +1574,9 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { Messaging.logTr(Messages.ERROR_CLEARING_GOALS, e.getLocalizedMessage()); } + } + } private static CompoundTag convertNBT(net.minecraft.server.v1_8_R3.NBTTagCompound tag) { @@ -1506,6 +1586,7 @@ public class NMSImpl implements NMSBridge { for (String key : tag.c()) { tags.put(key, convertNBT(key, tag.get(key))); } + return new CompoundTag("", tags); } @@ -1536,8 +1617,10 @@ public class NMSImpl implements NMSBridge { for (int i = 0; i < list.size(); i++) { converted.add(convertNBT("", list.get(i))); } + return new ListTag(key, tagType, converted); } + } else if (base instanceof net.minecraft.server.v1_8_R3.NBTTagCompound) return convertNBT((net.minecraft.server.v1_8_R3.NBTTagCompound) base); else if (base instanceof net.minecraft.server.v1_8_R3.NBTTagEnd) @@ -1555,13 +1638,16 @@ public class NMSImpl implements NMSBridge { if (f2 > 3.0F) { f2 = 3.0F; } + if (!entity.onGround) { f2 *= 0.5F; } + if (f2 > 0.0F) { f3 += (0.54600006F - f3) * f2 / 3.0F; f4 += (entity.bI() * 1.0F - f4) * f2 / 3.0F; } + entity.a(f, f1, f4); entity.move(entity.motX, entity.motY, entity.motZ); entity.motX *= f3; @@ -1572,6 +1658,7 @@ public class NMSImpl implements NMSBridge { && entity.c(entity.motX, entity.motY + 0.6000000238418579D - entity.locY + d0, entity.motZ)) { entity.motY = 0.30000001192092896D; } + } else if (entity.ab()) { double d0 = entity.locY; entity.a(f, f1, 0.02F); @@ -1584,6 +1671,7 @@ public class NMSImpl implements NMSBridge { && entity.c(entity.motX, entity.motY + 0.6000000238418579D - entity.locY + d0, entity.motZ)) { entity.motY = 0.30000001192092896D; } + } else { float f5 = 0.91F; if (entity.onGround) { @@ -1592,6 +1680,7 @@ public class NMSImpl implements NMSBridge { MathHelper.floor(entity.getBoundingBox().b) - 1, MathHelper.floor(entity.locZ))) .getBlock().frictionFactor * 0.91F; } + float f6 = 0.16277136F / (f5 * f5 * f5); float f3; if (entity.onGround) { @@ -1599,6 +1688,7 @@ public class NMSImpl implements NMSBridge { } else { f3 = entity.aM; } + entity.a(f, f1, f3); f5 = 0.91F; if (entity.onGround) { @@ -1607,6 +1697,7 @@ public class NMSImpl implements NMSBridge { MathHelper.floor(entity.getBoundingBox().b) - 1, MathHelper.floor(entity.locZ))) .getBlock().frictionFactor * 0.91F; } + if (entity.k_()) { float f4 = 0.15F; entity.motX = MathHelper.a(entity.motX, -f4, f4); @@ -1615,15 +1706,19 @@ public class NMSImpl implements NMSBridge { if (entity.motY < -0.15D) { entity.motY = -0.15D; } + boolean flag = entity.isSneaking() && entity instanceof EntityHuman; if (flag && entity.motY < 0.0D) { entity.motY = 0.0D; } + } + entity.move(entity.motX, entity.motY, entity.motZ); if (entity.positionChanged && entity.k_()) { entity.motY = 0.2D; } + if (entity.world.isClientSide && (!entity.world .isLoaded(new BlockPosition((int) entity.locX, 0, (int) entity.locZ)) || !entity.world @@ -1634,14 +1729,18 @@ public class NMSImpl implements NMSBridge { } else { entity.motY = 0.0D; } + } else { entity.motY -= 0.08D; } + entity.motY *= 0.9800000190734863D; entity.motX *= f5; entity.motZ *= f5; } + } + entity.aA = entity.aB; double d0 = entity.locX - entity.lastX; double d1 = entity.locZ - entity.lastZ; @@ -1649,6 +1748,7 @@ public class NMSImpl implements NMSBridge { if (f2 > 1.0F) { f2 = 1.0F; } + entity.aB += (f2 - entity.aB) * 0.4F; entity.aC += entity.aB; } @@ -1686,6 +1786,7 @@ public class NMSImpl implements NMSBridge { } catch (IllegalAccessException e) { e.printStackTrace(); } + } public static boolean isLeashed(NPC npc, Supplier isLeashed, EntityInsentient entity) { @@ -1708,6 +1809,7 @@ public class NMSImpl implements NMSBridge { if (mat != null) { minecart.setDisplayBlock(Block.getById(mat.getId()).fromLegacyData(data)); } + minecart.SetDisplayBlockOffset(offset); } @@ -1731,10 +1833,13 @@ public class NMSImpl implements NMSBridge { || location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) { continue; } + for (Packet packet : packets) { NMSImpl.sendPacket(player, packet); } + } + } public static void sendPacketsNearby(Player from, Location location, Packet... packets) { @@ -1747,6 +1852,7 @@ public class NMSImpl implements NMSBridge { } catch (Throwable e) { e.printStackTrace(); } + } public static void setSize(Entity entity, float f, float f1, boolean justCreated) { @@ -1760,7 +1866,9 @@ public class NMSImpl implements NMSBridge { if (entity.width > f2 && !justCreated && !entity.world.isClientSide) { entity.move((f2 - entity.width) / 2, 0.0D, (f2 - entity.width) / 2); } + } + } public static void stopNavigation(NavigationAbstract navigation) { @@ -1778,6 +1886,7 @@ public class NMSImpl implements NMSBridge { } else if (entity instanceof EntityHumanNPC) { ((EntityHumanNPC) entity).updateAI(); } + } public static void updateNavigation(NavigationAbstract navigation) { @@ -1822,6 +1931,7 @@ public class NMSImpl implements NMSBridge { } catch (Exception e) { Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage()); } + try { MAKE_REQUEST = YggdrasilAuthenticationService.class.getDeclaredMethod("makeRequest", URL.class, Object.class, Class.class); @@ -1829,5 +1939,6 @@ public class NMSImpl implements NMSBridge { } catch (Exception ex) { ex.printStackTrace(); } + } } diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerAnimationImpl.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerAnimationImpl.java index a23d53ff2..fd3a4ba05 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerAnimationImpl.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerAnimationImpl.java @@ -20,6 +20,7 @@ public class PlayerAnimationImpl { playDefaultAnimation(player, to, DEFAULTS.get(animation)); return; } + switch (animation) { case SNEAK: player.getBukkitEntity().setSneaking(true); @@ -32,6 +33,7 @@ public class PlayerAnimationImpl { default: throw new UnsupportedOperationException(); } + } protected static void playDefaultAnimation(EntityPlayer player, Iterable to, int code) { @@ -43,6 +45,7 @@ public class PlayerAnimationImpl { for (Player player : to) { NMSImpl.sendPacket(player, packet); } + } private static EnumMap DEFAULTS = Maps.newEnumMap(PlayerAnimation.class); diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerControllerMove.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerControllerMove.java index 724b210c9..02449b8ab 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerControllerMove.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerControllerMove.java @@ -50,15 +50,18 @@ public class PlayerControllerMove extends ControllerMove { if (f3 > f2) { f3 = f2; } + if (f3 < -f2) { f3 = -f2; } + float f4 = f + f3; if (f4 < 0.0F) { f4 += 360.0F; } else if (f4 > 360.0F) { f4 -= 360.0F; } + return f4; } @@ -96,7 +99,9 @@ public class PlayerControllerMove extends ControllerMove { } else { ((EntityInsentient) this.a).getControllerJump().a(); } + } + } protected int cg() { diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerNavigation.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerNavigation.java index 7bc801b66..59ff1e57c 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerNavigation.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerNavigation.java @@ -128,8 +128,11 @@ public class PlayerNavigation extends NavigationAbstract { || localMaterial == Material.LAVA) return false; } + } + } + return true; } @@ -139,9 +142,11 @@ public class PlayerNavigation extends NavigationAbstract { this.d = null; return false; } + if (!paramPathEntity.a(this.d)) { this.d = paramPathEntity; } + d(); if (this.d.d() == 0) return false; @@ -158,9 +163,11 @@ public class PlayerNavigation extends NavigationAbstract { if (paramVec3D.distanceSquared(this.h) < 2.25D) { n(); } + this.g = this.f; this.h = paramVec3D; } + } @Override @@ -188,9 +195,11 @@ public class PlayerNavigation extends NavigationAbstract { if (d1 >= 0.0D) { d7 += 1.0D; } + if (d2 >= 0.0D) { d8 += 1.0D; } + d7 /= d1; d8 /= d2; int k = d1 < 0.0D ? -1 : 1; @@ -209,9 +218,11 @@ public class PlayerNavigation extends NavigationAbstract { j += m; i3 = i1 - j; } + if (!a(i, (int) paramVec3D1.b, j, paramInt1, paramInt2, paramInt3, paramVec3D1, d1, d2)) return false; } + return true; } @@ -235,7 +246,9 @@ public class PlayerNavigation extends NavigationAbstract { if (!localBlock.b(this.c, localBlockPosition)) return false; } + } + return true; } @@ -261,8 +274,11 @@ public class PlayerNavigation extends NavigationAbstract { this.d.b(i - 1); return; } + } + } + } public void d(boolean paramBoolean) { @@ -310,7 +326,9 @@ public class PlayerNavigation extends NavigationAbstract { && MathHelper.floor(localVec3D.c) == MathHelper.floor(localObject.c)) { this.d.c(this.d.e() + 1); } + } + if (m()) return; Vec3D localVec3D = this.d.a(this.b); @@ -324,6 +342,7 @@ public class PlayerNavigation extends NavigationAbstract { for (AxisAlignedBB localAxisAlignedBB : localList) { d1 = localAxisAlignedBB.b((AxisAlignedBB) localObject, d1); } + this.b.getControllerMove().a(localVec3D.a, localVec3D.b + d1, localVec3D.c, this.e); } @@ -336,14 +355,18 @@ public class PlayerNavigation extends NavigationAbstract { k = m; break; } + } + float f1 = this.b.width * this.b.width * this.i; for (int n = this.d.e(); n < k; n++) { Vec3D localVec3D2 = this.d.a(this.b, n); if (localVec3D1.distanceSquared(localVec3D2) < f1) { this.d.c(n + 1); } + } + int n = MathHelper.f(this.b.width); int i1 = (int) this.b.length + 1; int i2 = n; @@ -352,7 +375,9 @@ public class PlayerNavigation extends NavigationAbstract { this.d.c(i3); break; } + } + a(localVec3D1); } @@ -387,6 +412,7 @@ public class PlayerNavigation extends NavigationAbstract { if (j > 16) return (int) this.b.getBoundingBox().b; } + return i; } diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerPathfinder.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerPathfinder.java index ed3589dc3..70ff7a958 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerPathfinder.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerPathfinder.java @@ -31,6 +31,7 @@ public class PlayerPathfinder { } catch (IllegalAccessException e1) { e1.printStackTrace(); } + this.a.a(); this.a.a(paramPathPoint1); Object localObject = paramPathPoint1; @@ -41,6 +42,7 @@ public class PlayerPathfinder { if (localPathPoint1.b(paramPathPoint2) < ((PathPoint) localObject).b(paramPathPoint2)) { localObject = localPathPoint1; } + localPathPoint1.i = true; int i = this.c.a(this.b, paramEntity, localPathPoint1, paramPathPoint2, paramFloat); for (int j = 0; j < i; j++) { @@ -59,14 +61,19 @@ public class PlayerPathfinder { G.set(localPathPoint2, f + newF); this.a.a(localPathPoint2); } + } + } catch (IllegalArgumentException e1) { e1.printStackTrace(); } catch (IllegalAccessException e1) { e1.printStackTrace(); } + } + } + if (localObject == paramPathPoint1) return null; return a(paramPathPoint1, (PathPoint) localObject); @@ -102,11 +109,13 @@ public class PlayerPathfinder { i++; localPathPoint = (PathPoint) H.get(localPathPoint); } + } catch (IllegalArgumentException e1) { e1.printStackTrace(); } catch (IllegalAccessException e1) { e1.printStackTrace(); } + PathPoint[] arrayOfPathPoint = new PathPoint[i]; localPathPoint = paramPathPoint2; arrayOfPathPoint[--i] = localPathPoint; @@ -115,11 +124,13 @@ public class PlayerPathfinder { localPathPoint = (PathPoint) H.get(localPathPoint); arrayOfPathPoint[--i] = localPathPoint; } + } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } + return new PathEntity(arrayOfPathPoint); } diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerPathfinderAbstract.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerPathfinderAbstract.java index 8894a1406..3ad797999 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerPathfinderAbstract.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerPathfinderAbstract.java @@ -41,6 +41,7 @@ public abstract class PlayerPathfinderAbstract extends PathfinderAbstract { localPathPoint = new PathPoint(paramInt1, paramInt2, paramInt3); this.b.a(i, localPathPoint); } + return localPathPoint; } diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerPathfinderNormal.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerPathfinderNormal.java index 627e9522d..4ad247ebd 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerPathfinderNormal.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerPathfinderNormal.java @@ -44,10 +44,12 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { localMutableBlockPosition.c(MathHelper.floor(paramEntity.locX), k, MathHelper.floor(paramEntity.locZ)); localBlock = this.a.getType(localMutableBlockPosition).getBlock(); } + this.h = false; } else { k = MathHelper.floor(paramEntity.getBoundingBox().b + 0.5D); } + return a(MathHelper.floor(paramEntity.getBoundingBox().a), k, MathHelper.floor(paramEntity.getBoundingBox().c)); } @@ -69,11 +71,13 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (k == 1) { localPathPoint = a(paramInt1, paramInt2, paramInt3); } + if (localPathPoint == null && paramInt4 > 0 && k != -3 && k != -4 && a(paramEntity, paramInt1, paramInt2 + paramInt4, paramInt3) == 1) { localPathPoint = a(paramInt1, paramInt2 + paramInt4, paramInt3); paramInt2 += paramInt4; } + if (localPathPoint != null) { int m = 0; int n = 0; @@ -89,13 +93,17 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { localPathPoint = a(paramInt1, paramInt2, paramInt3); } else return null; + } else { break; } + } + if (n == -2) return null; } + return localPathPoint; } @@ -113,6 +121,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (a(paramEntity, paramPathPoint1.a, paramPathPoint1.b + 1, paramPathPoint1.c) == 1) { m = 1; } + PathPoint localPathPoint1 = a(paramEntity, paramPathPoint1.a, paramPathPoint1.b, paramPathPoint1.c + 1, m); PathPoint localPathPoint2 = a(paramEntity, paramPathPoint1.a - 1, paramPathPoint1.b, paramPathPoint1.c, m); PathPoint localPathPoint3 = a(paramEntity, paramPathPoint1.a + 1, paramPathPoint1.b, paramPathPoint1.c, m); @@ -120,15 +129,19 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { if (localPathPoint1 != null && !localPathPoint1.i && localPathPoint1.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[k++] = localPathPoint1; } + if (localPathPoint2 != null && !localPathPoint2.i && localPathPoint2.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[k++] = localPathPoint2; } + if (localPathPoint3 != null && !localPathPoint3.i && localPathPoint3.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[k++] = localPathPoint3; } + if (localPathPoint4 != null && !localPathPoint4.i && localPathPoint4.a(paramPathPoint2) < paramFloat) { paramArrayOfPathPoint[k++] = localPathPoint4; } + return k; } @@ -177,6 +190,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { } else if (!paramBoolean3 && localBlock instanceof BlockDoor && localBlock.getMaterial() == Material.WOOD) return 0; + if (paramEntity.world.getType(localMutableBlockPosition) .getBlock() instanceof BlockMinecartTrackAbstract) { if (!(paramEntity.world.getType(localBlockPosition) @@ -198,12 +212,19 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { return -2; } else return 0; + } + } + } + } + } + } + return k != 0 ? 2 : 1; } } diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerlistTrackerEntry.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerlistTrackerEntry.java index 0736a12f7..7f0fc096c 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerlistTrackerEntry.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerlistTrackerEntry.java @@ -41,12 +41,14 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { if (res == null) { updateLastPlayer(player); } + return res; } }); } catch (Throwable e) { e.printStackTrace(); } + } else { try { Set delegate = super.trackedPlayers; @@ -57,6 +59,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { if (res) { updateLastPlayer(player); } + return res; } @@ -68,7 +71,9 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (Throwable e) { e.printStackTrace(); } + } + } public PlayerlistTrackerEntry(EntityTrackerEntry entry) { @@ -85,6 +90,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { new NPCLinkToPlayerEvent(((NPCHolder) tracker).getNPC(), lastUpdatedPlayer.getBukkitEntity())); lastUpdatedPlayer = null; } + } @Override @@ -113,6 +119,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return 0; } @@ -124,6 +131,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return 0; } @@ -135,6 +143,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } catch (IllegalAccessException e) { e.printStackTrace(); } + return false; } @@ -152,7 +161,9 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { TRACKING_MAP_SETTER = NMS.getFirstSetter(EntityTrackerEntry.class, Map.class); TRACKING_MAP_GETTER = NMS.getFirstGetter(EntityTrackerEntry.class, Map.class); } + } catch (Exception e) { } + } }