From bd19c9e3e48fe957b5ccefee277c833c874b97d5 Mon Sep 17 00:00:00 2001 From: fullwall Date: Sun, 13 Jun 2021 13:40:24 +0800 Subject: [PATCH] Further fixes --- .../nms/v1_17_R1/entity/CatController.java | 1 + .../v1_17_R1/entity/ChickenController.java | 1 + .../nms/v1_17_R1/entity/CowController.java | 1 + .../nms/v1_17_R1/entity/EntityHumanNPC.java | 4 +- .../nms/v1_17_R1/entity/FoxController.java | 1 + .../nms/v1_17_R1/entity/GoatController.java | 1 + .../nms/v1_17_R1/entity/HorseController.java | 1 + .../entity/HorseDonkeyController.java | 1 + .../v1_17_R1/entity/HorseMuleController.java | 1 + .../entity/HorseSkeletonController.java | 1 + .../entity/HorseZombieController.java | 1 + .../nms/v1_17_R1/entity/LlamaController.java | 1 + .../v1_17_R1/entity/MobEntityController.java | 6 +- .../entity/MushroomCowController.java | 1 + .../nms/v1_17_R1/entity/OcelotController.java | 1 + .../nms/v1_17_R1/entity/PandaController.java | 1 + .../v1_17_R1/entity/PhantomController.java | 7 +- .../nms/v1_17_R1/entity/PigController.java | 1 + .../v1_17_R1/entity/PillagerController.java | 1 + .../v1_17_R1/entity/PolarBearController.java | 1 + .../nms/v1_17_R1/entity/RabbitController.java | 1 + .../v1_17_R1/entity/RavagerController.java | 1 + .../nms/v1_17_R1/entity/SheepController.java | 1 + .../entity/TraderLlamaController.java | 3 +- .../v1_17_R1/entity/VillagerController.java | 1 + .../v1_17_R1/entity/VindicatorController.java | 1 + .../entity/WanderingTraderController.java | 1 + .../nms/v1_17_R1/entity/WolfController.java | 1 + .../nonliving/FishingHookController.java | 3 +- .../nms/v1_17_R1/util/NMSImpl.java | 112 ++++++------------ .../nms/v1_17_R1/util/PlayerNavigation.java | 12 +- .../v1_17_R1/util/PlayerNodeEvaluator.java | 7 +- 32 files changed, 74 insertions(+), 104 deletions(-) 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 9b27a7358..1895ac4c4 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 @@ -167,6 +167,7 @@ public class CatController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); } 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 aeeb290c9..ab8198243 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 @@ -175,6 +175,7 @@ public class ChickenController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 cafa52cb8..fb76663b4 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 @@ -183,6 +183,7 @@ public class CowController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); } 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 e0f838b59..fe0ad8456 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 @@ -249,7 +249,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } public float getPathfindingMalus(BlockPathTypes pathtype) { - return this.bz.containsKey(pathtype) ? this.bz.get(pathtype).floatValue() : pathtype.getMalus(); + return this.bz.containsKey(pathtype) ? this.bz.get(pathtype) : pathtype.getMalus(); } @Override @@ -418,7 +418,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } public void setPathfindingMalus(BlockPathTypes pathtype, float f) { - this.bz.put(pathtype, Float.valueOf(f)); + this.bz.put(pathtype, f); } public void setShouldJump() { 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 7d83760b4..fd2109065 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 @@ -161,6 +161,7 @@ public class FoxController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); } 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 fc7813d39..d618ad264 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 @@ -161,6 +161,7 @@ public class GoatController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); } 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 46df28001..45767b7d7 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 @@ -206,6 +206,7 @@ public class HorseController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 caf67d85e..2f2e8b012 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 @@ -205,6 +205,7 @@ public class HorseDonkeyController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 3731fcd24..d9c9849c9 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 @@ -205,6 +205,7 @@ public class HorseMuleController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 41a4e09c9..1708e9187 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 @@ -205,6 +205,7 @@ public class HorseSkeletonController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 3d4e50c9b..f56b77513 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 @@ -205,6 +205,7 @@ public class HorseZombieController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 2191d6683..34d11002f 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 @@ -177,6 +177,7 @@ public class LlamaController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 7b5a929be..49a869ebf 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 @@ -39,11 +39,7 @@ public abstract class MobEntityController extends AbstractEntityController { if (beneath.isSolid()) { entity.setOnGround(true); } - try { - NMSImpl.UUID_FIELD.invoke(entity, npc.getUniqueId()); - } catch (Throwable e) { - e.printStackTrace(); - } + entity.setUUID(npc.getUniqueId()); return entity.getBukkitEntity(); } 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 b07c5a8e6..fb5fd121c 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 @@ -171,6 +171,7 @@ public class MushroomCowController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 c2cbb9f18..e3be772bc 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 @@ -167,6 +167,7 @@ public class OcelotController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 02a835192..ea275d205 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 @@ -161,6 +161,7 @@ public class PandaController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); } 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 a9c19ddb1..bebdba3a7 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 @@ -194,6 +194,7 @@ public class PhantomController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); @@ -224,12 +225,12 @@ public class PhantomController extends MobEntityController { @Override public void tick() { // avoid suicide - boolean resetDifficulty = this.level.getDifficulty() == Difficulty.PEACEFUL; - if (npc != null && resetDifficulty) { + boolean resetDifficulty = npc != null && this.level.getDifficulty() == Difficulty.PEACEFUL; + if (resetDifficulty) { ((WorldData) this.level.getLevelData()).setDifficulty(Difficulty.NORMAL); } super.tick(); - if (npc != null && resetDifficulty) { + if (resetDifficulty) { ((WorldData) this.level.getLevelData()).setDifficulty(Difficulty.PEACEFUL); } } 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 f762e6c69..af1cf0736 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 @@ -169,6 +169,7 @@ public class PigController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 e24d1ba05..274d91134 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 @@ -161,6 +161,7 @@ public class PillagerController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); } 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 ee4b66144..e43b58e1b 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 @@ -135,6 +135,7 @@ public class PolarBearController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 e0e7d289d..2dec50dc0 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 @@ -172,6 +172,7 @@ public class RabbitController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 27f9967b3..ebf80d185 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 @@ -161,6 +161,7 @@ public class RavagerController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); } 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 29a5bfc0b..883ba8685 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 @@ -162,6 +162,7 @@ public class SheepController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 cce2d9d5f..5f6e3ff64 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 @@ -103,7 +103,7 @@ public class TraderLlamaController extends MobEntityController { if (npc.useMinecraftAI()) { super.customServerAiStep(); } - NMSImpl.setDespawnDelay(this, 10); + setDespawnDelay(10); NMS.setStepHeight(getBukkitEntity(), 1); npc.update(); } @@ -178,6 +178,7 @@ public class TraderLlamaController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 7836ac16d..a2cf972d8 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 @@ -198,6 +198,7 @@ public class VillagerController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 295c7dfb8..3b2df2a7f 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 @@ -162,6 +162,7 @@ public class VindicatorController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 0e177da6e..b9f2f9199 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 @@ -196,6 +196,7 @@ public class WanderingTraderController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 a8316618a..e903bea55 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 @@ -163,6 +163,7 @@ public class WolfController extends MobEntityController { calledNMSHeight = true; NMSImpl.checkAndUpdateHeight(this, datawatcherobject); calledNMSHeight = false; + return; } super.onSyncedDataUpdated(datawatcherobject); 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 97392cc12..95cfaf531 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 @@ -19,6 +19,7 @@ import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; @@ -46,7 +47,7 @@ public class FishingHookController extends MobEntityController { } public EntityFishingHookNPC(EntityType types, Level level, NPC npc) { - super(new ServerPlayer(level.getServer().getServer(), (ServerLevel) level, + super(new ServerPlayer(MinecraftServer.getServer(), (ServerLevel) level, new GameProfile(UUID.randomUUID(), "dummyfishhook")) { }, level, 0, 0); this.npc = (CitizensNPC) npc; 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 cbc7ffb62..8803ff0a3 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 @@ -213,7 +213,6 @@ import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; import net.minecraft.ReportedException; import net.minecraft.core.BlockPos; -import net.minecraft.core.DefaultedRegistry; import net.minecraft.core.Registry; import net.minecraft.network.Connection; import net.minecraft.network.protocol.Packet; @@ -256,7 +255,6 @@ import net.minecraft.world.entity.animal.PolarBear; import net.minecraft.world.entity.animal.Pufferfish; import net.minecraft.world.entity.animal.Rabbit; import net.minecraft.world.entity.animal.horse.AbstractHorse; -import net.minecraft.world.entity.animal.horse.TraderLlama; import net.minecraft.world.entity.boss.enderdragon.EnderDragon; import net.minecraft.world.entity.boss.wither.WitherBoss; import net.minecraft.world.entity.monster.EnderMan; @@ -266,6 +264,7 @@ import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.item.enchantment.EnchantmentHelper; +import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.pathfinder.BlockPathTypes; @@ -527,18 +526,10 @@ public class NMSImpl implements NMSBridge { public String getSound(String flag) throws CommandException { try { Sound sound = Sound.valueOf(flag.toUpperCase()); - if (CRAFTSOUND_GETSOUND != null) { - String ret = (String) CRAFTSOUND_GETSOUND.invoke(sound); - if (ret == null) - throw new CommandException(Messages.INVALID_SOUND); - return ret; - } else { - SoundEvent effect = CraftSound.getSoundEffect(sound); - if (effect == null) - throw new CommandException(Messages.INVALID_SOUND); - ResourceLocation key = (ResourceLocation) SOUNDEFFECT_LOCATION.invoke(effect); - return key.getPath(); - } + SoundEvent effect = CraftSound.getSoundEffect(sound); + if (effect == null) + throw new CommandException(Messages.INVALID_SOUND); + return effect.getLocation().getPath(); } catch (Throwable e) { throw new CommandException(Messages.INVALID_SOUND); } @@ -1031,26 +1022,13 @@ public class NMSImpl implements NMSBridge { @Override public void removeHookIfNecessary(NPCRegistry npcRegistry, FishHook entity) { - if (FISHING_HOOK_HOOKED == null) - return; FishingHook hook = (FishingHook) NMSImpl.getHandle(entity); - Entity hooked = null; - try { - hooked = (Entity) FISHING_HOOK_HOOKED.invoke(hook); - } catch (Throwable e) { - e.printStackTrace(); - } + Entity hooked = hook.getHookedIn(); if (hooked == null) return; NPC npc = npcRegistry.getNPC(hooked.getBukkitEntity()); - if (npc == null) - return; - if (npc.isProtected()) { - try { - FISHING_HOOK_HOOKED_SETTER.invoke(hook, null); - } catch (Throwable e) { - e.printStackTrace(); - } + if (npc != null && npc.isProtected()) { + hook.hookedIn = null; hook.setRemoved(RemovalReason.KILLED); } } @@ -1153,9 +1131,9 @@ public class NMSImpl implements NMSBridge { @Override public void setEndermanAngry(org.bukkit.entity.Enderman enderman, boolean angry) { - if (ENDERMAN_ANGRY == null) + if (ENDERMAN_CREEPY == null) return; - getHandle(enderman).getEntityData().set(ENDERMAN_ANGRY, angry); + getHandle(enderman).getEntityData().set(ENDERMAN_CREEPY, angry); } @Override @@ -1373,14 +1351,14 @@ public class NMSImpl implements NMSBridge { } return; } - if (NAVIGATION_S == null) + if (NAVIGATION_PATHFINDER == null) return; PathNavigation navigation = ((Mob) en).getNavigation(); AttributeInstance inst = en.getAttribute(Attributes.FOLLOW_RANGE); inst.setBaseValue(pathfindingRange); int mc = Mth.floor(en.getAttributeBaseValue(Attributes.FOLLOW_RANGE) * 16.0D); try { - NAVIGATION_S.invoke(navigation, NAVIGATION_A.invoke(navigation, mc)); + NAVIGATION_PATHFINDER.invoke(navigation, NAVIGATION_CREATE_PATHFINDER.invoke(navigation, mc)); } catch (Throwable e) { e.printStackTrace(); } @@ -1475,12 +1453,12 @@ public class NMSImpl implements NMSBridge { } public static void clearGoals(NPC npc, GoalSelector... goalSelectors) { - if (GOAL_SET_FIELD == null || goalSelectors == null) + if (goalSelectors == null) return; int i = 0; for (GoalSelector selector : goalSelectors) { try { - Collection list = (Collection) GOAL_SET_FIELD.invoke(selector); + Collection list = selector.getAvailableGoals(); if (!list.isEmpty()) { npc.data().set("selector" + i, Lists.newArrayList(list)); } @@ -1654,14 +1632,7 @@ public class NMSImpl implements NMSBridge { } public static EntityDataAccessor getRabbitTypeField() { - if (RABBIT_DATAWATCHER_FIELD == null) - return null; - try { - return (EntityDataAccessor) RABBIT_DATAWATCHER_FIELD.invoke(); - } catch (Throwable e) { - e.printStackTrace(); - } - return null; + return RABBIT_TYPE_DATAWATCHER; } public static EntityDimensions getSize(Entity entity) { @@ -1716,15 +1687,15 @@ public class NMSImpl implements NMSBridge { } public static void restoreGoals(NPC npc, GoalSelector... goalSelectors) { - if (GOAL_SET_FIELD == null || goalSelectors == null) + if (goalSelectors == null) return; int i = 0; for (GoalSelector selector : goalSelectors) { try { - Collection list = (Collection) GOAL_SET_FIELD.invoke(selector); + Collection list = selector.getAvailableGoals(); list.clear(); - Collection old = npc.data().get("selector" + i); + Collection old = npc.data().get("selector" + i); if (old != null) { list.addAll(old); } @@ -1789,16 +1760,6 @@ public class NMSImpl implements NMSBridge { } } - public static void setDespawnDelay(TraderLlama llama, int ticks) { - if (TRADER_DESPAWN_DELAY == null) - return; - try { - TRADER_DESPAWN_DELAY.invoke(llama, ticks); - } catch (Throwable e) { - e.printStackTrace(); - } - } - public static void setLife(FishingHook entity, int life) { try { FISHING_HOOK_LIFE.invoke(entity, life); @@ -1902,59 +1863,56 @@ public class NMSImpl implements NMSBridge { private static final Map, net.minecraft.world.entity.EntityType> CITIZENS_ENTITY_TYPES = Maps .newHashMap(); private static final MethodHandle CRAFT_BOSSBAR_HANDLE_FIELD = NMS.getSetter(CraftBossBar.class, "handle"); - private static MethodHandle CRAFTSOUND_GETSOUND = NMS.getMethodHandle(CraftSound.class, "getSound", false, - Sound.class); private static final float DEFAULT_SPEED = 1F; - private static EntityDataAccessor ENDERMAN_ANGRY = null; - private static final MethodHandle ENTITY_FISH_NUM_IN_SCHOOL = NMS.getSetter(AbstractSchoolingFish.class, "c", - false); + private static EntityDataAccessor ENDERMAN_CREEPY = null; + private static final MethodHandle ENTITY_FISH_NUM_IN_SCHOOL = NMS.getSetter(AbstractSchoolingFish.class, "c"); private static final MethodHandle ENTITY_GET_SOUND_FALL = NMS.getMethodHandle(LivingEntity.class, "getSoundFall", true, int.class); private static CustomEntityRegistry ENTITY_REGISTRY; private static MethodHandle ENTITY_REGISTRY_SETTER; - private static final MethodHandle FISHING_HOOK_HOOKED = NMS.getGetter(FishingHook.class, "av"); - private static final MethodHandle FISHING_HOOK_HOOKED_SETTER = NMS.getSetter(FishingHook.class, "av"); private static final MethodHandle FISHING_HOOK_LIFE = NMS.getSetter(FishingHook.class, "ap"); private static final Location FROM_LOCATION = new Location(null, 0, 0, 0); - private static final MethodHandle GOAL_SET_FIELD = NMS.getGetter(GoalSelector.class, "d"); private static final MethodHandle HEAD_HEIGHT = NMS.getSetter(Entity.class, "aX"); private static final MethodHandle HEAD_HEIGHT_METHOD = NMS.getFirstMethodHandle(Entity.class, true, Pose.class, EntityDimensions.class); private static final MethodHandle JUMP_FIELD = NMS.getGetter(LivingEntity.class, "bn"); private static final MethodHandle MAKE_REQUEST = NMS.getMethodHandle(YggdrasilAuthenticationService.class, "makeRequest", true, URL.class, Object.class, Class.class); - private static final MethodHandle NAVIGATION_A = NMS.getMethodHandle(PathNavigation.class, "a", true, int.class); - private static final MethodHandle NAVIGATION_S = NMS.getFinalSetter(PathNavigation.class, "t"); - private static final MethodHandle NAVIGATION_WORLD_FIELD = NMS.getSetter(PathNavigation.class, "b"); + private static final MethodHandle NAVIGATION_CREATE_PATHFINDER = NMS.getMethodHandle(PathNavigation.class, "a", + true, int.class); + private static final MethodHandle NAVIGATION_PATHFINDER = NMS.getFinalSetter(PathNavigation.class, "t"); + private static final MethodHandle NAVIGATION_WORLD_FIELD = NMS.getFirstSetter(PathNavigation.class, Level.class); public static final Location PACKET_CACHE_LOCATION = new Location(null, 0, 0, 0); private static final MethodHandle PLAYER_CHUNK_MAP_VIEW_DISTANCE_GETTER = NMS.getGetter(ChunkMap.class, "J"); private static final MethodHandle PLAYER_CHUNK_MAP_VIEW_DISTANCE_SETTER = NMS.getSetter(ChunkMap.class, "J"); private static final MethodHandle PUFFERFISH_C = NMS.getSetter(Pufferfish.class, "bS"); private static final MethodHandle PUFFERFISH_D = NMS.getSetter(Pufferfish.class, "bT"); - private static final MethodHandle RABBIT_DATAWATCHER_FIELD = NMS.getGetter(Rabbit.class, "ch"); + private static EntityDataAccessor RABBIT_TYPE_DATAWATCHER = null; private static final Random RANDOM = Util.getFastRandom(); - private static final MethodHandle SIZE_FIELD_GETTER = NMS.getGetter(Entity.class, "aW"); - private static final MethodHandle SIZE_FIELD_SETTER = NMS.getSetter(Entity.class, "aW"); + private static final MethodHandle SIZE_FIELD_GETTER = NMS.getFirstGetter(Entity.class, EntityDimensions.class); + private static final MethodHandle SIZE_FIELD_SETTER = NMS.getFirstSetter(Entity.class, EntityDimensions.class); private static Field SKULL_PROFILE_FIELD; - private static MethodHandle SOUNDEFFECT_LOCATION = NMS.getGetter(SoundEvent.class, "b"); private static MethodHandle TEAM_FIELD; - private static final MethodHandle TRADER_DESPAWN_DELAY = NMS.getSetter(TraderLlama.class, "ci"); - public static final MethodHandle UUID_FIELD = NMS.getSetter(net.minecraft.world.entity.Entity.class, "aj"); static { try { - ENTITY_REGISTRY = new CustomEntityRegistry((DefaultedRegistry>) NMS - .getGetter(Registry.class, "Y").invoke()); + ENTITY_REGISTRY = new CustomEntityRegistry(Registry.ENTITY_TYPE); ENTITY_REGISTRY_SETTER = NMS.getFinalSetter(Registry.class, "Y"); ENTITY_REGISTRY_SETTER.invoke(ENTITY_REGISTRY); } catch (Throwable e) { Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage()); } try { - ENDERMAN_ANGRY = (EntityDataAccessor) NMS.getField(EnderMan.class, "bU").get(null); + ENDERMAN_CREEPY = (EntityDataAccessor) NMS.getField(EnderMan.class, "bU").get(null); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } + try { + RABBIT_TYPE_DATAWATCHER = (EntityDataAccessor) NMS + .getFirstGetter(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/PlayerNavigation.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerNavigation.java index a3d184afa..2552d0115 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerNavigation.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerNavigation.java @@ -220,11 +220,7 @@ public class PlayerNavigation extends PathNavigation { @Override protected Path createPath(Set var0, int var1, boolean var2, int var3, float var4) { - if (var0.isEmpty()) - return null; - if (this.mob.getY() < this.level.getMinBuildHeight()) - return null; - if (!canUpdatePath()) + if (var0.isEmpty() || (this.mob.getY() < this.level.getMinBuildHeight()) || !canUpdatePath()) return null; if (this.path != null && !this.path.isDone() && var0.contains(this.targetPos)) return this.path; @@ -341,11 +337,7 @@ public class PlayerNavigation extends PathNavigation { } protected boolean hasValidPathType(BlockPathTypes var0) { - if (var0 == BlockPathTypes.WATER) - return false; - if (var0 == BlockPathTypes.LAVA) - return false; - if (var0 == BlockPathTypes.OPEN) + if ((var0 == BlockPathTypes.WATER) || (var0 == BlockPathTypes.LAVA) || (var0 == BlockPathTypes.OPEN)) return false; return true; } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerNodeEvaluator.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerNodeEvaluator.java index 4624e5dc5..68ca4598c 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerNodeEvaluator.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/util/PlayerNodeEvaluator.java @@ -371,8 +371,7 @@ public class PlayerNodeEvaluator extends PlayerNodeEvaluatorBase { } private boolean hasCollisions(AABB var0) { - return this.m.computeIfAbsent(var0, var1 -> Boolean.valueOf(!this.level.noCollision(this.mob, var0))) - .booleanValue(); + return this.m.computeIfAbsent(var0, var1 -> !this.level.noCollision(this.mob, var0)); } private boolean hasPositiveMalus(BlockPos var0) { @@ -385,9 +384,7 @@ public class PlayerNodeEvaluator extends PlayerNodeEvaluatorBase { } protected boolean isDiagonalValid(Node var0, Node var1, Node var2, Node var3) { - if (var3 == null || var2 == null || var1 == null) - return false; - if (var3.closed) + if (var3 == null || var2 == null || var1 == null || var3.closed) return false; if (var2.y > var0.y || var1.y > var0.y) return false;