From a24064ddae397b3b71add94016069c20cee92104 Mon Sep 17 00:00:00 2001 From: fullwall Date: Sun, 3 Mar 2024 18:07:25 +0800 Subject: [PATCH] Override teleport method in Shulker rather than blocking tick --- .../nms/v1_10_R1/entity/ShulkerController.java | 8 ++++++-- .../nms/v1_11_R1/entity/ShulkerController.java | 8 ++++++-- .../nms/v1_12_R1/entity/ShulkerController.java | 8 ++++++-- .../nms/v1_13_R2/entity/ShulkerController.java | 12 ++++++++---- .../nms/v1_14_R1/entity/ShulkerController.java | 8 ++++++-- .../nms/v1_15_R1/entity/ShulkerController.java | 11 ++++++----- .../nms/v1_16_R3/entity/ShulkerController.java | 11 ++++++----- .../nms/v1_17_R1/entity/ShulkerController.java | 11 ++++++----- .../nms/v1_18_R2/entity/ShulkerController.java | 11 ++++++----- .../nms/v1_19_R3/entity/ShulkerController.java | 11 ++++++----- .../nms/v1_20_R3/entity/ShulkerController.java | 11 ++++++----- 11 files changed, 68 insertions(+), 42 deletions(-) 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 c30d2fa91..34b086dc2 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 @@ -155,10 +155,9 @@ public class ShulkerController extends MobEntityController { @Override public void m() { + super.m(); if (npc != null) { npc.update(); - } else { - super.m(); } } @@ -177,6 +176,11 @@ public class ShulkerController extends MobEntityController { } } + @Override + protected boolean o() { + return npc == null || npc.useMinecraftAI() ? super.o() : false; + } + @Override protected EntityAIBodyControl s() { return npc == null ? super.s() : new EntityAIBodyControl(this); 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 93873c68b..effed1830 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 @@ -66,10 +66,9 @@ public class ShulkerController extends MobEntityController { @Override public void A_() { + super.A_(); if (npc != null) { npc.update(); - } else { - super.A_(); } } @@ -177,6 +176,11 @@ public class ShulkerController extends MobEntityController { } } + @Override + protected boolean o() { + return npc == null || npc.useMinecraftAI() ? super.o() : false; + } + @Override protected EntityAIBodyControl s() { return npc == null ? super.s() : new EntityAIBodyControl(this); 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 92b6f3fd3..d8908e712 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 @@ -77,10 +77,9 @@ public class ShulkerController extends MobEntityController { @Override public void B_() { + super.B_(); if (npc != null) { npc.update(); - } else { - super.B_(); } } @@ -184,6 +183,11 @@ public class ShulkerController extends MobEntityController { } } + @Override + protected boolean p() { + return npc == null || npc.useMinecraftAI() ? super.p() : false; + } + @Override protected EntityAIBodyControl s() { return npc == null ? super.s() : new EntityAIBodyControl(this); 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 5dc747caa..04d85266a 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 @@ -182,6 +182,11 @@ public class ShulkerController extends MobEntityController { return NMSImpl.isLeashed(npc, super::isLeashed, this); } + @Override + protected boolean l() { + return npc == null || npc.useMinecraftAI() ? super.l() : false; + } + @Override public void movementTick() { if (npc == null) { @@ -220,18 +225,17 @@ public class ShulkerController extends MobEntityController { @Override public void tick() { + super.tick(); if (npc != null) { npc.update(); - } else { - super.tick(); } } @Override public boolean z_() { - if (npc == null || !npc.isFlyable()) + if (npc == null || !npc.isFlyable()) { return super.z_(); - else + } else return false; } 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 2dfee3e99..0cea378ee 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 @@ -186,6 +186,11 @@ public class ShulkerController extends MobEntityController { return NMSImpl.isLeashed(npc, super::isLeashed, this); } + @Override + protected boolean l() { + return npc == null || npc.useMinecraftAI() ? super.l() : false; + } + @Override public void movementTick() { if (npc == null) { @@ -207,10 +212,9 @@ public class ShulkerController extends MobEntityController { @Override public void tick() { + super.tick(); if (npc != null) { npc.update(); - } else { - super.tick(); } } 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 d6432eb79..71a1da0ce 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 @@ -187,6 +187,11 @@ public class ShulkerController extends MobEntityController { return NMSImpl.isLeashed(npc, super::isLeashed, this); } + @Override + protected boolean l() { + return npc == null || npc.useMinecraftAI() ? super.l() : false; + } + @Override public void movementTick() { if (npc == null || npc.useMinecraftAI()) { @@ -208,14 +213,10 @@ public class ShulkerController extends MobEntityController { @Override public void tick() { + super.tick(); if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); - if (npc.useMinecraftAI()) { - super.tick(); - } npc.update(); - } else { - super.tick(); } } 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 101e4d22c..4a4251516 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 @@ -124,6 +124,11 @@ public class ShulkerController extends MobEntityController { return NMS.getJumpPower(npc, super.dJ()); } + @Override + protected boolean eK() { + return npc == null || npc.useMinecraftAI() ? super.eK() : false; + } + @Override public void g(Vec3D vec3d) { if (npc == null || !npc.isFlyable()) { @@ -208,14 +213,10 @@ public class ShulkerController extends MobEntityController { @Override public void tick() { + super.tick(); if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); - if (npc.useMinecraftAI()) { - super.tick(); - } npc.update(); - } else { - super.tick(); } } 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 215445747..f0e321c34 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 @@ -199,16 +199,17 @@ public class ShulkerController extends MobEntityController { return npc == null ? super.save(save) : false; } + @Override + protected boolean teleportSomewhere() { + return npc == null || npc.useMinecraftAI() ? super.teleportSomewhere() : false; + } + @Override public void tick() { + super.tick(); if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); - if (npc.useMinecraftAI()) { - super.tick(); - } npc.update(); - } else { - super.tick(); } } 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 8bdae3d8c..be150ea52 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 @@ -200,6 +200,11 @@ public class ShulkerController extends MobEntityController { return npc == null ? super.save(save) : false; } + @Override + protected boolean teleportSomewhere() { + return npc == null || npc.useMinecraftAI() ? super.teleportSomewhere() : false; + } + @Override public Entity teleportTo(ServerLevel worldserver, BlockPos location) { if (npc == null) @@ -209,14 +214,10 @@ public class ShulkerController extends MobEntityController { @Override public void tick() { + super.tick(); if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); - if (npc.useMinecraftAI()) { - super.tick(); - } npc.update(); - } else { - super.tick(); } } 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 905068a1c..3ec4d3689 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 @@ -201,6 +201,11 @@ public class ShulkerController extends MobEntityController { return npc == null ? super.save(save) : false; } + @Override + protected boolean teleportSomewhere() { + return npc == null || npc.useMinecraftAI() ? super.teleportSomewhere() : false; + } + @Override public Entity teleportTo(ServerLevel worldserver, PositionImpl location) { if (npc == null) @@ -210,14 +215,10 @@ public class ShulkerController extends MobEntityController { @Override public void tick() { + super.tick(); if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); - if (npc.useMinecraftAI()) { - super.tick(); - } npc.update(); - } else { - super.tick(); } } diff --git a/v1_20_R3/src/main/java/net/citizensnpcs/nms/v1_20_R3/entity/ShulkerController.java b/v1_20_R3/src/main/java/net/citizensnpcs/nms/v1_20_R3/entity/ShulkerController.java index 2b6c76b97..1fbbc7ca9 100644 --- a/v1_20_R3/src/main/java/net/citizensnpcs/nms/v1_20_R3/entity/ShulkerController.java +++ b/v1_20_R3/src/main/java/net/citizensnpcs/nms/v1_20_R3/entity/ShulkerController.java @@ -200,6 +200,11 @@ public class ShulkerController extends MobEntityController { return npc == null ? super.save(save) : false; } + @Override + protected boolean teleportSomewhere() { + return npc == null || npc.useMinecraftAI() ? super.teleportSomewhere() : false; + } + @Override public Entity teleportTo(ServerLevel worldserver, Vec3 location) { if (npc == null) @@ -209,14 +214,10 @@ public class ShulkerController extends MobEntityController { @Override public void tick() { + super.tick(); if (npc != null) { NMSImpl.updateMinecraftAIState(npc, this); - if (npc.useMinecraftAI()) { - super.tick(); - } npc.update(); - } else { - super.tick(); } }