From 74a861142b463464542f8387ddc800339f0194e0 Mon Sep 17 00:00:00 2001 From: fullwall Date: Sun, 12 Mar 2023 22:29:41 +0800 Subject: [PATCH] Add durations to settings, allow falling distance to be set for all mobs --- .../main/java/net/citizensnpcs/Citizens.java | 2 +- .../java/net/citizensnpcs/EventListen.java | 6 +- .../main/java/net/citizensnpcs/Settings.java | 57 +++++++---- .../citizensnpcs/commands/NPCCommands.java | 94 ++++++++++++------- .../commands/WaypointCommands.java | 4 - .../net/citizensnpcs/npc/CitizensNPC.java | 16 ++-- .../npc/ai/AStarNavigationStrategy.java | 6 +- .../npc/ai/CitizensNavigator.java | 7 +- .../npc/ai/FlyingAStarNavigationStrategy.java | 5 +- .../java/net/citizensnpcs/npc/skin/Skin.java | 2 +- .../net/citizensnpcs/trait/CommandTrait.java | 29 ++++-- .../net/citizensnpcs/trait/HologramTrait.java | 3 +- .../net/citizensnpcs/trait/LookClose.java | 2 +- .../net/citizensnpcs/trait/SkinTrait.java | 3 +- .../net/citizensnpcs/trait/text/Text.java | 4 +- .../trait/versioned/FoxTrait.java | 16 ++-- .../java/net/citizensnpcs/util/Messages.java | 7 ++ .../main/java/net/citizensnpcs/util/NMS.java | 9 +- .../main/java/net/citizensnpcs/util/Util.java | 28 +++++- .../src/main/resources/messages_en.properties | 7 ++ .../nms/v1_10_R1/entity/BatController.java | 5 + .../nms/v1_10_R1/entity/BlazeController.java | 5 + .../v1_10_R1/entity/CaveSpiderController.java | 5 + .../v1_10_R1/entity/ChickenController.java | 5 + .../nms/v1_10_R1/entity/CowController.java | 5 + .../v1_10_R1/entity/CreeperController.java | 6 ++ .../entity/EnderDragonController.java | 5 + .../v1_10_R1/entity/EndermanController.java | 5 + .../v1_10_R1/entity/EndermiteController.java | 5 + .../nms/v1_10_R1/entity/GhastController.java | 5 + .../nms/v1_10_R1/entity/GiantController.java | 5 + .../v1_10_R1/entity/GuardianController.java | 5 + .../nms/v1_10_R1/entity/HorseController.java | 5 + .../v1_10_R1/entity/IronGolemController.java | 5 + .../v1_10_R1/entity/MagmaCubeController.java | 5 + .../entity/MushroomCowController.java | 5 + .../nms/v1_10_R1/entity/OcelotController.java | 5 + .../nms/v1_10_R1/entity/PigController.java | 5 + .../v1_10_R1/entity/PigZombieController.java | 5 + .../v1_10_R1/entity/PolarBearController.java | 5 + .../nms/v1_10_R1/entity/RabbitController.java | 5 + .../nms/v1_10_R1/entity/SheepController.java | 5 + .../v1_10_R1/entity/ShulkerController.java | 5 + .../v1_10_R1/entity/SilverfishController.java | 5 + .../v1_10_R1/entity/SkeletonController.java | 5 + .../nms/v1_10_R1/entity/SlimeController.java | 5 + .../v1_10_R1/entity/SnowmanController.java | 5 + .../nms/v1_10_R1/entity/SpiderController.java | 5 + .../nms/v1_10_R1/entity/SquidController.java | 5 + .../v1_10_R1/entity/VillagerController.java | 6 ++ .../nms/v1_10_R1/entity/WitchController.java | 5 + .../nms/v1_10_R1/entity/WitherController.java | 5 + .../nms/v1_10_R1/entity/WolfController.java | 5 + .../nms/v1_10_R1/entity/ZombieController.java | 5 + .../nms/v1_10_R1/util/NMSImpl.java | 9 +- .../v1_10_R1/util/PlayerPathfinderNormal.java | 3 +- .../v1_10_R1/util/PlayerlistTrackerEntry.java | 6 +- .../nms/v1_11_R1/entity/BatController.java | 5 + .../nms/v1_11_R1/entity/BlazeController.java | 5 + .../v1_11_R1/entity/CaveSpiderController.java | 5 + .../v1_11_R1/entity/ChickenController.java | 5 + .../nms/v1_11_R1/entity/CowController.java | 5 + .../v1_11_R1/entity/CreeperController.java | 6 ++ .../entity/EnderDragonController.java | 5 + .../v1_11_R1/entity/EndermanController.java | 5 + .../v1_11_R1/entity/EndermiteController.java | 5 + .../nms/v1_11_R1/entity/EvokerController.java | 5 + .../nms/v1_11_R1/entity/GhastController.java | 5 + .../nms/v1_11_R1/entity/GiantController.java | 5 + .../v1_11_R1/entity/GuardianController.java | 5 + .../entity/GuardianElderController.java | 5 + .../nms/v1_11_R1/entity/HorseController.java | 5 + .../entity/HorseDonkeyController.java | 5 + .../v1_11_R1/entity/HorseMuleController.java | 5 + .../entity/HorseSkeletonController.java | 5 + .../entity/HorseZombieController.java | 5 + .../v1_11_R1/entity/IronGolemController.java | 5 + .../nms/v1_11_R1/entity/LlamaController.java | 5 + .../v1_11_R1/entity/MagmaCubeController.java | 5 + .../entity/MushroomCowController.java | 5 + .../nms/v1_11_R1/entity/OcelotController.java | 5 + .../nms/v1_11_R1/entity/PigController.java | 5 + .../v1_11_R1/entity/PigZombieController.java | 5 + .../v1_11_R1/entity/PolarBearController.java | 5 + .../nms/v1_11_R1/entity/RabbitController.java | 5 + .../nms/v1_11_R1/entity/SheepController.java | 5 + .../v1_11_R1/entity/ShulkerController.java | 5 + .../v1_11_R1/entity/SilverfishController.java | 5 + .../v1_11_R1/entity/SkeletonController.java | 5 + .../entity/SkeletonStrayController.java | 5 + .../entity/SkeletonWitherController.java | 5 + .../nms/v1_11_R1/entity/SlimeController.java | 5 + .../v1_11_R1/entity/SnowmanController.java | 5 + .../nms/v1_11_R1/entity/SpiderController.java | 5 + .../nms/v1_11_R1/entity/SquidController.java | 5 + .../nms/v1_11_R1/entity/VexController.java | 5 + .../v1_11_R1/entity/VillagerController.java | 6 ++ .../v1_11_R1/entity/VindicatorController.java | 5 + .../nms/v1_11_R1/entity/WitchController.java | 5 + .../nms/v1_11_R1/entity/WitherController.java | 5 + .../nms/v1_11_R1/entity/WolfController.java | 5 + .../nms/v1_11_R1/entity/ZombieController.java | 5 + .../v1_11_R1/entity/ZombieHuskController.java | 5 + .../entity/ZombieVillagerController.java | 5 + .../nms/v1_11_R1/util/NMSImpl.java | 36 +++---- .../v1_11_R1/util/PlayerPathfinderNormal.java | 3 +- .../v1_11_R1/util/PlayerlistTrackerEntry.java | 6 +- .../nms/v1_12_R1/entity/BatController.java | 5 + .../nms/v1_12_R1/entity/BlazeController.java | 5 + .../v1_12_R1/entity/CaveSpiderController.java | 5 + .../v1_12_R1/entity/ChickenController.java | 5 + .../nms/v1_12_R1/entity/CowController.java | 5 + .../v1_12_R1/entity/CreeperController.java | 6 ++ .../entity/EnderDragonController.java | 5 + .../v1_12_R1/entity/EndermanController.java | 5 + .../v1_12_R1/entity/EndermiteController.java | 5 + .../nms/v1_12_R1/entity/EvokerController.java | 5 + .../nms/v1_12_R1/entity/GhastController.java | 5 + .../nms/v1_12_R1/entity/GiantController.java | 5 + .../v1_12_R1/entity/GuardianController.java | 5 + .../entity/GuardianElderController.java | 5 + .../nms/v1_12_R1/entity/HorseController.java | 6 ++ .../entity/HorseDonkeyController.java | 6 ++ .../v1_12_R1/entity/HorseMuleController.java | 6 ++ .../entity/HorseSkeletonController.java | 6 ++ .../entity/HorseZombieController.java | 6 ++ .../v1_12_R1/entity/IllusionerController.java | 5 + .../v1_12_R1/entity/IronGolemController.java | 5 + .../nms/v1_12_R1/entity/LlamaController.java | 5 + .../v1_12_R1/entity/MagmaCubeController.java | 5 + .../entity/MushroomCowController.java | 5 + .../nms/v1_12_R1/entity/OcelotController.java | 5 + .../nms/v1_12_R1/entity/ParrotController.java | 5 + .../nms/v1_12_R1/entity/PigController.java | 5 + .../v1_12_R1/entity/PigZombieController.java | 5 + .../v1_12_R1/entity/PolarBearController.java | 5 + .../nms/v1_12_R1/entity/RabbitController.java | 5 + .../nms/v1_12_R1/entity/SheepController.java | 5 + .../v1_12_R1/entity/ShulkerController.java | 5 + .../v1_12_R1/entity/SilverfishController.java | 5 + .../v1_12_R1/entity/SkeletonController.java | 5 + .../entity/SkeletonStrayController.java | 5 + .../entity/SkeletonWitherController.java | 5 + .../nms/v1_12_R1/entity/SlimeController.java | 5 + .../v1_12_R1/entity/SnowmanController.java | 5 + .../nms/v1_12_R1/entity/SpiderController.java | 5 + .../nms/v1_12_R1/entity/SquidController.java | 5 + .../nms/v1_12_R1/entity/VexController.java | 5 + .../v1_12_R1/entity/VillagerController.java | 6 ++ .../v1_12_R1/entity/VindicatorController.java | 5 + .../nms/v1_12_R1/entity/WitchController.java | 5 + .../nms/v1_12_R1/entity/WitherController.java | 5 + .../nms/v1_12_R1/entity/WolfController.java | 5 + .../nms/v1_12_R1/entity/ZombieController.java | 5 + .../v1_12_R1/entity/ZombieHuskController.java | 5 + .../entity/ZombieVillagerController.java | 5 + .../nms/v1_12_R1/util/NMSImpl.java | 39 ++++---- .../v1_12_R1/util/PlayerPathfinderNormal.java | 3 +- .../v1_12_R1/util/PlayerlistTrackerEntry.java | 12 +-- .../nms/v1_13_R2/entity/BatController.java | 5 + .../nms/v1_13_R2/entity/BlazeController.java | 5 + .../v1_13_R2/entity/CaveSpiderController.java | 5 + .../v1_13_R2/entity/ChickenController.java | 5 + .../nms/v1_13_R2/entity/CodController.java | 5 + .../nms/v1_13_R2/entity/CowController.java | 5 + .../v1_13_R2/entity/CreeperController.java | 6 ++ .../v1_13_R2/entity/DolphinController.java | 6 ++ .../v1_13_R2/entity/DrownedController.java | 5 + .../entity/EnderDragonController.java | 5 + .../v1_13_R2/entity/EndermanController.java | 5 + .../v1_13_R2/entity/EndermiteController.java | 5 + .../nms/v1_13_R2/entity/EvokerController.java | 5 + .../nms/v1_13_R2/entity/GhastController.java | 5 + .../nms/v1_13_R2/entity/GiantController.java | 5 + .../v1_13_R2/entity/GuardianController.java | 5 + .../entity/GuardianElderController.java | 5 + .../nms/v1_13_R2/entity/HorseController.java | 6 ++ .../entity/HorseDonkeyController.java | 6 ++ .../v1_13_R2/entity/HorseMuleController.java | 6 ++ .../entity/HorseSkeletonController.java | 6 ++ .../entity/HorseZombieController.java | 6 ++ .../v1_13_R2/entity/IllusionerController.java | 5 + .../v1_13_R2/entity/IronGolemController.java | 5 + .../nms/v1_13_R2/entity/LlamaController.java | 5 + .../v1_13_R2/entity/MagmaCubeController.java | 5 + .../entity/MushroomCowController.java | 5 + .../nms/v1_13_R2/entity/OcelotController.java | 5 + .../nms/v1_13_R2/entity/ParrotController.java | 5 + .../v1_13_R2/entity/PhantomController.java | 5 + .../nms/v1_13_R2/entity/PigController.java | 5 + .../v1_13_R2/entity/PigZombieController.java | 5 + .../v1_13_R2/entity/PolarBearController.java | 5 + .../v1_13_R2/entity/PufferFishController.java | 5 + .../nms/v1_13_R2/entity/RabbitController.java | 5 + .../nms/v1_13_R2/entity/SalmonController.java | 5 + .../nms/v1_13_R2/entity/SheepController.java | 5 + .../v1_13_R2/entity/ShulkerController.java | 5 + .../v1_13_R2/entity/SilverfishController.java | 5 + .../v1_13_R2/entity/SkeletonController.java | 5 + .../entity/SkeletonStrayController.java | 5 + .../entity/SkeletonWitherController.java | 5 + .../nms/v1_13_R2/entity/SlimeController.java | 5 + .../v1_13_R2/entity/SnowmanController.java | 5 + .../nms/v1_13_R2/entity/SpiderController.java | 5 + .../nms/v1_13_R2/entity/SquidController.java | 5 + .../entity/TropicalFishController.java | 5 + .../nms/v1_13_R2/entity/TurtleController.java | 5 + .../nms/v1_13_R2/entity/VexController.java | 5 + .../v1_13_R2/entity/VillagerController.java | 6 ++ .../v1_13_R2/entity/VindicatorController.java | 5 + .../nms/v1_13_R2/entity/WitchController.java | 5 + .../nms/v1_13_R2/entity/WitherController.java | 5 + .../nms/v1_13_R2/entity/WolfController.java | 5 + .../nms/v1_13_R2/entity/ZombieController.java | 5 + .../v1_13_R2/entity/ZombieHuskController.java | 5 + .../entity/ZombieVillagerController.java | 5 + .../nms/v1_13_R2/util/NMSImpl.java | 40 ++++---- .../v1_13_R2/util/PlayerPathfinderNormal.java | 3 +- .../v1_13_R2/util/PlayerlistTrackerEntry.java | 7 +- .../nms/v1_14_R1/entity/BatController.java | 5 + .../nms/v1_14_R1/entity/BlazeController.java | 5 + .../nms/v1_14_R1/entity/CatController.java | 5 + .../v1_14_R1/entity/CaveSpiderController.java | 5 + .../v1_14_R1/entity/ChickenController.java | 5 + .../nms/v1_14_R1/entity/CodController.java | 5 + .../nms/v1_14_R1/entity/CowController.java | 5 + .../v1_14_R1/entity/CreeperController.java | 6 ++ .../v1_14_R1/entity/DolphinController.java | 6 ++ .../v1_14_R1/entity/DrownedController.java | 5 + .../entity/EnderDragonController.java | 5 + .../v1_14_R1/entity/EndermanController.java | 5 + .../v1_14_R1/entity/EndermiteController.java | 5 + .../nms/v1_14_R1/entity/EvokerController.java | 5 + .../nms/v1_14_R1/entity/FoxController.java | 5 + .../nms/v1_14_R1/entity/GhastController.java | 5 + .../nms/v1_14_R1/entity/GiantController.java | 5 + .../v1_14_R1/entity/GuardianController.java | 5 + .../entity/GuardianElderController.java | 5 + .../nms/v1_14_R1/entity/HorseController.java | 6 ++ .../entity/HorseDonkeyController.java | 6 ++ .../v1_14_R1/entity/HorseMuleController.java | 6 ++ .../entity/HorseSkeletonController.java | 6 ++ .../entity/HorseZombieController.java | 6 ++ .../v1_14_R1/entity/IllusionerController.java | 5 + .../v1_14_R1/entity/IronGolemController.java | 5 + .../nms/v1_14_R1/entity/LlamaController.java | 5 + .../v1_14_R1/entity/MagmaCubeController.java | 5 + .../entity/MushroomCowController.java | 5 + .../nms/v1_14_R1/entity/OcelotController.java | 5 + .../nms/v1_14_R1/entity/PandaController.java | 5 + .../nms/v1_14_R1/entity/ParrotController.java | 5 + .../v1_14_R1/entity/PhantomController.java | 5 + .../nms/v1_14_R1/entity/PigController.java | 5 + .../v1_14_R1/entity/PigZombieController.java | 5 + .../v1_14_R1/entity/PillagerController.java | 5 + .../v1_14_R1/entity/PolarBearController.java | 5 + .../v1_14_R1/entity/PufferFishController.java | 5 + .../nms/v1_14_R1/entity/RabbitController.java | 5 + .../v1_14_R1/entity/RavagerController.java | 5 + .../nms/v1_14_R1/entity/SalmonController.java | 5 + .../nms/v1_14_R1/entity/SheepController.java | 5 + .../v1_14_R1/entity/ShulkerController.java | 5 + .../v1_14_R1/entity/SilverfishController.java | 5 + .../v1_14_R1/entity/SkeletonController.java | 5 + .../entity/SkeletonStrayController.java | 5 + .../entity/SkeletonWitherController.java | 5 + .../nms/v1_14_R1/entity/SlimeController.java | 5 + .../v1_14_R1/entity/SnowmanController.java | 5 + .../nms/v1_14_R1/entity/SpiderController.java | 5 + .../nms/v1_14_R1/entity/SquidController.java | 5 + .../entity/TraderLlamaController.java | 5 + .../entity/TropicalFishController.java | 5 + .../nms/v1_14_R1/entity/TurtleController.java | 5 + .../nms/v1_14_R1/entity/VexController.java | 5 + .../v1_14_R1/entity/VillagerController.java | 6 ++ .../v1_14_R1/entity/VindicatorController.java | 5 + .../entity/WanderingTraderController.java | 6 ++ .../nms/v1_14_R1/entity/WitchController.java | 5 + .../nms/v1_14_R1/entity/WitherController.java | 5 + .../nms/v1_14_R1/entity/WolfController.java | 5 + .../nms/v1_14_R1/entity/ZombieController.java | 5 + .../v1_14_R1/entity/ZombieHuskController.java | 5 + .../entity/ZombieVillagerController.java | 5 + .../nms/v1_14_R1/util/NMSImpl.java | 40 ++++---- .../v1_14_R1/util/PlayerPathfinderNormal.java | 3 +- .../nms/v1_14_R1/util/PlayerlistTracker.java | 2 +- .../nms/v1_15_R1/entity/BatController.java | 5 + .../nms/v1_15_R1/entity/BeeController.java | 5 + .../nms/v1_15_R1/entity/BlazeController.java | 5 + .../nms/v1_15_R1/entity/CatController.java | 5 + .../v1_15_R1/entity/CaveSpiderController.java | 5 + .../v1_15_R1/entity/ChickenController.java | 5 + .../nms/v1_15_R1/entity/CodController.java | 6 ++ .../nms/v1_15_R1/entity/CowController.java | 5 + .../v1_15_R1/entity/CreeperController.java | 6 ++ .../v1_15_R1/entity/DolphinController.java | 6 ++ .../v1_15_R1/entity/DrownedController.java | 5 + .../entity/EnderDragonController.java | 5 + .../v1_15_R1/entity/EndermanController.java | 5 + .../v1_15_R1/entity/EndermiteController.java | 5 + .../nms/v1_15_R1/entity/EvokerController.java | 5 + .../nms/v1_15_R1/entity/FoxController.java | 5 + .../nms/v1_15_R1/entity/GhastController.java | 5 + .../nms/v1_15_R1/entity/GiantController.java | 5 + .../v1_15_R1/entity/GuardianController.java | 5 + .../entity/GuardianElderController.java | 5 + .../nms/v1_15_R1/entity/HorseController.java | 6 ++ .../entity/HorseDonkeyController.java | 6 ++ .../v1_15_R1/entity/HorseMuleController.java | 6 ++ .../entity/HorseSkeletonController.java | 6 ++ .../entity/HorseZombieController.java | 6 ++ .../v1_15_R1/entity/IllusionerController.java | 5 + .../v1_15_R1/entity/IronGolemController.java | 5 + .../nms/v1_15_R1/entity/LlamaController.java | 5 + .../v1_15_R1/entity/MagmaCubeController.java | 6 ++ .../entity/MushroomCowController.java | 5 + .../nms/v1_15_R1/entity/OcelotController.java | 5 + .../nms/v1_15_R1/entity/PandaController.java | 5 + .../nms/v1_15_R1/entity/ParrotController.java | 5 + .../v1_15_R1/entity/PhantomController.java | 6 ++ .../nms/v1_15_R1/entity/PigController.java | 5 + .../v1_15_R1/entity/PigZombieController.java | 5 + .../v1_15_R1/entity/PillagerController.java | 5 + .../v1_15_R1/entity/PolarBearController.java | 5 + .../v1_15_R1/entity/PufferFishController.java | 6 ++ .../nms/v1_15_R1/entity/RabbitController.java | 5 + .../v1_15_R1/entity/RavagerController.java | 5 + .../nms/v1_15_R1/entity/SalmonController.java | 6 ++ .../nms/v1_15_R1/entity/SheepController.java | 5 + .../v1_15_R1/entity/ShulkerController.java | 5 + .../v1_15_R1/entity/SilverfishController.java | 5 + .../v1_15_R1/entity/SkeletonController.java | 5 + .../entity/SkeletonStrayController.java | 5 + .../entity/SkeletonWitherController.java | 5 + .../nms/v1_15_R1/entity/SlimeController.java | 6 ++ .../v1_15_R1/entity/SnowmanController.java | 5 + .../nms/v1_15_R1/entity/SpiderController.java | 5 + .../nms/v1_15_R1/entity/SquidController.java | 5 + .../entity/TraderLlamaController.java | 5 + .../entity/TropicalFishController.java | 6 ++ .../nms/v1_15_R1/entity/TurtleController.java | 6 ++ .../nms/v1_15_R1/entity/VexController.java | 5 + .../v1_15_R1/entity/VillagerController.java | 6 ++ .../v1_15_R1/entity/VindicatorController.java | 5 + .../entity/WanderingTraderController.java | 6 ++ .../nms/v1_15_R1/entity/WitchController.java | 5 + .../nms/v1_15_R1/entity/WitherController.java | 5 + .../nms/v1_15_R1/entity/WolfController.java | 5 + .../nms/v1_15_R1/entity/ZombieController.java | 5 + .../v1_15_R1/entity/ZombieHuskController.java | 5 + .../entity/ZombieVillagerController.java | 5 + .../nms/v1_15_R1/util/NMSImpl.java | 41 ++++---- .../v1_15_R1/util/PlayerPathfinderNormal.java | 3 +- .../nms/v1_15_R1/util/PlayerlistTracker.java | 2 +- .../nms/v1_16_R3/entity/BatController.java | 5 + .../nms/v1_16_R3/entity/BeeController.java | 5 + .../nms/v1_16_R3/entity/BlazeController.java | 5 + .../nms/v1_16_R3/entity/CatController.java | 5 + .../v1_16_R3/entity/CaveSpiderController.java | 5 + .../v1_16_R3/entity/ChickenController.java | 5 + .../nms/v1_16_R3/entity/CodController.java | 6 ++ .../nms/v1_16_R3/entity/CowController.java | 5 + .../v1_16_R3/entity/CreeperController.java | 6 ++ .../v1_16_R3/entity/DolphinController.java | 6 ++ .../v1_16_R3/entity/DrownedController.java | 5 + .../entity/EnderDragonController.java | 5 + .../v1_16_R3/entity/EndermanController.java | 5 + .../v1_16_R3/entity/EndermiteController.java | 5 + .../nms/v1_16_R3/entity/EvokerController.java | 5 + .../nms/v1_16_R3/entity/FoxController.java | 5 + .../nms/v1_16_R3/entity/GhastController.java | 5 + .../nms/v1_16_R3/entity/GiantController.java | 5 + .../v1_16_R3/entity/GuardianController.java | 5 + .../entity/GuardianElderController.java | 5 + .../nms/v1_16_R3/entity/HoglinController.java | 5 + .../nms/v1_16_R3/entity/HorseController.java | 6 ++ .../entity/HorseDonkeyController.java | 6 ++ .../v1_16_R3/entity/HorseMuleController.java | 6 ++ .../entity/HorseSkeletonController.java | 6 ++ .../entity/HorseZombieController.java | 6 ++ .../v1_16_R3/entity/IllusionerController.java | 5 + .../v1_16_R3/entity/IronGolemController.java | 5 + .../nms/v1_16_R3/entity/LlamaController.java | 5 + .../v1_16_R3/entity/MagmaCubeController.java | 6 ++ .../entity/MushroomCowController.java | 5 + .../nms/v1_16_R3/entity/OcelotController.java | 5 + .../nms/v1_16_R3/entity/PandaController.java | 5 + .../nms/v1_16_R3/entity/ParrotController.java | 5 + .../v1_16_R3/entity/PhantomController.java | 6 ++ .../nms/v1_16_R3/entity/PigController.java | 5 + .../v1_16_R3/entity/PigZombieController.java | 5 + .../entity/PiglinBruteController.java | 5 + .../nms/v1_16_R3/entity/PiglinController.java | 5 + .../v1_16_R3/entity/PillagerController.java | 5 + .../v1_16_R3/entity/PolarBearController.java | 5 + .../v1_16_R3/entity/PufferFishController.java | 6 ++ .../nms/v1_16_R3/entity/RabbitController.java | 5 + .../v1_16_R3/entity/RavagerController.java | 5 + .../nms/v1_16_R3/entity/SalmonController.java | 6 ++ .../nms/v1_16_R3/entity/SheepController.java | 5 + .../v1_16_R3/entity/ShulkerController.java | 5 + .../v1_16_R3/entity/SilverfishController.java | 5 + .../v1_16_R3/entity/SkeletonController.java | 5 + .../entity/SkeletonStrayController.java | 5 + .../entity/SkeletonWitherController.java | 5 + .../nms/v1_16_R3/entity/SlimeController.java | 6 ++ .../v1_16_R3/entity/SnowmanController.java | 5 + .../nms/v1_16_R3/entity/SpiderController.java | 5 + .../nms/v1_16_R3/entity/SquidController.java | 5 + .../v1_16_R3/entity/StriderController.java | 5 + .../entity/TraderLlamaController.java | 5 + .../entity/TropicalFishController.java | 6 ++ .../nms/v1_16_R3/entity/TurtleController.java | 6 ++ .../nms/v1_16_R3/entity/VexController.java | 5 + .../v1_16_R3/entity/VillagerController.java | 6 ++ .../v1_16_R3/entity/VindicatorController.java | 5 + .../entity/WanderingTraderController.java | 6 ++ .../nms/v1_16_R3/entity/WitchController.java | 5 + .../nms/v1_16_R3/entity/WitherController.java | 5 + .../nms/v1_16_R3/entity/WolfController.java | 5 + .../nms/v1_16_R3/entity/ZoglinController.java | 5 + .../nms/v1_16_R3/entity/ZombieController.java | 5 + .../v1_16_R3/entity/ZombieHuskController.java | 5 + .../entity/ZombieVillagerController.java | 5 + .../nms/v1_16_R3/util/NMSImpl.java | 41 ++++---- .../v1_16_R3/util/PlayerPathfinderNormal.java | 3 +- .../nms/v1_16_R3/util/PlayerlistTracker.java | 7 +- .../v1_17_R1/entity/AxolotlController.java | 6 ++ .../nms/v1_17_R1/entity/BatController.java | 5 + .../nms/v1_17_R1/entity/BeeController.java | 5 + .../nms/v1_17_R1/entity/BlazeController.java | 5 + .../nms/v1_17_R1/entity/CatController.java | 5 + .../v1_17_R1/entity/CaveSpiderController.java | 5 + .../v1_17_R1/entity/ChickenController.java | 5 + .../nms/v1_17_R1/entity/CodController.java | 6 ++ .../nms/v1_17_R1/entity/CowController.java | 5 + .../v1_17_R1/entity/CreeperController.java | 6 ++ .../v1_17_R1/entity/DolphinController.java | 6 ++ .../v1_17_R1/entity/DrownedController.java | 5 + .../entity/EnderDragonController.java | 5 + .../v1_17_R1/entity/EndermanController.java | 5 + .../v1_17_R1/entity/EndermiteController.java | 5 + .../nms/v1_17_R1/entity/EvokerController.java | 5 + .../nms/v1_17_R1/entity/FoxController.java | 5 + .../nms/v1_17_R1/entity/GhastController.java | 5 + .../nms/v1_17_R1/entity/GiantController.java | 5 + .../v1_17_R1/entity/GlowSquidController.java | 5 + .../nms/v1_17_R1/entity/GoatController.java | 5 + .../v1_17_R1/entity/GuardianController.java | 5 + .../entity/GuardianElderController.java | 5 + .../nms/v1_17_R1/entity/HoglinController.java | 5 + .../nms/v1_17_R1/entity/HorseController.java | 6 ++ .../entity/HorseDonkeyController.java | 6 ++ .../v1_17_R1/entity/HorseMuleController.java | 6 ++ .../entity/HorseSkeletonController.java | 6 ++ .../entity/HorseZombieController.java | 6 ++ .../v1_17_R1/entity/IllusionerController.java | 5 + .../v1_17_R1/entity/IronGolemController.java | 5 + .../nms/v1_17_R1/entity/LlamaController.java | 5 + .../v1_17_R1/entity/MagmaCubeController.java | 6 ++ .../entity/MushroomCowController.java | 5 + .../nms/v1_17_R1/entity/OcelotController.java | 5 + .../nms/v1_17_R1/entity/PandaController.java | 5 + .../nms/v1_17_R1/entity/ParrotController.java | 5 + .../v1_17_R1/entity/PhantomController.java | 6 ++ .../nms/v1_17_R1/entity/PigController.java | 5 + .../v1_17_R1/entity/PigZombieController.java | 5 + .../entity/PiglinBruteController.java | 5 + .../nms/v1_17_R1/entity/PiglinController.java | 5 + .../v1_17_R1/entity/PillagerController.java | 5 + .../v1_17_R1/entity/PolarBearController.java | 5 + .../v1_17_R1/entity/PufferFishController.java | 6 ++ .../nms/v1_17_R1/entity/RabbitController.java | 5 + .../v1_17_R1/entity/RavagerController.java | 5 + .../nms/v1_17_R1/entity/SalmonController.java | 6 ++ .../nms/v1_17_R1/entity/SheepController.java | 5 + .../v1_17_R1/entity/ShulkerController.java | 5 + .../v1_17_R1/entity/SilverfishController.java | 5 + .../v1_17_R1/entity/SkeletonController.java | 5 + .../entity/SkeletonStrayController.java | 5 + .../entity/SkeletonWitherController.java | 5 + .../nms/v1_17_R1/entity/SlimeController.java | 6 ++ .../v1_17_R1/entity/SnowmanController.java | 5 + .../nms/v1_17_R1/entity/SpiderController.java | 5 + .../nms/v1_17_R1/entity/SquidController.java | 5 + .../v1_17_R1/entity/StriderController.java | 5 + .../entity/TraderLlamaController.java | 5 + .../entity/TropicalFishController.java | 6 ++ .../nms/v1_17_R1/entity/TurtleController.java | 6 ++ .../nms/v1_17_R1/entity/VexController.java | 5 + .../v1_17_R1/entity/VillagerController.java | 6 ++ .../v1_17_R1/entity/VindicatorController.java | 5 + .../entity/WanderingTraderController.java | 6 ++ .../nms/v1_17_R1/entity/WitchController.java | 5 + .../nms/v1_17_R1/entity/WitherController.java | 5 + .../nms/v1_17_R1/entity/WolfController.java | 5 + .../nms/v1_17_R1/entity/ZoglinController.java | 5 + .../nms/v1_17_R1/entity/ZombieController.java | 5 + .../v1_17_R1/entity/ZombieHuskController.java | 5 + .../entity/ZombieVillagerController.java | 5 + .../nms/v1_17_R1/util/NMSImpl.java | 46 ++++----- .../v1_17_R1/util/PlayerNodeEvaluator.java | 4 +- .../nms/v1_17_R1/util/PlayerlistTracker.java | 7 +- .../v1_18_R2/entity/AxolotlController.java | 6 ++ .../nms/v1_18_R2/entity/BatController.java | 5 + .../nms/v1_18_R2/entity/BeeController.java | 5 + .../nms/v1_18_R2/entity/BlazeController.java | 5 + .../nms/v1_18_R2/entity/CatController.java | 5 + .../v1_18_R2/entity/CaveSpiderController.java | 5 + .../v1_18_R2/entity/ChickenController.java | 5 + .../nms/v1_18_R2/entity/CodController.java | 6 ++ .../nms/v1_18_R2/entity/CowController.java | 5 + .../v1_18_R2/entity/CreeperController.java | 6 ++ .../v1_18_R2/entity/DolphinController.java | 6 ++ .../v1_18_R2/entity/DrownedController.java | 5 + .../entity/EnderDragonController.java | 5 + .../v1_18_R2/entity/EndermanController.java | 5 + .../v1_18_R2/entity/EndermiteController.java | 5 + .../nms/v1_18_R2/entity/EvokerController.java | 5 + .../nms/v1_18_R2/entity/FoxController.java | 5 + .../nms/v1_18_R2/entity/GhastController.java | 5 + .../nms/v1_18_R2/entity/GiantController.java | 5 + .../v1_18_R2/entity/GlowSquidController.java | 5 + .../nms/v1_18_R2/entity/GoatController.java | 5 + .../v1_18_R2/entity/GuardianController.java | 5 + .../entity/GuardianElderController.java | 5 + .../nms/v1_18_R2/entity/HoglinController.java | 5 + .../nms/v1_18_R2/entity/HorseController.java | 6 ++ .../entity/HorseDonkeyController.java | 6 ++ .../v1_18_R2/entity/HorseMuleController.java | 6 ++ .../entity/HorseSkeletonController.java | 6 ++ .../entity/HorseZombieController.java | 6 ++ .../v1_18_R2/entity/IllusionerController.java | 5 + .../v1_18_R2/entity/IronGolemController.java | 5 + .../nms/v1_18_R2/entity/LlamaController.java | 5 + .../v1_18_R2/entity/MagmaCubeController.java | 6 ++ .../entity/MushroomCowController.java | 5 + .../nms/v1_18_R2/entity/OcelotController.java | 5 + .../nms/v1_18_R2/entity/PandaController.java | 5 + .../nms/v1_18_R2/entity/ParrotController.java | 5 + .../v1_18_R2/entity/PhantomController.java | 6 ++ .../nms/v1_18_R2/entity/PigController.java | 5 + .../v1_18_R2/entity/PigZombieController.java | 5 + .../entity/PiglinBruteController.java | 5 + .../nms/v1_18_R2/entity/PiglinController.java | 5 + .../v1_18_R2/entity/PillagerController.java | 5 + .../v1_18_R2/entity/PolarBearController.java | 5 + .../v1_18_R2/entity/PufferFishController.java | 6 ++ .../nms/v1_18_R2/entity/RabbitController.java | 5 + .../v1_18_R2/entity/RavagerController.java | 5 + .../nms/v1_18_R2/entity/SalmonController.java | 6 ++ .../nms/v1_18_R2/entity/SheepController.java | 5 + .../v1_18_R2/entity/ShulkerController.java | 5 + .../v1_18_R2/entity/SilverfishController.java | 5 + .../v1_18_R2/entity/SkeletonController.java | 5 + .../entity/SkeletonStrayController.java | 5 + .../entity/SkeletonWitherController.java | 5 + .../nms/v1_18_R2/entity/SlimeController.java | 6 ++ .../v1_18_R2/entity/SnowmanController.java | 5 + .../nms/v1_18_R2/entity/SpiderController.java | 5 + .../nms/v1_18_R2/entity/SquidController.java | 5 + .../v1_18_R2/entity/StriderController.java | 5 + .../entity/TraderLlamaController.java | 5 + .../entity/TropicalFishController.java | 6 ++ .../nms/v1_18_R2/entity/TurtleController.java | 6 ++ .../nms/v1_18_R2/entity/VexController.java | 5 + .../v1_18_R2/entity/VillagerController.java | 6 ++ .../v1_18_R2/entity/VindicatorController.java | 5 + .../entity/WanderingTraderController.java | 6 ++ .../nms/v1_18_R2/entity/WitchController.java | 5 + .../nms/v1_18_R2/entity/WitherController.java | 5 + .../nms/v1_18_R2/entity/WolfController.java | 5 + .../nms/v1_18_R2/entity/ZoglinController.java | 5 + .../nms/v1_18_R2/entity/ZombieController.java | 5 + .../v1_18_R2/entity/ZombieHuskController.java | 5 + .../entity/ZombieVillagerController.java | 5 + .../nms/v1_18_R2/util/NMSImpl.java | 39 ++++---- .../nms/v1_18_R2/util/PlayerNavigation.java | 2 +- .../v1_18_R2/util/PlayerNodeEvaluator.java | 4 +- .../nms/v1_18_R2/util/PlayerlistTracker.java | 7 +- .../nms/v1_19_R2/entity/AllayController.java | 6 ++ .../v1_19_R2/entity/AxolotlController.java | 6 ++ .../nms/v1_19_R2/entity/BatController.java | 5 + .../nms/v1_19_R2/entity/BeeController.java | 5 + .../nms/v1_19_R2/entity/BlazeController.java | 5 + .../nms/v1_19_R2/entity/CamelController.java | 5 + .../nms/v1_19_R2/entity/CatController.java | 5 + .../v1_19_R2/entity/CaveSpiderController.java | 5 + .../v1_19_R2/entity/ChickenController.java | 5 + .../nms/v1_19_R2/entity/CodController.java | 6 ++ .../nms/v1_19_R2/entity/CowController.java | 5 + .../v1_19_R2/entity/CreeperController.java | 6 ++ .../v1_19_R2/entity/DolphinController.java | 6 ++ .../v1_19_R2/entity/DrownedController.java | 5 + .../entity/EnderDragonController.java | 5 + .../v1_19_R2/entity/EndermanController.java | 5 + .../v1_19_R2/entity/EndermiteController.java | 5 + .../nms/v1_19_R2/entity/EvokerController.java | 5 + .../nms/v1_19_R2/entity/FoxController.java | 5 + .../nms/v1_19_R2/entity/FrogController.java | 5 + .../nms/v1_19_R2/entity/GhastController.java | 5 + .../nms/v1_19_R2/entity/GiantController.java | 5 + .../v1_19_R2/entity/GlowSquidController.java | 5 + .../nms/v1_19_R2/entity/GoatController.java | 5 + .../v1_19_R2/entity/GuardianController.java | 5 + .../entity/GuardianElderController.java | 5 + .../nms/v1_19_R2/entity/HoglinController.java | 5 + .../nms/v1_19_R2/entity/HorseController.java | 6 ++ .../entity/HorseDonkeyController.java | 6 ++ .../v1_19_R2/entity/HorseMuleController.java | 6 ++ .../entity/HorseSkeletonController.java | 6 ++ .../entity/HorseZombieController.java | 6 ++ .../v1_19_R2/entity/IllusionerController.java | 5 + .../v1_19_R2/entity/IronGolemController.java | 5 + .../nms/v1_19_R2/entity/LlamaController.java | 5 + .../v1_19_R2/entity/MagmaCubeController.java | 6 ++ .../entity/MushroomCowController.java | 5 + .../nms/v1_19_R2/entity/OcelotController.java | 5 + .../nms/v1_19_R2/entity/PandaController.java | 5 + .../nms/v1_19_R2/entity/ParrotController.java | 5 + .../v1_19_R2/entity/PhantomController.java | 6 ++ .../nms/v1_19_R2/entity/PigController.java | 5 + .../v1_19_R2/entity/PigZombieController.java | 5 + .../entity/PiglinBruteController.java | 5 + .../nms/v1_19_R2/entity/PiglinController.java | 5 + .../v1_19_R2/entity/PillagerController.java | 5 + .../v1_19_R2/entity/PolarBearController.java | 5 + .../v1_19_R2/entity/PufferFishController.java | 6 ++ .../nms/v1_19_R2/entity/RabbitController.java | 5 + .../v1_19_R2/entity/RavagerController.java | 5 + .../nms/v1_19_R2/entity/SalmonController.java | 6 ++ .../nms/v1_19_R2/entity/SheepController.java | 5 + .../v1_19_R2/entity/ShulkerController.java | 5 + .../v1_19_R2/entity/SilverfishController.java | 5 + .../v1_19_R2/entity/SkeletonController.java | 5 + .../entity/SkeletonStrayController.java | 5 + .../entity/SkeletonWitherController.java | 5 + .../nms/v1_19_R2/entity/SlimeController.java | 6 ++ .../v1_19_R2/entity/SnowmanController.java | 5 + .../nms/v1_19_R2/entity/SpiderController.java | 5 + .../nms/v1_19_R2/entity/SquidController.java | 5 + .../v1_19_R2/entity/StriderController.java | 5 + .../v1_19_R2/entity/TadpoleController.java | 6 ++ .../entity/TraderLlamaController.java | 5 + .../entity/TropicalFishController.java | 6 ++ .../nms/v1_19_R2/entity/TurtleController.java | 6 ++ .../nms/v1_19_R2/entity/VexController.java | 5 + .../v1_19_R2/entity/VillagerController.java | 6 ++ .../v1_19_R2/entity/VindicatorController.java | 5 + .../entity/WanderingTraderController.java | 6 ++ .../nms/v1_19_R2/entity/WardenController.java | 5 + .../nms/v1_19_R2/entity/WitchController.java | 5 + .../nms/v1_19_R2/entity/WitherController.java | 5 + .../nms/v1_19_R2/entity/WolfController.java | 5 + .../nms/v1_19_R2/entity/ZoglinController.java | 5 + .../nms/v1_19_R2/entity/ZombieController.java | 5 + .../v1_19_R2/entity/ZombieHuskController.java | 5 + .../entity/ZombieVillagerController.java | 5 + .../v1_19_R2/util/CitizensEntityTracker.java | 7 +- .../nms/v1_19_R2/util/NMSImpl.java | 39 ++++---- .../nms/v1_19_R2/util/PlayerNavigation.java | 2 +- .../v1_19_R2/util/PlayerNodeEvaluator.java | 4 +- .../nms/v1_8_R3/entity/BatController.java | 6 ++ .../nms/v1_8_R3/entity/BlazeController.java | 6 ++ .../v1_8_R3/entity/CaveSpiderController.java | 6 ++ .../nms/v1_8_R3/entity/ChickenController.java | 6 ++ .../nms/v1_8_R3/entity/CowController.java | 6 ++ .../nms/v1_8_R3/entity/CreeperController.java | 6 ++ .../v1_8_R3/entity/EnderDragonController.java | 6 ++ .../v1_8_R3/entity/EndermanController.java | 6 ++ .../v1_8_R3/entity/EndermiteController.java | 6 ++ .../nms/v1_8_R3/entity/EntityHumanNPC.java | 3 + .../nms/v1_8_R3/entity/GhastController.java | 6 ++ .../nms/v1_8_R3/entity/GiantController.java | 6 ++ .../v1_8_R3/entity/GuardianController.java | 6 ++ .../nms/v1_8_R3/entity/HorseController.java | 6 ++ .../nms/v1_8_R3/entity/HumanController.java | 3 + .../v1_8_R3/entity/IronGolemController.java | 6 ++ .../v1_8_R3/entity/MagmaCubeController.java | 6 ++ .../v1_8_R3/entity/MushroomCowController.java | 6 ++ .../nms/v1_8_R3/entity/OcelotController.java | 6 ++ .../nms/v1_8_R3/entity/PigController.java | 6 ++ .../v1_8_R3/entity/PigZombieController.java | 6 ++ .../nms/v1_8_R3/entity/RabbitController.java | 6 ++ .../nms/v1_8_R3/entity/SheepController.java | 6 ++ .../v1_8_R3/entity/SilverfishController.java | 6 ++ .../v1_8_R3/entity/SkeletonController.java | 6 ++ .../nms/v1_8_R3/entity/SlimeController.java | 6 ++ .../nms/v1_8_R3/entity/SnowmanController.java | 6 ++ .../nms/v1_8_R3/entity/SpiderController.java | 6 ++ .../nms/v1_8_R3/entity/SquidController.java | 6 ++ .../v1_8_R3/entity/VillagerController.java | 7 ++ .../nms/v1_8_R3/entity/WitchController.java | 6 ++ .../nms/v1_8_R3/entity/WitherController.java | 6 ++ .../nms/v1_8_R3/entity/WolfController.java | 6 ++ .../nms/v1_8_R3/entity/ZombieController.java | 6 ++ .../nonliving/ArmorStandController.java | 1 + .../entity/nonliving/ArrowController.java | 1 + .../entity/nonliving/BoatController.java | 1 + .../entity/nonliving/EggController.java | 1 + .../nonliving/EnderCrystalController.java | 1 + .../nonliving/EnderPearlController.java | 1 + .../nonliving/EnderSignalController.java | 1 + .../nonliving/ExperienceOrbController.java | 1 + .../nonliving/FallingBlockController.java | 1 + .../entity/nonliving/FireworkController.java | 1 + .../nonliving/FishingHookController.java | 1 + .../entity/nonliving/ItemController.java | 1 + .../entity/nonliving/ItemFrameController.java | 1 + .../nonliving/LargeFireballController.java | 1 + .../entity/nonliving/LeashController.java | 1 + .../nonliving/MinecartChestController.java | 1 + .../nonliving/MinecartCommandController.java | 1 + .../nonliving/MinecartFurnaceController.java | 1 + .../nonliving/MinecartHopperController.java | 1 + .../nonliving/MinecartRideableController.java | 1 + .../nonliving/MinecartSpawnerController.java | 1 + .../nonliving/MinecartTNTController.java | 1 + .../entity/nonliving/PaintingController.java | 1 + .../nonliving/SmallFireballController.java | 1 + .../entity/nonliving/SnowballController.java | 1 + .../nonliving/SplashPotionController.java | 1 + .../entity/nonliving/TNTPrimedController.java | 1 + .../nonliving/ThrownExpBottleController.java | 1 + .../nonliving/WitherSkullController.java | 1 + .../v1_8_R3/network/EmptyNetworkManager.java | 1 + .../v1_8_R3/util/CitizensBlockBreaker.java | 1 + .../nms/v1_8_R3/util/NMSBoundingBox.java | 1 + .../nms/v1_8_R3/util/NMSImpl.java | 9 +- .../nms/v1_8_R3/util/PlayerAnimationImpl.java | 3 + .../v1_8_R3/util/PlayerControllerMove.java | 1 + .../nms/v1_8_R3/util/PlayerNavigation.java | 1 + .../nms/v1_8_R3/util/PlayerPathfinder.java | 1 + .../v1_8_R3/util/PlayerPathfinderNormal.java | 3 +- .../v1_8_R3/util/PlayerlistTrackerEntry.java | 11 +-- 735 files changed, 3839 insertions(+), 366 deletions(-) diff --git a/main/src/main/java/net/citizensnpcs/Citizens.java b/main/src/main/java/net/citizensnpcs/Citizens.java index 0a4e359f7..ff3222dc7 100644 --- a/main/src/main/java/net/citizensnpcs/Citizens.java +++ b/main/src/main/java/net/citizensnpcs/Citizens.java @@ -622,7 +622,7 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { Messaging.logTr(Messages.NUM_LOADED_NOTIFICATION, Iterables.size(npcRegistry), "?"); startMetrics(); - scheduleSaveTask(Setting.SAVE_TASK_DELAY.asInt()); + scheduleSaveTask(Setting.SAVE_TASK_DELAY.asTicks()); Bukkit.getPluginManager().callEvent(new CitizensEnableEvent()); new PlayerUpdateTask().runTaskTimer(Citizens.this, 0, 1); enabled = true; diff --git a/main/src/main/java/net/citizensnpcs/EventListen.java b/main/src/main/java/net/citizensnpcs/EventListen.java index 50ffbb284..bb7ba7255 100644 --- a/main/src/main/java/net/citizensnpcs/EventListen.java +++ b/main/src/main/java/net/citizensnpcs/EventListen.java @@ -462,7 +462,7 @@ public class EventListen implements Listener { @EventHandler(priority = EventPriority.MONITOR) public void onPlayerJoin(PlayerJoinEvent event) { - skinUpdateTracker.updatePlayer(event.getPlayer(), Setting.INITIAL_PLAYER_JOIN_SKIN_PACKET_DELAY_TICKS.asInt(), + skinUpdateTracker.updatePlayer(event.getPlayer(), Setting.INITIAL_PLAYER_JOIN_SKIN_PACKET_DELAY.asTicks(), true); CitizensAPI.getLocationLookup().onJoin(event); } @@ -508,7 +508,7 @@ public class EventListen implements Listener { public void onPlayerTeleport(final PlayerTeleportEvent event) { NPC npc = CitizensAPI.getNPCRegistry().getNPC(event.getPlayer()); if (event.getCause() == TeleportCause.PLUGIN && !event.getPlayer().hasMetadata("citizens-force-teleporting") - && npc != null && Setting.PLAYER_TELEPORT_DELAY.asInt() > 0) { + && npc != null && Setting.PLAYER_TELEPORT_DELAY.asTicks() > 0) { event.setCancelled(true); Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), new Runnable() { @Override @@ -518,7 +518,7 @@ public class EventListen implements Listener { event.getPlayer().teleport(event.getTo()); event.getPlayer().removeMetadata("citizens-force-teleporting", CitizensAPI.getPlugin()); } - }, Setting.PLAYER_TELEPORT_DELAY.asInt()); + }, Setting.PLAYER_TELEPORT_DELAY.asTicks()); } skinUpdateTracker.updatePlayer(event.getPlayer(), 15, true); } diff --git a/main/src/main/java/net/citizensnpcs/Settings.java b/main/src/main/java/net/citizensnpcs/Settings.java index aff67411b..293c16b2f 100644 --- a/main/src/main/java/net/citizensnpcs/Settings.java +++ b/main/src/main/java/net/citizensnpcs/Settings.java @@ -1,16 +1,20 @@ package net.citizensnpcs; import java.io.File; +import java.time.Duration; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.TimeUnit; import com.google.common.collect.Lists; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.util.DataKey; import net.citizensnpcs.api.util.Messaging; +import net.citizensnpcs.api.util.SpigotUtil; import net.citizensnpcs.api.util.Storage; import net.citizensnpcs.api.util.YamlStorage; +import net.citizensnpcs.util.Util; public class Settings { private final Storage config; @@ -88,13 +92,14 @@ public class Settings { DEFAULT_NPC_HOLOGRAM_LINE_HEIGHT("npc.hologram.default-line-height", 0.4D), DEFAULT_NPC_LIMIT("npc.limits.default-limit", 10), DEFAULT_PATH_DISTANCE_MARGIN("npc.pathfinding.default-path-distance-margin", 1), - DEFAULT_PATHFINDER_UPDATE_PATH_RATE("npc.pathfinding.update-path-rate", 20), + DEFAULT_PATHFINDER_UPDATE_PATH_RATE("npc.pathfinding.update-path-rate", "1s"), DEFAULT_PATHFINDING_RANGE("npc.default.pathfinding.range", "npc.pathfinding.default-range-blocks", 75F), DEFAULT_RANDOM_LOOK_CLOSE("npc.default.look-close.random-look-enabled", false), - DEFAULT_RANDOM_LOOK_DELAY("npc.default.look-close.random-look-delay", 60), + DEFAULT_RANDOM_LOOK_DELAY("npc.default.look-close.random-look-delay", "3s"), DEFAULT_RANDOM_TALKER("npc.default.random-talker", "npc.default.talk-close.random-talker", false), DEFAULT_REALISTIC_LOOKING("npc.default.realistic-looking", "npc.default.look-close.realistic-looking", false), - DEFAULT_SPAWN_NODAMAGE_TICKS("npc.default.spawn-nodamage-ticks", 20), + DEFAULT_SPAWN_NODAMAGE_DURATION("npc.default.spawn-nodamage-ticks", "npc.default.spawn-nodamage-duration", + "1s"), DEFAULT_STATIONARY_TICKS("npc.default.stationary-ticks", -1), DEFAULT_STRAIGHT_LINE_TARGETING_DISTANCE("npc.pathfinding.straight-line-targeting-distance", 5), DEFAULT_TALK_CLOSE("npc.default.talk-close.enabled", false), @@ -109,18 +114,19 @@ public class Settings { value = list; } }, - DEFAULT_TEXT_DELAY_MAX("npc.text.default-random-text-delay-max", 200), - DEFAULT_TEXT_DELAY_MIN("npc.text.default-random-text-delay-min", 100), - DEFAULT_TEXT_SPEECH_BUBBLE_TICKS("npc.text.speech-bubble-ticks", 50), + DEFAULT_TEXT_DELAY_MAX("npc.text.default-random-text-delay-max", "10s"), + DEFAULT_TEXT_DELAY_MIN("npc.text.default-random-text-delay-min", "5s"), + DEFAULT_TEXT_SPEECH_BUBBLE_DURATION("npc.text.speech-bubble-ticks", "npc.text.speech-bubble-duration", "50t"), DISABLE_LOOKCLOSE_WHILE_NAVIGATING("npc.default.look-close.disable-while-navigating", true), DISABLE_MC_NAVIGATION_FALLBACK("npc.pathfinding.disable-mc-fallback-navigation", true), DISABLE_TABLIST("npc.tablist.disable", true), - ENTITY_SPAWN_WAIT_TICKS("general.entity-spawn-wait-ticks", 20), + ENTITY_SPAWN_WAIT_DURATION("general.entity-spawn-wait-ticks", "general.wait-for-entity-spawn", "1s"), ERROR_COLOUR("general.color-scheme.message-error", ""), FOLLOW_ACROSS_WORLDS("npc.follow.teleport-across-worlds", true), HIGHLIGHT_COLOUR("general.color-scheme.message-highlight", "yellow"), - HOLOGRAM_UPDATE_RATE_TICKS("npc.hologram.update-rate-ticks", 20), - INITIAL_PLAYER_JOIN_SKIN_PACKET_DELAY_TICKS("npc.skins.player-join-update-delay-ticks", 3 * 20), + HOLOGRAM_UPDATE_RATE("npc.hologram.update-rate-ticks", "npc.hologram.update-rate", "1s"), + INITIAL_PLAYER_JOIN_SKIN_PACKET_DELAY("npc.skins.player-join-update-delay-ticks", + "npc.skins.player-join-update-delay", "3s"), KEEP_CHUNKS_LOADED("npc.chunks.always-keep-loaded", false), LOCALE("general.translation.locale", ""), MAX_CONTROLLABLE_GROUND_SPEED("npc.controllable.max-ground-speed", 0.5), @@ -132,12 +138,11 @@ public class Settings { MAXIMUM_ASTAR_ITERATIONS("npc.pathfinding.maximum-new-pathfinder-iterations", "npc.pathfinding.new-finder.maximum-iterations", 5000), MAXIMUM_VISITED_NODES("npc.pathfinding.maximum-visited-nodes", "npc.pathfinding.maximum-visited-blocks", 768), - MC_NAVIGATION_MAX_FALL_DISTANCE("npc.pathfinding.minecraft.max-fall-distance", 3), MESSAGE_COLOUR("general.color-scheme.message", ""), NEW_PATHFINDER_CHECK_BOUNDING_BOXES("npc.pathfinding.new-finder.check-bounding-boxes", false), NEW_PATHFINDER_OPENS_DOORS("npc.pathfinding.new-finder.open-doors", false), - NPC_ATTACK_DISTANCE("npc.pathfinding.attack-range", 1.75 * 1.75), - NPC_COMMAND_GLOBAL_COMMAND_DELAY("npc.commands.global-delay-seconds", 1), + NPC_ATTACK_DISTANCE("npc.pathfinding.attack-range", 1.75), + NPC_COMMAND_GLOBAL_COMMAND_COOLDOWN("npc.commands.global-delay-seconds", "npc.commands.global-cooldown", "1s"), NPC_COMMAND_MAXIMUM_TIMES_USED_MESSAGE("npc.commands.error-messages.maximum-times-used", "You have reached the maximum number of uses ({0})."), NPC_COMMAND_MISSING_ITEM_MESSAGE("npc.commands.error-messages.missing-item", "Missing {1} {0}"), @@ -151,25 +156,26 @@ public class Settings { NPC_COMMAND_ON_GLOBAL_COOLDOWN_MESSAGE("npc.commands.error-messages.on-global-cooldown", "Please wait for {minutes} minutes and {seconds_over} seconds."), NPC_COST("economy.npc.cost", 100D), - NPC_SKIN_RETRY_DELAY("npc.skins.retry-delay", 120), + NPC_SKIN_RETRY_DELAY("npc.skins.retry-delay", "5s"), NPC_SKIN_ROTATION_UPDATE_DEGREES("npc.skins.rotation-update-degrees", 90f), NPC_SKIN_USE_LATEST("npc.skins.use-latest-by-default", false), NPC_SKIN_VIEW_DISTANCE("npc.skins.view-distance", 100D), NPC_WATER_SPEED_MODIFIER("npc.movement.water-speed-modifier", 1.15F), PACKET_UPDATE_DELAY("npc.packets.update-delay", 30), - PLACEHOLDER_SKIN_UPDATE_FREQUENCY("npc.skins.placeholder-update-frequency-ticks", 5 * 60 * 20), - PLAYER_TELEPORT_DELAY("npc.teleport-delay", "npc.delay-player-teleport-ticks", -1), + PATHFINDER_FALL_DISTANCE("npc.pathfinding.allowed-fall-distance", -1), + PLACEHOLDER_SKIN_UPDATE_FREQUENCY("npc.skins.placeholder-update-frequency-ticks", + "npc.skins.placeholder-update-frequency", "5m"), + PLAYER_TELEPORT_DELAY("npc.delay-player-teleport-ticks", "npc.delay-player-teleport", -1), REMOVE_PLAYERS_FROM_PLAYER_LIST("npc.player.remove-from-list", true), RESOURCE_PACK_PATH("general.resource-pack-path", "plugins/Citizens/resourcepack"), - SAVE_TASK_DELAY("storage.save-task.delay", 20 * 60 * 60), - SCOREBOARD_SEND_TICKS("npc.scoreboard-teams.packet-send-ticks", 1), + SAVE_TASK_DELAY("storage.save-task.delay", "1hr"), SELECTION_ITEM("npc.selection.item", "stick"), SELECTION_MESSAGE("npc.selection.message", "Selected [[]] (ID [[]])."), SERVER_OWNS_NPCS("npc.server-ownership", false), STORAGE_FILE("storage.file", "saves.yml"), STORAGE_TYPE("storage.type", "yaml"), SUBPLUGIN_FOLDER("subplugins.folder", "plugins"), - TABLIST_REMOVE_PACKET_DELAY("npc.tablist.remove-packet-delay", 1), + TABLIST_REMOVE_PACKET_DELAY("npc.tablist.remove-packet-delay", "1t"), TALK_CLOSE_TO_NPCS("npc.chat.options.talk-to-npcs", true), TALK_ITEM("npc.text.talk-item", "*"), USE_BOAT_CONTROLS("npc.controllable.use-boat-controls", true), @@ -177,6 +183,7 @@ public class Settings { USE_SCOREBOARD_TEAMS("npc.scoreboard-teams.enable", true), WARN_ON_RELOAD("general.reload-warning-enabled", true); + private Duration duration; protected String migrate; protected String path; protected Object value; @@ -223,10 +230,24 @@ public class Settings { return ((Number) value).longValue(); } + public int asSeconds() { + if (duration == null) { + duration = SpigotUtil.parseDuration(asString()); + } + return (int) TimeUnit.SECONDS.convert(duration); + } + public String asString() { return value.toString(); } + public int asTicks() { + if (duration == null) { + duration = SpigotUtil.parseDuration(asString()); + } + return Util.toTicks(duration); + } + protected void loadFromKey(DataKey root) { if (migrate != null && root.keyExists(migrate) && !root.keyExists(path)) { value = root.getRaw(migrate); diff --git a/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java b/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java index 5ce5a3a66..79f2cd806 100644 --- a/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java +++ b/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java @@ -7,6 +7,7 @@ import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; +import java.time.Duration; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -99,7 +100,6 @@ import net.citizensnpcs.commands.history.RemoveNPCHistoryItem; import net.citizensnpcs.npc.EntityControllers; import net.citizensnpcs.npc.NPCSelector; import net.citizensnpcs.npc.Template; -import net.citizensnpcs.npc.ai.FallingExaminer; import net.citizensnpcs.trait.Age; import net.citizensnpcs.trait.Anchors; import net.citizensnpcs.trait.ArmorStandTrait; @@ -452,9 +452,9 @@ public class NPCCommands { permission = "citizens.npc.command") public void command(CommandContext args, CommandSender sender, NPC npc, @Flag(value = { "permissions", "permission" }) String permissions, - @Flag(value = "cooldown", defValue = "0") int cooldown, - @Flag(value = "gcooldown", defValue = "0") int gcooldown, @Flag(value = "n", defValue = "-1") int n, - @Flag(value = "delay", defValue = "0") int delay, + @Flag(value = "cooldown", defValue = "0") Duration cooldown, + @Flag(value = "gcooldown", defValue = "0") Duration gcooldown, @Flag(value = "n", defValue = "-1") int n, + @Flag(value = "delay", defValue = "0") Duration delay, @Arg( value = 1, completions = { "add", "remove", "permissions", "persistsequence", "sequential", "random", @@ -484,7 +484,7 @@ public class NPCCommands { try { int id = commands.addCommand(new NPCCommandBuilder(command, hand).addPerms(perms) .player(args.hasFlag('p') || args.hasFlag('o')).op(args.hasFlag('o')).cooldown(cooldown) - .globalCooldown(gcooldown).n(n).delay(delay)); + .globalCooldown(gcooldown).n(n).delay(Util.toTicks(delay))); Messaging.sendTr(sender, Messages.COMMAND_ADDED, command, id); } catch (NumberFormatException ex) { throw new CommandException(CommandMessages.INVALID_NUMBER); @@ -653,7 +653,7 @@ public class NPCCommands { public void create(CommandContext args, CommandSender sender, NPC npc, @Flag("at") Location at, @Flag(value = "type", defValue = "PLAYER") EntityType type, @Flag("trait") String traits, @Flag(value = "nameplate", completions = { "true", "false", "hover" }) String nameplate, - @Flag("temporaryticks") Integer temporaryTicks, @Flag("item") String item, @Flag("model") String model, + @Flag("temporaryticks") Integer temporaryTicks, @Flag("item") String item, @Flag("template") String templateName, @Flag("registry") String registryName) throws CommandException { String name = args.getJoinedStrings(1).trim(); if (args.hasValueFlag("type")) { @@ -690,10 +690,6 @@ public class NPCCommands { registry = temporaryRegistry; } - if (model != null) { - type = EntityType.ARMOR_STAND; - } - if (item != null) { ItemStack stack = new ItemStack(Material.STONE, 1); try { @@ -1182,7 +1178,7 @@ public class NPCCommands { permission = "citizens.npc.home") @Requirements(ownership = true, selected = true) public void home(CommandContext args, CommandSender sender, NPC npc, @Flag("location") Location loc, - @Flag("delay") Integer delay, @Flag("distance") Double distance) throws CommandException { + @Flag("delay") Duration delay, @Flag("distance") Double distance) throws CommandException { HomeTrait trait = npc.getOrAddTrait(HomeTrait.class); String output = ""; if (args.hasFlag('h')) { @@ -1209,7 +1205,7 @@ public class NPCCommands { output += " " + Messaging.tr(Messages.HOME_TRAIT_TELEPORT_SET, npc.getName()); } if (delay != null) { - trait.setDelayTicks(delay); + trait.setDelayTicks(Util.toTicks(delay)); output += " " + Messaging.tr(Messages.HOME_TRAIT_DELAY_SET, delay); } if (!output.isEmpty()) { @@ -1457,7 +1453,7 @@ public class NPCCommands { permission = "citizens.npc.lookclose") public void lookClose(CommandContext args, CommandSender sender, NPC npc, @Flag({ "randomlook", "rlook" }) Boolean randomlook, @Flag("range") Double range, - @Flag("randomlookdelay") Integer randomLookDelay, @Flag("randomyawrange") String randomYaw, + @Flag("randomlookdelay") Duration randomLookDelay, @Flag("randomyawrange") String randomYaw, @Flag("randompitchrange") String randomPitch, @Flag("randomswitchtargets") Boolean randomSwitchTargets, @Flag("headonly") Boolean headonly, @Flag("disablewhennavigating") Boolean disableWhenNavigating, @Flag("perplayer") Boolean perPlayer, @Flag("targetnpcs") Boolean targetNPCs) throws CommandException { @@ -1511,7 +1507,7 @@ public class NPCCommands { toggle = false; } if (randomLookDelay != null) { - trait.setRandomLookDelay(Math.max(1, randomLookDelay)); + trait.setRandomLookDelay(Math.max(1, Util.toTicks(randomLookDelay))); Messaging.sendTr(sender, Messages.LOOKCLOSE_RANDOM_DELAY_SET, npc.getName(), randomLookDelay); toggle = false; } @@ -1915,54 +1911,63 @@ public class NPCCommands { max = 1, permission = "citizens.npc.pathfindingoptions") public void pathfindingOptions(CommandContext args, CommandSender sender, NPC npc, - @Flag({ "avoid-water" }) Boolean avoidwater, @Flag("stationary-ticks") Integer stationaryTicks, - @Flag("distance-margin") Double distanceMargin, @Flag("path-distance-margin") Double pathDistanceMargin, - @Flag("attack-range") Double attackRange, @Flag("use-new-finder") Boolean useNewFinder, - @Flag("falling-distance") Integer fallingDistance) throws CommandException { + @Flag("avoid-water") Boolean avoidwater, @Flag("open-doors") Boolean opendoors, + @Flag("stationary-ticks") Integer stationaryTicks, @Flag("distance-margin") Double distanceMargin, + @Flag("path-distance-margin") Double pathDistanceMargin, @Flag("attack-range") Double attackRange, + @Flag("use-new-finder") Boolean useNewFinder, @Flag("falling-distance") Integer fallingDistance) + throws CommandException { String output = ""; if (avoidwater != null) { npc.getNavigator().getDefaultParameters().avoidWater(avoidwater); output += Messaging.tr(avoidwater ? Messages.PATHFINDING_OPTIONS_AVOID_WATER_SET : Messages.PATHFINDING_OPTIONS_AVOID_WATER_UNSET, npc.getName()); } + if (opendoors != null) { + npc.data().setPersistent(NPC.Metadata.PATHFINDER_OPEN_DOORS, opendoors); + output += Messaging.tr(opendoors ? Messages.PATHFINDING_OPTIONS_OPEN_DOORS_SET + : Messages.PATHFINDING_OPTIONS_OPEN_DOORS_UNSET, npc.getName()); + } if (stationaryTicks != null) { if (stationaryTicks < 0) throw new CommandUsageException(); npc.getNavigator().getDefaultParameters().stationaryTicks(stationaryTicks); - output += Messaging.tr(Messages.PATHFINDING_OPTIONS_STATIONARY_TICKS_SET, npc.getName(), stationaryTicks); + output += " " + + Messaging.tr(Messages.PATHFINDING_OPTIONS_STATIONARY_TICKS_SET, npc.getName(), stationaryTicks); } if (distanceMargin != null) { if (distanceMargin < 0) throw new CommandUsageException(); npc.getNavigator().getDefaultParameters().distanceMargin(distanceMargin); - output += Messaging.tr(Messages.PATHFINDING_OPTIONS_DISTANCE_MARGIN_SET, npc.getName(), distanceMargin); + output += " " + + Messaging.tr(Messages.PATHFINDING_OPTIONS_DISTANCE_MARGIN_SET, npc.getName(), distanceMargin); } if (pathDistanceMargin != null) { if (pathDistanceMargin < 0) throw new CommandUsageException(); npc.getNavigator().getDefaultParameters().pathDistanceMargin(pathDistanceMargin); - output += Messaging.tr(Messages.PATHFINDING_OPTIONS_PATH_DISTANCE_MARGIN_SET, npc.getName(), + output += " " + Messaging.tr(Messages.PATHFINDING_OPTIONS_PATH_DISTANCE_MARGIN_SET, npc.getName(), pathDistanceMargin); } if (attackRange != null) { if (attackRange < 0) throw new CommandUsageException(); npc.getNavigator().getDefaultParameters().attackRange(attackRange); - output += Messaging.tr(Messages.PATHFINDING_OPTIONS_ATTACK_RANGE_SET, npc.getName(), attackRange); + output += " " + Messaging.tr(Messages.PATHFINDING_OPTIONS_ATTACK_RANGE_SET, npc.getName(), attackRange); } if (useNewFinder != null) { npc.getNavigator().getDefaultParameters().useNewPathfinder(useNewFinder); - output += Messaging.tr(Messages.PATHFINDING_OPTIONS_USE_NEW_FINDER, npc.getName(), useNewFinder); + output += " " + Messaging.tr(Messages.PATHFINDING_OPTIONS_USE_NEW_FINDER, npc.getName(), useNewFinder); } if (fallingDistance != null) { - npc.getNavigator().getDefaultParameters().examiner(new FallingExaminer(fallingDistance)); - output += Messaging.tr(Messages.PATHFINDING_OPTIONS_FALLING_DISTANCE_SET, npc.getName(), fallingDistance); + npc.data().set(NPC.Metadata.PATHFINDER_FALL_DISTANCE, fallingDistance); + output += " " + + Messaging.tr(Messages.PATHFINDING_OPTIONS_FALLING_DISTANCE_SET, npc.getName(), fallingDistance); } if (output.isEmpty()) { throw new CommandUsageException(); } else { - Messaging.send(sender, output); + Messaging.send(sender, output.trim()); } } @@ -2073,14 +2078,16 @@ public class NPCCommands { @Command( aliases = { "npc" }, - usage = "playerfilter --hide [uuid] --unhide [uuid] --only [uuid]", + usage = "playerfilter --hide [uuid] --unhide [uuid] --only [uuid] --hidegroup [group] --unhidegroup [group] --onlygroup [group] -c(lear)", desc = "Sets the NPC filter", modifiers = { "playerfilter" }, min = 1, max = 1, + flags = "c", permission = "citizens.npc.playerfilter") public void playerfilter(CommandContext args, CommandSender sender, NPC npc, @Flag("hide") UUID hide, - @Flag("unhide") UUID unhide, @Flag("only") UUID only) { + @Flag("unhide") UUID unhide, @Flag("only") UUID only, @Flag("hidegroup") String hidegroup, + @Flag("unhidegroup") String unhidegroup, @Flag("onlygroup") String onlygroup) { PlayerFilter trait = npc.getOrAddTrait(PlayerFilter.class); if (hide != null) { trait.hide(hide); @@ -2094,6 +2101,22 @@ public class NPCCommands { trait.only(only); Messaging.sendTr(sender, Messages.PLAYERFILTER_PLAYER_ONLY_ADDED, only, npc.getName()); } + if (hidegroup != null) { + trait.hideGroup(hidegroup); + Messaging.sendTr(sender, Messages.PLAYERFILTER_GROUP_HIDDEN, hidegroup, npc.getName()); + } + if (unhidegroup != null) { + trait.unhideGroup(unhidegroup); + Messaging.sendTr(sender, Messages.PLAYERFILTER_GROUP_UNHIDDEN, unhidegroup, npc.getName()); + } + if (onlygroup != null) { + trait.onlyGroup(onlygroup); + Messaging.sendTr(sender, Messages.PLAYERFILTER_GROUP_ONLY_ADDED, onlygroup, npc.getName()); + } + if (args.hasFlag('c')) { + trait.clear(); + Messaging.sendTr(sender, Messages.PLAYERFILTER_PLAYER_CLEARED, npc.getName()); + } } @Command( @@ -2374,10 +2397,9 @@ public class NPCCommands { min = 1, max = 2, permission = "citizens.npc.respawn") - public void respawn(CommandContext args, CommandSender sender, NPC npc) { - if (args.argsLength() > 1) { - int delay = args.getTicks(1); - npc.data().setPersistent(NPC.Metadata.RESPAWN_DELAY, delay); + public void respawn(CommandContext args, CommandSender sender, NPC npc, @Arg(1) Duration delay) { + if (delay != null) { + npc.data().setPersistent(NPC.Metadata.RESPAWN_DELAY, Util.toTicks(delay)); Messaging.sendTr(sender, Messages.RESPAWN_DELAY_SET, delay); } else { Messaging.sendTr(sender, Messages.RESPAWN_DELAY_DESCRIBE, npc.data().get(NPC.Metadata.RESPAWN_DELAY, -1)); @@ -3025,9 +3047,9 @@ public class NPCCommands { @Command( aliases = { "npc" }, - usage = "tphere (cursor) (-c(enter))", + usage = "tphere (cursor) -c(enter) -f(ront)", desc = "Teleport a NPC to your location", - flags = "c", + flags = "cf", modifiers = { "tphere", "tph", "move" }, min = 1, max = 2, @@ -3053,6 +3075,10 @@ public class NPCCommands { to.setX(to.getX() + 0.5); to.setZ(to.getZ() + 0.5); } + if (args.hasFlag('f')) { + to = to.clone().add(to.getDirection().setY(0)); + to.setDirection(to.getDirection().multiply(-1)).setPitch(0); + } if (!npc.isSpawned()) { NPCTeleportEvent event = new NPCTeleportEvent(npc, to); Bukkit.getPluginManager().callEvent(event); diff --git a/main/src/main/java/net/citizensnpcs/commands/WaypointCommands.java b/main/src/main/java/net/citizensnpcs/commands/WaypointCommands.java index 88d51d4be..bf7a9e633 100644 --- a/main/src/main/java/net/citizensnpcs/commands/WaypointCommands.java +++ b/main/src/main/java/net/citizensnpcs/commands/WaypointCommands.java @@ -9,7 +9,6 @@ import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import net.citizensnpcs.Citizens; import net.citizensnpcs.api.ai.TeleportStuckAction; import net.citizensnpcs.api.astar.pathfinder.ChunkBlockSource; import net.citizensnpcs.api.command.Command; @@ -31,9 +30,6 @@ import net.citizensnpcs.util.Util; @Requirements(ownership = true, selected = true) public class WaypointCommands { - public WaypointCommands(Citizens plugin) { - } - @Command( aliases = { "waypoints", "waypoint", "wp" }, usage = "add [x] [y] [z] (world) (--index idx)", diff --git a/main/src/main/java/net/citizensnpcs/npc/CitizensNPC.java b/main/src/main/java/net/citizensnpcs/npc/CitizensNPC.java index ffe814ceb..7c68bb248 100644 --- a/main/src/main/java/net/citizensnpcs/npc/CitizensNPC.java +++ b/main/src/main/java/net/citizensnpcs/npc/CitizensNPC.java @@ -217,7 +217,7 @@ public class CitizensNPC extends AbstractNPC { @Override public void scheduleUpdate(NPCUpdate update) { if (update == NPCUpdate.PACKET) { - updateCounter = data().get(NPC.Metadata.PACKET_UPDATE_DELAY, Setting.PACKET_UPDATE_DELAY.asInt()) + 1; + updateCounter = data().get(NPC.Metadata.PACKET_UPDATE_DELAY, Setting.PACKET_UPDATE_DELAY.asTicks()) + 1; } } @@ -340,7 +340,7 @@ public class CitizensNPC extends AbstractNPC { @Override public void accept(Runnable cancel) { if (getEntity() == null || (!hasTrait(PacketNPC.class) && !getEntity().isValid())) { - if (timer++ > Setting.ENTITY_SPAWN_WAIT_TICKS.asInt()) { + if (timer++ > Setting.ENTITY_SPAWN_WAIT_DURATION.asTicks()) { Messaging.debug("Couldn't spawn ", CitizensNPC.this, "waited", timer, "ticks but entity not added to world"); entityController.remove(); @@ -394,11 +394,11 @@ public class CitizensNPC extends AbstractNPC { NMS.setAggressive(entity, data(). get(NPC.Metadata.AGGRESSIVE)); } - if (SUPPORT_NODAMAGE_TICKS && (Setting.DEFAULT_SPAWN_NODAMAGE_TICKS.asInt() != 20 + if (SUPPORT_NODAMAGE_TICKS && (Setting.DEFAULT_SPAWN_NODAMAGE_DURATION.asTicks() != 20 || data().has(NPC.Metadata.SPAWN_NODAMAGE_TICKS))) { try { entity.setNoDamageTicks(data().get(NPC.Metadata.SPAWN_NODAMAGE_TICKS, - Setting.DEFAULT_SPAWN_NODAMAGE_TICKS.asInt())); + Setting.DEFAULT_SPAWN_NODAMAGE_DURATION.asTicks())); } catch (NoSuchMethodError err) { SUPPORT_NODAMAGE_TICKS = false; } @@ -480,10 +480,10 @@ public class CitizensNPC extends AbstractNPC { } } - boolean canSwim = data().get(NPC.Metadata.SWIMMING, SwimmingExaminer.isWaterMob(getEntity())); - boolean inLiquid = MinecraftBlockExaminer.isLiquid(getEntity().getLocation().getBlock().getType()); + boolean shouldSwim = data().get(NPC.Metadata.SWIMMING, SwimmingExaminer.isWaterMob(getEntity())) + && MinecraftBlockExaminer.isLiquid(getEntity().getLocation().getBlock().getType()); if (navigator.isNavigating()) { - if (canSwim && inLiquid) { + if (shouldSwim) { getEntity().setVelocity(getEntity().getVelocity().multiply( data().get(NPC.Metadata.WATER_SPEED_MODIFIER, Setting.NPC_WATER_SPEED_MODIFIER.asFloat()))); Location currentDest = navigator.getPathStrategy().getCurrentDestination(); @@ -491,7 +491,7 @@ public class CitizensNPC extends AbstractNPC { NMS.trySwim(getEntity()); } } - } else if (canSwim && inLiquid) { + } else if (shouldSwim) { Gravity trait = getTraitNullable(Gravity.class); if (trait == null || trait.hasGravity()) { NMS.trySwim(getEntity()); diff --git a/main/src/main/java/net/citizensnpcs/npc/ai/AStarNavigationStrategy.java b/main/src/main/java/net/citizensnpcs/npc/ai/AStarNavigationStrategy.java index 2f9538eea..993deda48 100644 --- a/main/src/main/java/net/citizensnpcs/npc/ai/AStarNavigationStrategy.java +++ b/main/src/main/java/net/citizensnpcs/npc/ai/AStarNavigationStrategy.java @@ -70,7 +70,7 @@ public class AStarNavigationStrategy extends AbstractPathStrategy { @Override public void stop() { if (plan != null && params.debug()) { - plan.debugEnd(); + Util.sendBlockChanges(plan.getBlocks(npc.getEntity().getWorld()), null); } plan = null; } @@ -122,6 +122,7 @@ public class AStarNavigationStrategy extends AbstractPathStrategy { vector = plan.getCurrentVector(); return false; } + if (params.debug()) { npc.getEntity().getWorld().playEffect(dest, Effect.ENDER_SIGNAL, 0); } @@ -191,7 +192,8 @@ public class AStarNavigationStrategy extends AbstractPathStrategy { } else { this.plan = plan; if (params.debug()) { - plan.debug(); + Util.sendBlockChanges(plan.getBlocks(to.getWorld()), + Util.getFallbackMaterial("DANDELION", "YELLOW_FLOWER")); } } return null; diff --git a/main/src/main/java/net/citizensnpcs/npc/ai/CitizensNavigator.java b/main/src/main/java/net/citizensnpcs/npc/ai/CitizensNavigator.java index a4114e33e..9dad16936 100644 --- a/main/src/main/java/net/citizensnpcs/npc/ai/CitizensNavigator.java +++ b/main/src/main/java/net/citizensnpcs/npc/ai/CitizensNavigator.java @@ -236,7 +236,7 @@ public class CitizensNavigator implements Navigator, Runnable { } else { root.removeKey("pathfindingrange"); } - if (defaultParams.stationaryTicks() != Setting.DEFAULT_STATIONARY_TICKS.asInt()) { + if (defaultParams.stationaryTicks() != Setting.DEFAULT_STATIONARY_TICKS.asTicks()) { root.setInt("stationaryticks", defaultParams.stationaryTicks()); } else { root.removeKey("stationaryticks"); @@ -438,6 +438,11 @@ public class CitizensNavigator implements Navigator, Runnable { private void switchParams() { localParams = defaultParams.clone(); + int fallDistance = npc.data().get(NPC.Metadata.PATHFINDER_FALL_DISTANCE, + Setting.PATHFINDER_FALL_DISTANCE.asInt()); + if (fallDistance != -1) { + localParams.examiner(new FallingExaminer(fallDistance)); + } if (npc.data().get(NPC.Metadata.PATHFINDER_OPEN_DOORS, Setting.NEW_PATHFINDER_OPENS_DOORS.asBoolean())) { localParams.examiner(new DoorExaminer()); } diff --git a/main/src/main/java/net/citizensnpcs/npc/ai/FlyingAStarNavigationStrategy.java b/main/src/main/java/net/citizensnpcs/npc/ai/FlyingAStarNavigationStrategy.java index 66ea346f9..e42abd665 100644 --- a/main/src/main/java/net/citizensnpcs/npc/ai/FlyingAStarNavigationStrategy.java +++ b/main/src/main/java/net/citizensnpcs/npc/ai/FlyingAStarNavigationStrategy.java @@ -95,7 +95,8 @@ public class FlyingAStarNavigationStrategy extends AbstractPathStrategy { } else { vector = plan.getCurrentVector(); if (parameters.debug()) { - plan.debug(); + Util.sendBlockChanges(plan.getBlocks(npc.getEntity().getWorld()), + Util.getFallbackMaterial("DANDELION", "YELLOW_FLOWER")); } } planned = true; @@ -104,7 +105,7 @@ public class FlyingAStarNavigationStrategy extends AbstractPathStrategy { @Override public void stop() { if (plan != null && parameters.debug()) { - plan.debugEnd(); + Util.sendBlockChanges(plan.getBlocks(npc.getEntity().getWorld()), null); } plan = null; } diff --git a/main/src/main/java/net/citizensnpcs/npc/skin/Skin.java b/main/src/main/java/net/citizensnpcs/npc/skin/Skin.java index e125802c6..c41d2bf63 100644 --- a/main/src/main/java/net/citizensnpcs/npc/skin/Skin.java +++ b/main/src/main/java/net/citizensnpcs/npc/skin/Skin.java @@ -184,7 +184,7 @@ public class Skin { break; } fetchRetries++; - long delay = Setting.NPC_SKIN_RETRY_DELAY.asLong(); + long delay = Setting.NPC_SKIN_RETRY_DELAY.asTicks(); retryTask = Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), new Runnable() { @Override public void run() { diff --git a/main/src/main/java/net/citizensnpcs/trait/CommandTrait.java b/main/src/main/java/net/citizensnpcs/trait/CommandTrait.java index e776dcbcd..85ad76de9 100644 --- a/main/src/main/java/net/citizensnpcs/trait/CommandTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/CommandTrait.java @@ -1,5 +1,6 @@ package net.citizensnpcs.trait; +import java.time.Duration; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -206,14 +207,18 @@ public class CommandTrait extends Trait { } private String describe(NPCCommand command) { - String output = "
- " + command.command + " [" - + StringHelper.wrap( - command.cooldown != 0 ? command.cooldown : Setting.NPC_COMMAND_GLOBAL_COMMAND_DELAY.asLong()) - + "s] [-]"; + String output = Messaging.tr(Messages.COMMAND_DESCRIBE_TEMPLATE, command.command, StringHelper.wrap( + command.cooldown != 0 ? command.cooldown : Setting.NPC_COMMAND_GLOBAL_COMMAND_COOLDOWN.asSeconds()), + command.id); if (command.globalCooldown > 0) { output += "[global " + StringHelper.wrap(command.globalCooldown) + "s]"; } + if (command.delay > 0) { + output += "[delay " + StringHelper.wrap(command.delay) + "t]"; + } + if (command.n > 0) { + output += "[" + StringHelper.wrap(command.n) + " uses]"; + } if (command.op) { output += " -o"; } @@ -568,6 +573,10 @@ public class CommandTrait extends Trait { return this; } + public NPCCommandBuilder cooldown(Duration cd) { + return cooldown((int) TimeUnit.SECONDS.convert(cd)); + } + public NPCCommandBuilder cooldown(int cooldown) { this.cooldown = cooldown; return this; @@ -578,6 +587,10 @@ public class CommandTrait extends Trait { return this; } + public NPCCommandBuilder globalCooldown(Duration cd) { + return globalCooldown((int) TimeUnit.SECONDS.convert(cd)); + } + public NPCCommandBuilder globalCooldown(int cooldown) { this.globalCooldown = cooldown; return this; @@ -651,7 +664,7 @@ public class CommandTrait extends Trait { return false; } } - long globalDelay = Setting.NPC_COMMAND_GLOBAL_COMMAND_DELAY.asLong(); + long globalDelay = Setting.NPC_COMMAND_GLOBAL_COMMAND_COOLDOWN.asSeconds(); long currentTimeSec = System.currentTimeMillis() / 1000; String commandKey = command.getEncodedKey(); if (lastUsed.containsKey(commandKey)) { @@ -701,7 +714,7 @@ public class CommandTrait extends Trait { commandKeys.add(commandKey); Number number = lastUsed.get(commandKey); if (number != null && number.longValue() + (command.cooldown != 0 ? command.cooldown - : Setting.NPC_COMMAND_GLOBAL_COMMAND_DELAY.asLong()) <= currentTimeSec) { + : Setting.NPC_COMMAND_GLOBAL_COMMAND_COOLDOWN.asSeconds()) <= currentTimeSec) { lastUsed.remove(commandKey); } if (globalCooldowns != null) { @@ -731,7 +744,7 @@ public class CommandTrait extends Trait { public static boolean requiresTracking(NPCCommand command) { return command.globalCooldown > 0 || command.cooldown > 0 || command.n > 0 || (command.perms != null && command.perms.size() > 0) - || Setting.NPC_COMMAND_GLOBAL_COMMAND_DELAY.asLong() > 0; + || Setting.NPC_COMMAND_GLOBAL_COMMAND_COOLDOWN.asSeconds() > 0; } } diff --git a/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java b/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java index b1ac2b678..fce5515cd 100644 --- a/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java @@ -269,7 +269,8 @@ public class HologramTrait extends Trait { || currentLoc.distance(npc.getStoredLocation()) >= 0.001 || lastNameplateVisible != nameplateVisible || Math.abs(lastEntityHeight - getEntityHeight()) >= 0.05; boolean updateName = false; - if (t++ >= Setting.HOLOGRAM_UPDATE_RATE_TICKS.asInt() + Util.getFastRandom().nextInt(3) /* add some jitter */) { + if (t++ >= Setting.HOLOGRAM_UPDATE_RATE.asTicks() + + Util.getFastRandom().nextInt(3) /* add some jitter */) { t = 0; updateName = true; } diff --git a/main/src/main/java/net/citizensnpcs/trait/LookClose.java b/main/src/main/java/net/citizensnpcs/trait/LookClose.java index d829558c3..7a2a2f0f9 100644 --- a/main/src/main/java/net/citizensnpcs/trait/LookClose.java +++ b/main/src/main/java/net/citizensnpcs/trait/LookClose.java @@ -51,7 +51,7 @@ public class LookClose extends Trait implements Toggleable { @Persist("perplayer") private boolean perPlayer; @Persist - private int randomLookDelay = Setting.DEFAULT_RANDOM_LOOK_DELAY.asInt(); + private int randomLookDelay = Setting.DEFAULT_RANDOM_LOOK_DELAY.asTicks(); @Persist private float[] randomPitchRange = { 0, 0 }; @Persist diff --git a/main/src/main/java/net/citizensnpcs/trait/SkinTrait.java b/main/src/main/java/net/citizensnpcs/trait/SkinTrait.java index a9a1310ec..59cd32241 100644 --- a/main/src/main/java/net/citizensnpcs/trait/SkinTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/SkinTrait.java @@ -36,6 +36,7 @@ public class SkinTrait extends Trait { if (skinName == null) return; String filled = ChatColor.stripColor(Placeholders.replace(skinName, null, npc).toLowerCase()); + System.out.println(skinName + " " + filled + " " + filledPlaceholder); if (!filled.equalsIgnoreCase(skinName) && !filled.equalsIgnoreCase(filledPlaceholder)) { filledPlaceholder = filled; if (update) { @@ -97,7 +98,7 @@ public class SkinTrait extends Trait { public void run() { if (timer-- > 0) return; - timer = Setting.PLACEHOLDER_SKIN_UPDATE_FREQUENCY.asInt(); + timer = Setting.PLACEHOLDER_SKIN_UPDATE_FREQUENCY.asTicks(); checkPlaceholder(true); } diff --git a/main/src/main/java/net/citizensnpcs/trait/text/Text.java b/main/src/main/java/net/citizensnpcs/trait/text/Text.java index 058badd6a..6d74f1bc9 100644 --- a/main/src/main/java/net/citizensnpcs/trait/text/Text.java +++ b/main/src/main/java/net/citizensnpcs/trait/text/Text.java @@ -225,7 +225,7 @@ public class Text extends Trait implements Runnable, Listener { if (speechBubbles) { HologramTrait trait = npc.getOrAddTrait(HologramTrait.class); trait.addTemporaryLine(Placeholders.replace(text.get(index), player), - Setting.DEFAULT_TEXT_SPEECH_BUBBLE_TICKS.asInt()); + Setting.DEFAULT_TEXT_SPEECH_BUBBLE_DURATION.asTicks()); } else { npc.getDefaultSpeechController().speak(new SpeechContext(text.get(index), player)); } @@ -281,7 +281,7 @@ public class Text extends Trait implements Runnable, Listener { int delay = this.delay == -1 ? Setting.DEFAULT_TEXT_DELAY_MIN.asInt() + Util.getFastRandom() - .nextInt(Setting.DEFAULT_TEXT_DELAY_MAX.asInt() - Setting.DEFAULT_TEXT_DELAY_MIN.asInt()) + .nextInt(Setting.DEFAULT_TEXT_DELAY_MAX.asTicks() - Setting.DEFAULT_TEXT_DELAY_MIN.asTicks()) : this.delay; if (delay <= 0) return; diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/FoxTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/FoxTrait.java index b5283365c..edd7aff92 100644 --- a/main/src/main/java/net/citizensnpcs/trait/versioned/FoxTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/FoxTrait.java @@ -86,29 +86,33 @@ public class FoxTrait extends Trait { permission = "citizens.npc.fox") @Requirements(selected = true, ownership = true, types = EntityType.FOX) public static void fox(CommandContext args, CommandSender sender, NPC npc, @Flag("sleeping") Boolean sleeping, - @Flag("sitting") Boolean sitting, @Flag("crouching") Boolean crouching) throws CommandException { + @Flag("sitting") Boolean sitting, @Flag("crouching") Boolean crouching, + @Flag(value = "type", completions = { "RED", "SNOW" }) String rawtype) throws CommandException { FoxTrait trait = npc.getOrAddTrait(FoxTrait.class); String output = ""; - if (args.hasValueFlag("type")) { + if (rawtype != null) { Fox.Type type = Util.matchEnum(Fox.Type.values(), args.getFlag("type")); if (type == null) { throw new CommandUsageException( Messaging.tr(Messages.INVALID_FOX_TYPE, Util.listValuesPretty(Fox.Type.values())), null); } trait.setType(type); - output += ' ' + Messaging.tr(Messages.FOX_TYPE_SET, args.getFlag("type")); + output += ' ' + Messaging.tr(Messages.FOX_TYPE_SET, args.getFlag("type"), npc.getName()); } if (sleeping != null) { trait.setSleeping(sleeping); - output += ' ' + Messaging.tr(sleeping ? Messages.FOX_SLEEPING_SET : Messages.FOX_SLEEPING_UNSET); + output += ' ' + + Messaging.tr(sleeping ? Messages.FOX_SLEEPING_SET : Messages.FOX_SLEEPING_UNSET, npc.getName()); } if (sitting != null) { trait.setSitting(sitting); - output += ' ' + Messaging.tr(sitting ? Messages.FOX_SITTING_SET : Messages.FOX_SITTING_UNSET); + output += ' ' + + Messaging.tr(sitting ? Messages.FOX_SITTING_SET : Messages.FOX_SITTING_UNSET, npc.getName()); } if (crouching != null) { trait.setCrouching(crouching); - output += ' ' + Messaging.tr(crouching ? Messages.FOX_CROUCHING_SET : Messages.FOX_CROUCHING_UNSET); + output += ' ' + Messaging.tr(crouching ? Messages.FOX_CROUCHING_SET : Messages.FOX_CROUCHING_UNSET, + npc.getName()); } if (!output.isEmpty()) { Messaging.send(sender, output.trim()); diff --git a/main/src/main/java/net/citizensnpcs/util/Messages.java b/main/src/main/java/net/citizensnpcs/util/Messages.java index 7fdd89a42..e1e499a6d 100644 --- a/main/src/main/java/net/citizensnpcs/util/Messages.java +++ b/main/src/main/java/net/citizensnpcs/util/Messages.java @@ -62,6 +62,7 @@ public class Messages { public static final String COMMAND_ADDED = "citizens.commands.npc.command.command-added"; public static final String COMMAND_AGE_HELP = "citizens.commands.npc.age.help"; public static final String COMMAND_COST_SET = "citizens.commands.npc.command.cost-set"; + public static final String COMMAND_DESCRIBE_TEMPLATE = "citizens.commands.npc.command.describe-format"; public static final String COMMAND_EXPERIENCE_COST_SET = "citizens.commands.npc.command.experience-cost-set"; public static final String COMMAND_HELP_HEADER = "citizens.commands.help.header"; public static final String COMMAND_HIDE_ERROR_MESSAGES_SET = "citizens.commands.npc.command.hide-error-messages-set"; @@ -304,6 +305,8 @@ public class Messages { public static final String PATHFINDING_OPTIONS_AVOID_WATER_UNSET = "citizens.commands.npc.pathopt.avoid-water-unset"; public static final String PATHFINDING_OPTIONS_DISTANCE_MARGIN_SET = "citizens.commands.npc.pathopt.distance-margin-set"; public static final String PATHFINDING_OPTIONS_FALLING_DISTANCE_SET = "citizens.commands.npc.pathopt.falling-distance-set"; + public static final String PATHFINDING_OPTIONS_OPEN_DOORS_SET = "citizens.commands.npc.pathopt.open-doors-set"; + public static final String PATHFINDING_OPTIONS_OPEN_DOORS_UNSET = "citizens.commands.npc.pathopt.avoid-water-set"; public static final String PATHFINDING_OPTIONS_PATH_DISTANCE_MARGIN_SET = "citizens.commands.npc.pathopt.path-distance-margin-set"; public static final String PATHFINDING_OPTIONS_STATIONARY_TICKS_SET = "citizens.commands.npc.pathopt.stationary-ticks-set"; public static final String PATHFINDING_OPTIONS_USE_NEW_FINDER = "citizens.commands.npc.pathopt.use-new-finder"; @@ -318,6 +321,10 @@ public class Messages { public static final String PIGLIN_DANCING_SET = "citizens.commands.npc.piglin.dancing-set"; public static final String PIGLIN_DANCING_UNSET = "citizens.commands.npc.piglin.dancing-unset"; public static final String PLAYER_NOT_FOUND_FOR_SPAWN = "citizens.commands.npc.create.no-player-for-spawn"; + public static final String PLAYERFILTER_GROUP_HIDDEN = "citizens.commands.npc.playerfilter.hidden-group"; + public static final String PLAYERFILTER_GROUP_ONLY_ADDED = "citizens.commands.npc.playerfilter.only-added-group"; + public static final String PLAYERFILTER_GROUP_UNHIDDEN = "citizens.commands.npc.playerfilter.unhidden-group"; + public static final String PLAYERFILTER_PLAYER_CLEARED = "citizens.commands.npc.playerfilter.cleared"; public static final String PLAYERFILTER_PLAYER_HIDDEN = "citizens.commands.npc.playerfilter.hidden"; public static final String PLAYERFILTER_PLAYER_ONLY_ADDED = "citizens.commands.npc.playerfilter.only-added"; public static final String PLAYERFILTER_PLAYER_UNHIDDEN = "citizens.commands.npc.playerfilter.unhidden"; diff --git a/main/src/main/java/net/citizensnpcs/util/NMS.java b/main/src/main/java/net/citizensnpcs/util/NMS.java index 381ee8993..2322a824c 100644 --- a/main/src/main/java/net/citizensnpcs/util/NMS.java +++ b/main/src/main/java/net/citizensnpcs/util/NMS.java @@ -34,6 +34,7 @@ import org.bukkit.util.Vector; import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfileRepository; +import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.ai.NavigatorParameters; import net.citizensnpcs.api.astar.pathfinder.SwimmingExaminer; import net.citizensnpcs.api.command.CommandManager; @@ -133,6 +134,13 @@ public class NMS { return BRIDGE.getDestination(entity); } + public static int getFallDistance(NPC npc, int def) { + return npc == null ? def + : npc.data().get(NPC.Metadata.PATHFINDER_FALL_DISTANCE, + Setting.PATHFINDER_FALL_DISTANCE.asInt() != -1 ? Setting.PATHFINDER_FALL_DISTANCE.asInt() + : def); + } + public static Field getField(Class clazz, String field) { return getField(clazz, field, true); } @@ -766,7 +774,6 @@ public class NMS { private static Object UNSAFE; private static MethodHandle UNSAFE_FIELD_OFFSET; private static MethodHandle UNSAFE_PUT_OBJECT; - private static MethodHandle UNSAFE_STATIC_FIELD_OFFSET; static { diff --git a/main/src/main/java/net/citizensnpcs/util/Util.java b/main/src/main/java/net/citizensnpcs/util/Util.java index 3481ec1c1..9bee690be 100644 --- a/main/src/main/java/net/citizensnpcs/util/Util.java +++ b/main/src/main/java/net/citizensnpcs/util/Util.java @@ -1,12 +1,14 @@ package net.citizensnpcs.util; import java.text.DecimalFormat; +import java.time.Duration; import java.util.Arrays; import java.util.EnumSet; import java.util.List; import java.util.Random; import java.util.Set; import java.util.UUID; +import java.util.concurrent.TimeUnit; import java.util.function.Function; import org.bukkit.Bukkit; @@ -336,6 +338,10 @@ public class Util { TWO_DIGIT_DECIMAL.format(to.getYaw()), TWO_DIGIT_DECIMAL.format(to.getPitch())); } + public static String rawtype(Enum[] values) { + return "" + Joiner.on(", ").join(values).toLowerCase(); + } + public static void runCommand(NPC npc, Player clicker, String command, boolean op, boolean player) { List split = Splitter.on(' ').omitEmptyStrings().trimResults().limit(2).splitToList(command); String bungeeServer = split.size() == 2 && split.get(0).equalsIgnoreCase("server") ? split.get(1) : null; @@ -380,6 +386,23 @@ public class Util { } } + public static void sendBlockChanges(List blocks, Material type) { + if (blocks.isEmpty()) + return; + Location loc = new Location(null, 0, 0, 0); + for (Player player : blocks.get(0).getWorld().getPlayers()) { + for (Block block : blocks) { + if (type != null) { + player.sendBlockChange(loc, type, (byte) 0); + } else if (SpigotUtil.isUsing1_13API()) { + player.sendBlockChange(block.getLocation(loc), block.getBlockData()); + } else { + player.sendBlockChange(block.getLocation(loc), block.getType(), block.getData()); + } + } + } + } + /** * Sets the entity's yaw and pitch directly including head yaw. */ @@ -387,10 +410,13 @@ public class Util { NMS.look(entity, yaw, pitch); } + public static int toTicks(Duration delay) { + return (int) TimeUnit.MILLISECONDS.convert(delay) / 50; + } + private static final Location AT_LOCATION = new Location(null, 0, 0, 0); private static final Scoreboard DUMMY_SCOREBOARD = Bukkit.getScoreboardManager().getNewScoreboard(); private static String MINECRAFT_REVISION; - private static Boolean REQUIRES_CHANNEL_METADATA; private static final DecimalFormat TWO_DIGIT_DECIMAL = new DecimalFormat(); static { TWO_DIGIT_DECIMAL.setMaximumFractionDigits(2); diff --git a/main/src/main/resources/messages_en.properties b/main/src/main/resources/messages_en.properties index de8826908..812dc2738 100644 --- a/main/src/main/resources/messages_en.properties +++ b/main/src/main/resources/messages_en.properties @@ -66,6 +66,7 @@ citizens.commands.npc.command.left-hand-header=Commands to run on [[left click]] citizens.commands.npc.command.right-hand-header=Commands to run on [[right click]]: citizens.commands.npc.command.command-removed=Command [[{0}]] removed. citizens.commands.npc.command.command-added=Command [[{0}]] added with id [[{1}]]. +citizens.commands.npc.command.describe-format=
- {0} [{1}s] [-] citizens.commands.npc.command.help=
Use the [[-l]] flag to make the command run on left click, [[-r]] on right click (default).
Set the per-player cooldown before the command can be used again using [[--cooldown]] (in [[seconds]]).
Set the server-wide cooldown in seconds using [[--gcooldown]].
[[--delay]] will wait the specified amount in [[ticks]] before executing the command.
[[--permissions]] will set the command to require specific permissions (separate multiple with commas).
[[--n]] will only let the player run the command that number of times.
Use [[-o]] to temporarily execute the command as an op and [[-p]] to run the command as the clicking player instead of the server.
To give the player temporary permissions instead of op, use [[/npc command permissions]].
Set the cost of each click with [[/npc command cost/expcost/itemcost]].
Commands can be executed one by one instead of all at once by using [[/npc command sequential]]. citizens.commands.npc.command.unknown-id=Unknown command id [[{0}]] for this NPC. citizens.commands.npc.command.temporary-permissions-set=Temporary permissions set to [[{0}]]. @@ -206,6 +207,8 @@ citizens.commands.npc.passive.unset=[[{0}]] will now damage entities. citizens.commands.npc.pathfindingrange.set=Pathfinding range set to [[{0}]]. citizens.commands.npc.parrot.invalid-variant=Invalid parrot variant. Valid variants are [[{0}]]. citizens.commands.npc.parrot.variant-set=Variant set to [[{0}]]. +citizens.commands.npc.pathopt.open-doors-set=[[{0}]] will now try to open doors. +citizens.commands.npc.pathopt.open-doors-unset=[[{0}]] will no longer try to open doors. citizens.commands.npc.pathopt.avoid-water-set=[[{0}]] will now avoid water. citizens.commands.npc.pathopt.avoid-water-unset=[[{0}]] will no longer avoid water. citizens.commands.npc.pathopt.stationary-ticks-set=[[{0}]]''s maximum stationary ticks set to [[{1}]]. @@ -220,9 +223,13 @@ citizens.commands.npc.pausepathfinding.rightclick-set=[[{0}]] will now pause pat citizens.commands.npc.pausepathfinding.rightclick-unset=[[{0}]] will no longer pause pathfinding on right click. citizens.commands.npc.playerlist.added=Added [[{0}]] to the player list. citizens.commands.npc.playerlist.removed=Removed [[{0}]] from the player list. +citizens.commands.npc.playerfilter.cleared=[[{0}]]''s filter cleared. citizens.commands.npc.playerfilter.only-added=[[{0}]] added to the list of players that will be allowed to see [[{1}]]. citizens.commands.npc.playerfilter.hidden=[[{0}]] added to the list of players hidden from [[{1}]]. citizens.commands.npc.playerfilter.unhidden=[[{0}]] will now be allowed to see [[{1}]]. +citizens.commands.npc.playerfilter.only-added-group=[[{0}]] added to the list of groups that will be allowed to see [[{1}]]. +citizens.commands.npc.playerfilter.hidden-group=[[{0}]] added to the list of groups hidden from [[{1}]]. +citizens.commands.npc.playerfilter.unhidden-group=[[{0}]] will now be allowed to see [[{1}]]. citizens.commands.npc.polarbear.rearing-set=[[{0}]] is now rearing. citizens.commands.npc.polarbear.rearing-unset=[[{0}]] is no longer rearing. citizens.commands.npc.pickupitems.set=[[{0}]] will now pickup items. 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 a7db500d7..f4e8e4ec7 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 @@ -71,6 +71,11 @@ public class BatController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 e4990d506..c15d86345 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 @@ -68,6 +68,11 @@ public class BlazeController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 8592618b2..bf1f2c759 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 @@ -77,6 +77,11 @@ public class CaveSpiderController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 71bf99ddc..9872d81ed 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 @@ -86,6 +86,11 @@ public class ChickenController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 c306669d0..c43bdfb2f 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 @@ -101,6 +101,11 @@ public class CowController extends MobEntityController { return super.a(entityhuman, enumhand, itemstack); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 197184eeb..1b732c9ed 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 @@ -53,6 +53,7 @@ public class CreeperController extends MobEntityController { public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(World world) { @@ -87,6 +88,11 @@ public class CreeperController extends MobEntityController { return npc == null || !npc.isProtected() ? super.a(entityhuman, enumhand, itemstack) : false; } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 491ac062b..fc04547eb 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 @@ -68,6 +68,11 @@ public class EnderDragonController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 9264e811e..ed996e4ca 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 @@ -77,6 +77,11 @@ public class EndermanController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 630df6335..28b517c5e 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 @@ -77,6 +77,11 @@ public class EndermiteController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 c2f851e6e..ef74154c6 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 @@ -54,6 +54,11 @@ public class GhastController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 9e55e8acc..357515f37 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 @@ -63,6 +63,11 @@ public class GiantController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 a499f5a99..d670ba725 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 @@ -63,6 +63,11 @@ public class GuardianController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 da89539ca..847916636 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 @@ -83,6 +83,11 @@ public class HorseController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 1e8c5abbb..180aa260b 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 @@ -63,6 +63,11 @@ public class IronGolemController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 01863a7da..578cbe45c 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 @@ -69,6 +69,11 @@ public class MagmaCubeController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 cd86da5b2..9538d49fb 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 @@ -82,6 +82,11 @@ public class MushroomCowController extends MobEntityController { return false; } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 bdb0eac3f..6bb3d8927 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 @@ -72,6 +72,11 @@ public class OcelotController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 97b63b53b..8b34b1048 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 @@ -73,6 +73,11 @@ public class PigController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 79080bc4a..2e694c906 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 @@ -63,6 +63,11 @@ public class PigZombieController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 ff195b46a..338247806 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 @@ -63,6 +63,11 @@ public class PolarBearController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 e2b754ddf..dfdf78abf 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 @@ -73,6 +73,11 @@ public class RabbitController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 a58dedee9..c5aa21890 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 @@ -72,6 +72,11 @@ public class SheepController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 bb54e7e59..e4ac76a5f 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 @@ -64,6 +64,11 @@ public class ShulkerController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 0b392db2b..6d7d5adaa 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 @@ -63,6 +63,11 @@ public class SilverfishController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 e63d7f370..13db4ecce 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 @@ -63,6 +63,11 @@ public class SkeletonController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 e93304499..d1b5a7b47 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 @@ -69,6 +69,11 @@ public class SlimeController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 a970a1252..c4ad2714f 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 @@ -63,6 +63,11 @@ public class SnowmanController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 89cf21077..aaa312b15 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 @@ -63,6 +63,11 @@ public class SpiderController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 20c6357da..9f62a6216 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 @@ -63,6 +63,11 @@ public class SquidController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 6a2d5d301..604fa5f29 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 @@ -39,6 +39,7 @@ public class VillagerController extends MobEntityController { public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(World world) { @@ -85,6 +86,11 @@ public class VillagerController extends MobEntityController { return super.a(entityhuman, enumhand, itemstack); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 0a6e59700..116b6ac46 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 @@ -63,6 +63,11 @@ public class WitchController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 ee58c2a2c..d4f00fce4 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 @@ -54,6 +54,11 @@ public class WitherController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 67ef5eae1..5feea0b44 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 @@ -74,6 +74,11 @@ public class WolfController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 7396ad12b..9cdc73f8e 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 @@ -63,6 +63,11 @@ public class ZombieController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bV() { return NMSImpl.getSoundEffect(npc, super.bV(), NPC.Metadata.DEATH_SOUND); 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 f4b020a09..a36f473d8 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 @@ -75,6 +75,7 @@ import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.LocationLookup.PerPlayerMetadata; import net.citizensnpcs.api.ai.NavigatorParameters; import net.citizensnpcs.api.ai.event.CancelReason; +import net.citizensnpcs.api.astar.pathfinder.DoorExaminer; import net.citizensnpcs.api.command.CommandManager; import net.citizensnpcs.api.command.exception.CommandException; import net.citizensnpcs.api.gui.ForwardingInventory; @@ -332,6 +333,7 @@ public class NMSImpl implements NMSBridge { handle.dead = false; tracker.updatePlayer(p); tracker.trackedPlayers.add(p); + handle.dead = true; } @Override @@ -351,7 +353,9 @@ public class NMSImpl implements NMSBridge { for (EntityPlayer link : Lists.newArrayList(tracker.trackedPlayers)) { Player entity = link.getBukkitEntity(); unlink(entity); - callback.accept(entity); + if (callback != null) { + callback.accept(entity); + } } } }; @@ -594,6 +598,7 @@ public class NMSImpl implements NMSBridge { ((EntityInsentient) raw).a(PathType.WATER, oldWater + 1F); } } + navigation.q().b(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; CancelReason reason; @@ -623,8 +628,6 @@ public class NMSImpl implements NMSBridge { @Override public boolean update() { if (params.speed() != lastSpeed && lastSpeed > 0) { - Messaging.idebug( - () -> "Repathfinding " + ((NPCHolder) entity).getNPC().getId() + " due to speed change"); Entity handle = getHandle(entity); float oldWidth = handle.width; if (handle instanceof EntityHorse) { 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 7522ebf33..6750d3081 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 @@ -3,7 +3,6 @@ package net.citizensnpcs.nms.v1_10_R1.util; import java.util.EnumSet; import java.util.HashSet; -import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.nms.v1_10_R1.entity.EntityHumanNPC; import net.minecraft.server.v1_10_R1.AxisAlignedBB; import net.minecraft.server.v1_10_R1.Block; @@ -242,7 +241,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { int i = 0; while ((paramInt2 > 0) && (localPathType == PathType.OPEN)) { paramInt2--; - if (i++ >= Setting.MC_NAVIGATION_MAX_FALL_DISTANCE.asInt()) { + if (i++ >= b.aY()) { return null; } localPathType = a(this.b, paramInt1, paramInt2, paramInt3); 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 730124fd2..a7bf16d3f 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 @@ -29,9 +29,9 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { if (entityplayer instanceof EntityHumanNPC) return; Entity tracker = getTracker(this); - if (tracker instanceof NPCHolder && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity())) - return; - if (tracker.dead || tracker.getBukkitEntity().getType() != EntityType.PLAYER) + if ((tracker instanceof NPCHolder + && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity())) || tracker.dead + || tracker.getBukkitEntity().getType() != EntityType.PLAYER) return; if (entityplayer != tracker && c(entityplayer)) { if (!this.trackedPlayers.contains(entityplayer) 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 1f0c26ce1..923f6b1d6 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 @@ -71,6 +71,11 @@ public class BatController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 52841f0c1..2528c7a67 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 @@ -68,6 +68,11 @@ public class BlazeController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 c578f8059..f304fec30 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 @@ -77,6 +77,11 @@ public class CaveSpiderController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 c652d22ad..bec7bded2 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 @@ -86,6 +86,11 @@ public class ChickenController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 d6eff99b8..cfef7cb6b 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 @@ -101,6 +101,11 @@ public class CowController extends MobEntityController { return super.a(entityhuman, enumhand); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 90456771e..d69a7dca6 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 @@ -50,6 +50,7 @@ public class CreeperController extends MobEntityController { public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(World world) { @@ -79,6 +80,11 @@ public class CreeperController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 fb460a7cc..bcd15c6d7 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 @@ -68,6 +68,11 @@ public class EnderDragonController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 1dc0a32c1..d9ef94da8 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 @@ -77,6 +77,11 @@ public class EndermanController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 ccca6dd89..a8c05cd49 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 @@ -77,6 +77,11 @@ public class EndermiteController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 b1cfc13ae..bd513bdfd 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 @@ -63,6 +63,11 @@ public class EvokerController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 374dc0ac7..02ab8de67 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 @@ -54,6 +54,11 @@ public class GhastController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 25fc5059c..692cc97a1 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 @@ -63,6 +63,11 @@ public class GiantController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 2cffff5cb..915d05031 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 @@ -63,6 +63,11 @@ public class GuardianController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 266ff2cb9..d37c1e810 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 @@ -63,6 +63,11 @@ public class GuardianElderController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 8799ade11..4f66177e3 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 @@ -83,6 +83,11 @@ public class HorseController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 08e00e3e0..53d87823b 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 @@ -83,6 +83,11 @@ public class HorseDonkeyController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 c864c1e2e..c30fff8dc 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 @@ -83,6 +83,11 @@ public class HorseMuleController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 e0c6f2680..8fb80529c 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 @@ -84,6 +84,11 @@ public class HorseSkeletonController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 2534d6bc7..0267197a1 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 @@ -84,6 +84,11 @@ public class HorseZombieController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 1c60e17d3..08579db8a 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 @@ -63,6 +63,11 @@ public class IronGolemController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 141b777e2..fab25efc3 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 @@ -83,6 +83,11 @@ public class LlamaController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 bfe8e9673..af78c79d7 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 @@ -77,6 +77,11 @@ public class MagmaCubeController extends MobEntityController { } } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 32bbcb99a..122a7b37b 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 @@ -81,6 +81,11 @@ public class MushroomCowController extends MobEntityController { return false; } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 0723cc6ed..315c9870b 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 @@ -72,6 +72,11 @@ public class OcelotController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 050e5355c..d4912c5f3 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 @@ -73,6 +73,11 @@ public class PigController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 66908e2da..67a0085e3 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 @@ -63,6 +63,11 @@ public class PigZombieController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 23babbd7b..b366ebc87 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 @@ -63,6 +63,11 @@ public class PolarBearController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 6a598e76b..7ad44f09e 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 @@ -73,6 +73,11 @@ public class RabbitController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 aea183b01..be44e5d68 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 @@ -72,6 +72,11 @@ public class SheepController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 d78317176..fe204a72d 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 @@ -74,6 +74,11 @@ public class ShulkerController extends MobEntityController { } } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 dd70452fe..67a24d944 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 @@ -63,6 +63,11 @@ public class SilverfishController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 1f1b2132f..9008560e1 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 @@ -63,6 +63,11 @@ public class SkeletonController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 5d6ccd47b..64e7cdd8b 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 @@ -63,6 +63,11 @@ public class SkeletonStrayController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 1b22b7fb4..284ab964b 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 @@ -63,6 +63,11 @@ public class SkeletonWitherController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 0dce16805..172381330 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 @@ -77,6 +77,11 @@ public class SlimeController extends MobEntityController { } } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 9e1c58cb8..93a8d1797 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 @@ -63,6 +63,11 @@ public class SnowmanController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 5fa6f5f3f..d3bc22e7b 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 @@ -63,6 +63,11 @@ public class SpiderController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 b98b73ac6..79721aa3f 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 @@ -63,6 +63,11 @@ public class SquidController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 6af541bef..f4a0b8f7e 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 @@ -57,6 +57,11 @@ public class VexController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 70f8e948d..8d7b2034a 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 @@ -41,6 +41,7 @@ public class VillagerController extends MobEntityController { public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(World world) { @@ -91,6 +92,11 @@ public class VillagerController extends MobEntityController { return super.a(entityhuman, enumhand); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 515bdf495..7e4392a41 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 @@ -72,6 +72,11 @@ public class VindicatorController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 a9ae2ed2f..63e4afc88 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 @@ -63,6 +63,11 @@ public class WitchController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 531f6635c..1f5f29635 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 @@ -54,6 +54,11 @@ public class WitherController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 50bdd96bc..9cf304b70 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 @@ -74,6 +74,11 @@ public class WolfController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 e83258773..3fae2c8a4 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 @@ -63,6 +63,11 @@ public class ZombieController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 d12b91239..aab2e6550 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 @@ -63,6 +63,11 @@ public class ZombieHuskController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override protected SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 2e79619b4..675028552 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 @@ -63,6 +63,11 @@ public class ZombieVillagerController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aY() { + return NMS.getFallDistance(npc, super.aY()); + } + @Override public SoundEffect bW() { return NMSImpl.getSoundEffect(npc, super.bW(), NPC.Metadata.DEATH_SOUND); 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 b8ae11ee5..93e1d1217 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 @@ -75,6 +75,7 @@ import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.LocationLookup.PerPlayerMetadata; import net.citizensnpcs.api.ai.NavigatorParameters; import net.citizensnpcs.api.ai.event.CancelReason; +import net.citizensnpcs.api.astar.pathfinder.DoorExaminer; import net.citizensnpcs.api.command.CommandManager; import net.citizensnpcs.api.command.exception.CommandException; import net.citizensnpcs.api.gui.ForwardingInventory; @@ -353,6 +354,7 @@ public class NMSImpl implements NMSBridge { handle.dead = false; tracker.updatePlayer(p); tracker.trackedPlayers.add(p); + handle.dead = true; } @Override @@ -372,7 +374,9 @@ public class NMSImpl implements NMSBridge { for (EntityPlayer link : Lists.newArrayList(tracker.trackedPlayers)) { Player entity = link.getBukkitEntity(); unlink(entity); - callback.accept(entity); + if (callback != null) { + callback.accept(entity); + } } } }; @@ -615,10 +619,21 @@ public class NMSImpl implements NMSBridge { ((EntityInsentient) raw).a(PathType.WATER, oldWater + 1F); } } + navigation.q().b(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; CancelReason reason; + private List getBlocks(final org.bukkit.entity.Entity entity, + final NavigationAbstract navigation) { + List blocks = Lists.newArrayList(); + for (int i = 0; i < navigation.k().e(); i++) { + PathPoint pp = navigation.k().a(i); + blocks.add(entity.getWorld().getBlockAt(pp.a, pp.b, pp.c)); + } + return blocks; + } + @Override public CancelReason getCancelReason() { return reason; @@ -632,14 +647,7 @@ public class NMSImpl implements NMSBridge { @Override public void stop() { if (params.debug() && navigation.k() != null) { - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < navigation.k().d(); i++) { - PathPoint pp = navigation.k().a(i); - org.bukkit.block.Block block = new Vector(pp.a, pp.b, pp.c).toLocation(player.getWorld()) - .getBlock(); - player.sendBlockChange(block.getLocation(), block.getType(), block.getData()); - } - } + Util.sendBlockChanges(getBlocks(entity, navigation), null); } if (oldWater >= 0) { if (raw instanceof EntityPlayer) { @@ -654,8 +662,6 @@ public class NMSImpl implements NMSBridge { @Override public boolean update() { if (params.speed() != lastSpeed && lastSpeed > 0) { - Messaging.idebug( - () -> "Repathfinding " + ((NPCHolder) entity).getNPC().getId() + " due to speed change"); Entity handle = getHandle(entity); float oldWidth = handle.width; if (handle instanceof EntityHorse) { @@ -669,13 +675,7 @@ public class NMSImpl implements NMSBridge { lastSpeed = params.speed(); } if (params.debug() && !NMSImpl.isNavigationFinished(navigation)) { - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < navigation.k().d(); i++) { - PathPoint pp = navigation.k().a(i); - player.sendBlockChange(new Vector(pp.a, pp.b, pp.c).toLocation(player.getWorld()), - Material.YELLOW_FLOWER, (byte) 0); - } - } + Util.sendBlockChanges(getBlocks(entity, navigation), Material.YELLOW_FLOWER); } navigation.a(params.speed()); return NMSImpl.isNavigationFinished(navigation); 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 2f67cd19f..813e0ccef 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 @@ -5,7 +5,6 @@ import java.util.HashSet; import com.google.common.collect.Sets; -import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.nms.v1_11_R1.entity.EntityHumanNPC; import net.minecraft.server.v1_11_R1.AxisAlignedBB; import net.minecraft.server.v1_11_R1.Block; @@ -245,7 +244,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { int i = 0; while ((paramInt2 > 0) && (localPathType1 == PathType.OPEN)) { paramInt2--; - if (i++ >= Setting.MC_NAVIGATION_MAX_FALL_DISTANCE.asInt()) { + if (i++ >= b.aY()) { return null; } localPathType1 = a(this.b, paramInt1, paramInt2, paramInt3); 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 7062d0971..f372824e3 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 @@ -29,9 +29,9 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { if (entityplayer instanceof EntityHumanNPC) return; Entity tracker = getTracker(this); - if (tracker instanceof NPCHolder && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity())) - return; - if (tracker.dead || tracker.getBukkitEntity().getType() != EntityType.PLAYER) + if ((tracker instanceof NPCHolder + && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity())) || tracker.dead + || tracker.getBukkitEntity().getType() != EntityType.PLAYER) return; if (entityplayer != tracker && c(entityplayer)) { if (!this.trackedPlayers.contains(entityplayer) 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 954736db8..58ee376a5 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 @@ -72,6 +72,11 @@ public class BatController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 e24e389ae..618096729 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 @@ -69,6 +69,11 @@ public class BlazeController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 552baba34..4a5f3b775 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 @@ -87,6 +87,11 @@ public class CaveSpiderController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 8b3c450b9..3d5f797d9 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 @@ -96,6 +96,11 @@ public class ChickenController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 a16275c2a..1941fee04 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 @@ -111,6 +111,11 @@ public class CowController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 7ce62a53d..8ef87fc8e 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 @@ -51,6 +51,7 @@ public class CreeperController extends MobEntityController { public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(World world) { @@ -89,6 +90,11 @@ public class CreeperController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 cf004cfaf..94c469464 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 @@ -69,6 +69,11 @@ public class EnderDragonController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 98d533d42..d39ea897c 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 @@ -87,6 +87,11 @@ public class EndermanController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 b3921b715..c8c3d69d8 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 @@ -87,6 +87,11 @@ public class EndermiteController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 a987cdd1e..9ee4e086d 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 @@ -73,6 +73,11 @@ public class EvokerController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 fc989ba02..eab4556f0 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 @@ -55,6 +55,11 @@ public class GhastController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override public boolean cC() { return npc != null; 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 954b740ea..299312703 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 @@ -73,6 +73,11 @@ public class GiantController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 32e2c76d4..6e96f76cd 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 @@ -73,6 +73,11 @@ public class GuardianController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 02b4d3064..c1f142151 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 @@ -73,6 +73,11 @@ public class GuardianElderController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 027096c01..713c7ffb8 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 @@ -46,6 +46,7 @@ public class HorseController extends MobEntityController { public static class EntityHorseNPC extends EntityHorse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -98,6 +99,11 @@ public class HorseController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 b5b4c3e65..409a8ccf2 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 @@ -46,6 +46,7 @@ public class HorseDonkeyController extends MobEntityController { public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -98,6 +99,11 @@ public class HorseDonkeyController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 9c7832c47..f680da87e 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 @@ -46,6 +46,7 @@ public class HorseMuleController extends MobEntityController { public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -98,6 +99,11 @@ public class HorseMuleController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 0277fff29..6d311eb95 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 @@ -46,6 +46,7 @@ public class HorseSkeletonController extends MobEntityController { public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -99,6 +100,11 @@ public class HorseSkeletonController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 e5eb7cb29..02afc7615 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 @@ -46,6 +46,7 @@ public class HorseZombieController extends MobEntityController { public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -99,6 +100,11 @@ public class HorseZombieController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 54872b3fc..e3327214a 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 @@ -73,6 +73,11 @@ public class IllusionerController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 4b73d9d57..8caa73fb9 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 @@ -73,6 +73,11 @@ public class IronGolemController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 4c153a503..930313c3f 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 @@ -93,6 +93,11 @@ public class LlamaController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 f742cc57f..3d7982467 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 @@ -87,6 +87,11 @@ public class MagmaCubeController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 2f0729ada..2d980dddd 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 @@ -91,6 +91,11 @@ public class MushroomCowController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 2e4ce6fe7..f9656632c 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 @@ -82,6 +82,11 @@ public class OcelotController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 ef63321b6..ec6d21e77 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 @@ -66,6 +66,11 @@ public class ParrotController extends MobEntityController { return false; } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 818fe707d..171bb2132 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 @@ -83,6 +83,11 @@ public class PigController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 5d349b09a..8abeff6f5 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 @@ -73,6 +73,11 @@ public class PigZombieController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 1c5579e19..6e7034fc4 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 @@ -64,6 +64,11 @@ public class PolarBearController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 58e7e99cd..9625eba01 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 @@ -83,6 +83,11 @@ public class RabbitController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 628b1f74d..02dd2bc64 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 @@ -82,6 +82,11 @@ public class SheepController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 b4b13e563..d82fbdde2 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 @@ -83,6 +83,11 @@ public class ShulkerController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 8c85ed644..6bb08c019 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 @@ -73,6 +73,11 @@ public class SilverfishController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 5141e62b3..8a583854c 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 @@ -73,6 +73,11 @@ public class SkeletonController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 e78fcac1d..0cc7051e7 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 @@ -73,6 +73,11 @@ public class SkeletonStrayController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 e76254f00..cbd70604a 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 @@ -73,6 +73,11 @@ public class SkeletonWitherController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 07dc6b26e..cc6239b24 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 @@ -87,6 +87,11 @@ public class SlimeController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 2483a42f2..10084d819 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 @@ -73,6 +73,11 @@ public class SnowmanController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 dc0d87cb4..69af29a74 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 @@ -73,6 +73,11 @@ public class SpiderController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 7c931f5f4..9793ff732 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 @@ -73,6 +73,11 @@ public class SquidController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 5e5e4d64c..97acb81cc 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 @@ -58,6 +58,11 @@ public class VexController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 1e4a4c31b..0a00c576c 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 @@ -42,6 +42,7 @@ public class VillagerController extends MobEntityController { public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(World world) { @@ -101,6 +102,11 @@ public class VillagerController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 a5e65814d..21264cd91 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 @@ -82,6 +82,11 @@ public class VindicatorController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 5979b6b62..da22d2796 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 @@ -73,6 +73,11 @@ public class WitchController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 2cdfaee0d..b30ff13a8 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 @@ -55,6 +55,11 @@ public class WitherController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 c48ce747f..463c7dc23 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 @@ -84,6 +84,11 @@ public class WolfController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 5f1259d20..c88d40768 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 @@ -73,6 +73,11 @@ public class ZombieController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 812f11bc4..653c3ccbb 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 @@ -73,6 +73,11 @@ public class ZombieHuskController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override protected SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 f0b9ec050..fee562abc 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 @@ -73,6 +73,11 @@ public class ZombieVillagerController extends MobEntityController { } } + @Override + public int bg() { + return NMS.getFallDistance(npc, super.bg()); + } + @Override public SoundEffect cf() { return NMSImpl.getSoundEffect(npc, super.cf(), NPC.Metadata.DEATH_SOUND); 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 d1eaad149..958aec2cc 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 @@ -75,6 +75,7 @@ import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.LocationLookup.PerPlayerMetadata; import net.citizensnpcs.api.ai.NavigatorParameters; import net.citizensnpcs.api.ai.event.CancelReason; +import net.citizensnpcs.api.astar.pathfinder.DoorExaminer; import net.citizensnpcs.api.command.CommandManager; import net.citizensnpcs.api.command.exception.CommandException; import net.citizensnpcs.api.gui.ForwardingInventory; @@ -358,6 +359,7 @@ public class NMSImpl implements NMSBridge { handle.dead = false; tracker.updatePlayer(p); tracker.trackedPlayers.add(p); + handle.dead = true; } @Override @@ -377,7 +379,9 @@ public class NMSImpl implements NMSBridge { for (EntityPlayer link : Lists.newArrayList(tracker.trackedPlayers)) { Player entity = link.getBukkitEntity(); unlink(entity); - callback.accept(entity); + if (callback != null) { + callback.accept(entity); + } } } }; @@ -615,10 +619,21 @@ public class NMSImpl implements NMSBridge { ((EntityInsentient) raw).a(PathType.WATER, oldWater + 1F); } } + navigation.r().b(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; CancelReason reason; + private List getBlocks(final org.bukkit.entity.Entity entity, + final NavigationAbstract navigation) { + List blocks = Lists.newArrayList(); + for (int i = 0; i < navigation.l().d(); i++) { + PathPoint pp = navigation.l().a(i); + blocks.add(entity.getWorld().getBlockAt(pp.a, pp.b, pp.c)); + } + return blocks; + } + @Override public CancelReason getCancelReason() { return reason; @@ -632,14 +647,8 @@ public class NMSImpl implements NMSBridge { @Override public void stop() { if (params.debug() && navigation.l() != null) { - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < navigation.l().d(); i++) { - PathPoint pp = navigation.l().a(i); - org.bukkit.block.Block block = new Vector(pp.a, pp.b, pp.c).toLocation(player.getWorld()) - .getBlock(); - player.sendBlockChange(block.getLocation(), block.getType(), block.getData()); - } - } + List blocks = getBlocks(entity, navigation); + Util.sendBlockChanges(blocks, null); } if (oldWater >= 0) { if (raw instanceof EntityPlayer) { @@ -654,10 +663,6 @@ public class NMSImpl implements NMSBridge { @Override public boolean update() { if (params.speed() != lastSpeed) { - if (Messaging.isDebugging() && lastSpeed > 0) { - Messaging.debug( - "Repathfinding " + ((NPCHolder) entity).getNPC().getId() + " due to speed change"); - } Entity handle = getHandle(entity); float oldWidth = handle.width; if (handle instanceof EntityHorse) { @@ -671,13 +676,7 @@ public class NMSImpl implements NMSBridge { lastSpeed = params.speed(); } if (params.debug() && !NMSImpl.isNavigationFinished(navigation)) { - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < navigation.l().d(); i++) { - PathPoint pp = navigation.l().a(i); - player.sendBlockChange(new Vector(pp.a, pp.b, pp.c).toLocation(player.getWorld()), - Material.YELLOW_FLOWER, (byte) 0); - } - } + Util.sendBlockChanges(getBlocks(entity, navigation), Material.YELLOW_FLOWER); } navigation.a(params.speed()); return NMSImpl.isNavigationFinished(navigation); 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 a0f979cbd..3ab7dda1c 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 @@ -5,7 +5,6 @@ import java.util.HashSet; import com.google.common.collect.Sets; -import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.nms.v1_12_R1.entity.EntityHumanNPC; import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.Block; @@ -361,7 +360,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { int i = 0; while ((paramInt2 > 0) && (localPathType1 == PathType.OPEN)) { paramInt2--; - if (i++ >= Setting.MC_NAVIGATION_MAX_FALL_DISTANCE.asInt()) { + if (i++ >= b.bg()) { return null; } localPathType1 = pa(this.b, paramInt1, paramInt2, paramInt3); 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 386017505..9f7b59ed6 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 @@ -34,9 +34,8 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } public void updateLastPlayer() { - if (lastUpdatedPlayer == null) - return; - if (tracker.dead || lastUpdatedPlayer == null || tracker.getBukkitEntity().getType() != EntityType.PLAYER) + if ((lastUpdatedPlayer == null) || tracker.dead || lastUpdatedPlayer == null + || tracker.getBukkitEntity().getType() != EntityType.PLAYER) return; final EntityPlayer entityplayer = lastUpdatedPlayer; NMS.sendTabListAdd(entityplayer.getBukkitEntity(), (Player) tracker.getBukkitEntity()); @@ -48,15 +47,14 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { public void run() { NMS.sendTabListRemove(entityplayer.getBukkitEntity(), (Player) tracker.getBukkitEntity()); } - }, Setting.TABLIST_REMOVE_PACKET_DELAY.asInt()); + }, Setting.TABLIST_REMOVE_PACKET_DELAY.asTicks()); } @Override public void updatePlayer(final EntityPlayer entityplayer) { // prevent updates to NPC "viewers" - if (entityplayer instanceof EntityHumanNPC) - return; - if (tracker instanceof NPCHolder && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity())) + if ((entityplayer instanceof EntityHumanNPC) || (tracker instanceof NPCHolder + && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity()))) return; lastUpdatedPlayer = entityplayer; super.updatePlayer(entityplayer); 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 e12eee61f..c6d2c52bf 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 @@ -81,6 +81,11 @@ public class BatController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling 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 2882ac7a5..88fd90373 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 @@ -78,6 +78,11 @@ public class BlazeController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling 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 b3d96f8f9..0796027c1 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 @@ -96,6 +96,11 @@ public class CaveSpiderController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 6512b34be..0c1bc152b 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 @@ -107,6 +107,11 @@ public class ChickenController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 2b67f0b8c..fc662d90e 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 @@ -117,6 +117,11 @@ public class CodController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 8c16e58f8..5ee259f45 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 @@ -120,6 +120,11 @@ public class CowController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 8c73ceab2..e030cb7fd 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 @@ -55,6 +55,7 @@ public class CreeperController extends MobEntityController { public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(World world) { @@ -98,6 +99,11 @@ public class CreeperController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 4f03e5dae..4cb54118b 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 @@ -55,6 +55,7 @@ public class DolphinController extends MobEntityController { public static class EntityDolphinNPC extends EntityDolphin implements NPCHolder { private boolean inProtectedTick; + private final CitizensNPC npc; public EntityDolphinNPC(World world) { @@ -110,6 +111,11 @@ public class DolphinController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 91172a597..9cf624cbb 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 @@ -96,6 +96,11 @@ public class DrownedController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 8989dd5ef..f95063610 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 @@ -80,6 +80,11 @@ public class EnderDragonController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling 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 8c88e18a5..115079be0 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 @@ -96,6 +96,11 @@ public class EndermanController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 ca46c09c7..815cfc3e7 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 @@ -96,6 +96,11 @@ public class EndermiteController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 bbd12f39d..eb66ad227 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 @@ -82,6 +82,11 @@ public class EvokerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 98b4129f8..2225fe025 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 @@ -64,6 +64,11 @@ public class GhastController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling 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 ea3d72101..89d12a315 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 @@ -82,6 +82,11 @@ public class GiantController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 e2ca43166..2462c1082 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 @@ -84,6 +84,11 @@ public class GuardianController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 8cd50ef41..66b3746de 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 @@ -84,6 +84,11 @@ public class GuardianElderController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 fe1c92fba..b5342699a 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 @@ -50,6 +50,7 @@ public class HorseController extends MobEntityController { public static class EntityHorseNPC extends EntityHorse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -107,6 +108,11 @@ public class HorseController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public boolean bT() { if (npc != null && riding) { 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 3d65742ad..3a31e8323 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 @@ -50,6 +50,7 @@ public class HorseDonkeyController extends MobEntityController { public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -107,6 +108,11 @@ public class HorseDonkeyController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public boolean bT() { if (npc != null && riding) { 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 326c7fbb4..1dda9a14a 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 @@ -50,6 +50,7 @@ public class HorseMuleController extends MobEntityController { public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -107,6 +108,11 @@ public class HorseMuleController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public boolean bT() { if (npc != null && riding) { 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 7ea470056..222f44adf 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 @@ -50,6 +50,7 @@ public class HorseSkeletonController extends MobEntityController { public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -108,6 +109,11 @@ public class HorseSkeletonController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public boolean bT() { if (npc != null && riding) { 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 bd7761e71..e289cba45 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 @@ -50,6 +50,7 @@ public class HorseZombieController extends MobEntityController { public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -108,6 +109,11 @@ public class HorseZombieController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public boolean bT() { if (npc != null && riding) { 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 c8e272a29..348bc58de 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 @@ -82,6 +82,11 @@ public class IllusionerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 7e6bea86d..25af05d3e 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 @@ -82,6 +82,11 @@ public class IronGolemController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 45fbcdaba..2745cf8d2 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 @@ -102,6 +102,11 @@ public class LlamaController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 d1b6730e9..149332c3b 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 @@ -88,6 +88,11 @@ public class MagmaCubeController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 0b7a34be0..e0a19f3c2 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 @@ -100,6 +100,11 @@ public class MushroomCowController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 50dc07718..898053812 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 @@ -91,6 +91,11 @@ public class OcelotController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 673c04d35..3a41d767f 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 @@ -75,6 +75,11 @@ public class ParrotController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling 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 08a2b6d3c..2d2f98c92 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 @@ -93,6 +93,11 @@ public class PhantomController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 a584c14d9..00c2cfa1d 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 @@ -92,6 +92,11 @@ public class PigController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 19074dd4e..89bc14f17 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 @@ -82,6 +82,11 @@ public class PigZombieController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 fe13a691f..56d6527cb 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 @@ -73,6 +73,11 @@ public class PolarBearController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling 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 3e10e864a..c96e5e6b2 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 @@ -104,6 +104,11 @@ public class PufferFishController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 5444139dc..72fd171c3 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 @@ -92,6 +92,11 @@ public class RabbitController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 bc53a2016..bafb8087f 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 @@ -103,6 +103,11 @@ public class SalmonController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 185a19cca..d57610bb7 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 @@ -91,6 +91,11 @@ public class SheepController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 76f0e471b..b4f8736da 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 @@ -85,6 +85,11 @@ public class ShulkerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 3a0c61fde..ed2c861b8 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 @@ -82,6 +82,11 @@ public class SilverfishController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 df6d42577..dd16a7d88 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 @@ -82,6 +82,11 @@ public class SkeletonController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 ad73ab9e7..37e9b7c05 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 @@ -82,6 +82,11 @@ public class SkeletonStrayController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 35ee2d84a..a4c109eed 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 @@ -82,6 +82,11 @@ public class SkeletonWitherController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 b47342116..a52b51903 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 @@ -88,6 +88,11 @@ public class SlimeController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 6c56165d9..69972646b 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 @@ -82,6 +82,11 @@ public class SnowmanController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 2d224deba..1b0e61c12 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 @@ -82,6 +82,11 @@ public class SpiderController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 dfd3ee27c..349463d81 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 @@ -82,6 +82,11 @@ public class SquidController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 4bd708d6b..a2a360269 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 @@ -103,6 +103,11 @@ public class TropicalFishController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 536c4b976..97640adb4 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 @@ -91,6 +91,11 @@ public class TurtleController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 418c9eabb..a610f0369 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 @@ -67,6 +67,11 @@ public class VexController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling 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 fa8dc062d..9e8a20ed7 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 @@ -46,6 +46,7 @@ public class VillagerController extends MobEntityController { public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(World world) { @@ -110,6 +111,11 @@ public class VillagerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 62f742cfd..f9ef021e0 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 @@ -91,6 +91,11 @@ public class VindicatorController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 7ab7e8878..95f6f6815 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 @@ -82,6 +82,11 @@ public class WitchController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 d49250af1..1450146fe 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 @@ -64,6 +64,11 @@ public class WitherController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void collide(net.minecraft.server.v1_13_R2.Entity entity) { // this method is called by both the entities involved - cancelling 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 535829d86..d7a010523 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 @@ -93,6 +93,11 @@ public class WolfController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 976bc48b1..8800e4e43 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 @@ -82,6 +82,11 @@ public class ZombieController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 18d285421..4c9e95545 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 @@ -82,6 +82,11 @@ public class ZombieHuskController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 e4807ce74..67301c50e 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 @@ -82,6 +82,11 @@ public class ZombieVillagerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bn() { + return NMS.getFallDistance(npc, super.bn()); + } + @Override public void c(float f, float f1) { if (npc == null || !npc.isFlyable()) { 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 2437d4760..1c6802126 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 @@ -24,7 +24,6 @@ import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.World; import org.bukkit.block.BlockFace; -import org.bukkit.block.data.BlockData; import org.bukkit.boss.BarColor; import org.bukkit.boss.BarStyle; import org.bukkit.boss.BossBar; @@ -77,6 +76,7 @@ import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.LocationLookup.PerPlayerMetadata; import net.citizensnpcs.api.ai.NavigatorParameters; import net.citizensnpcs.api.ai.event.CancelReason; +import net.citizensnpcs.api.astar.pathfinder.DoorExaminer; import net.citizensnpcs.api.command.CommandManager; import net.citizensnpcs.api.command.exception.CommandException; import net.citizensnpcs.api.gui.ForwardingInventory; @@ -380,6 +380,7 @@ public class NMSImpl implements NMSBridge { handle.dead = false; tracker.updatePlayer(p); tracker.trackedPlayers.add(p); + handle.dead = true; } @Override @@ -399,7 +400,9 @@ public class NMSImpl implements NMSBridge { for (EntityPlayer link : Lists.newArrayList(tracker.trackedPlayers)) { Player entity = link.getBukkitEntity(); unlink(entity); - callback.accept(entity); + if (callback != null) { + callback.accept(entity); + } } } }; @@ -645,10 +648,21 @@ public class NMSImpl implements NMSBridge { ((EntityInsentient) raw).a(PathType.WATER, oldWater + 1F); } } + navigation.s().b(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; CancelReason reason; + private List getBlocks(final org.bukkit.entity.Entity entity, + final NavigationAbstract navigation) { + List blocks = Lists.newArrayList(); + for (int i = 0; i < navigation.m().d(); i++) { + PathPoint pp = navigation.m().a(i); + blocks.add(entity.getWorld().getBlockAt(pp.a, pp.b, pp.c)); + } + return blocks; + } + @Override public CancelReason getCancelReason() { return reason; @@ -662,14 +676,8 @@ public class NMSImpl implements NMSBridge { @Override public void stop() { if (params.debug() && navigation.m() != null) { - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < navigation.m().d(); i++) { - PathPoint pp = navigation.m().a(i); - org.bukkit.block.Block block = new Vector(pp.a, pp.b, pp.c).toLocation(player.getWorld()) - .getBlock(); - player.sendBlockChange(block.getLocation(), block.getBlockData()); - } - } + List blocks = getBlocks(entity, navigation); + Util.sendBlockChanges(blocks, null); } if (oldWater >= 0) { if (raw instanceof EntityPlayer) { @@ -684,10 +692,6 @@ public class NMSImpl implements NMSBridge { @Override public boolean update() { if (params.speed() != lastSpeed) { - if (Messaging.isDebugging() && lastSpeed > 0) { - Messaging.debug( - "Repathfinding " + ((NPCHolder) entity).getNPC().getId() + " due to speed change"); - } Entity handle = getHandle(entity); float oldWidth = handle.width; if (handle instanceof EntityHorse) { @@ -701,13 +705,7 @@ public class NMSImpl implements NMSBridge { lastSpeed = params.speed(); } if (params.debug() && !NMSImpl.isNavigationFinished(navigation)) { - BlockData data = Material.DANDELION.createBlockData(); - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < navigation.m().d(); i++) { - PathPoint pp = navigation.m().a(i); - player.sendBlockChange(new Vector(pp.a, pp.b, pp.c).toLocation(player.getWorld()), data); - } - } + Util.sendBlockChanges(getBlocks(entity, navigation), Material.DANDELION); } navigation.a(params.speed()); return NMSImpl.isNavigationFinished(navigation); 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 033753147..2a9b2301e 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 @@ -7,7 +7,6 @@ import java.util.Iterator; import com.google.common.collect.Sets; -import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.util.BoundingBox; import net.citizensnpcs.nms.v1_13_R2.entity.EntityHumanNPC; import net.citizensnpcs.util.NMS; @@ -286,7 +285,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { int var22 = 0; while (var2 > 0 && var12 == PathType.OPEN) { --var2; - if (var22++ >= Setting.MC_NAVIGATION_MAX_FALL_DISTANCE.asInt()) { + if (var22++ >= b.bn()) { return null; } var12 = this.a(this.b, var1, var2, var3); 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 e9daa77b9..d4fd28acd 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 @@ -46,15 +46,14 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { public void run() { NMS.sendTabListRemove(entityplayer.getBukkitEntity(), (Player) tracker.getBukkitEntity()); } - }, Setting.TABLIST_REMOVE_PACKET_DELAY.asInt()); + }, Setting.TABLIST_REMOVE_PACKET_DELAY.asTicks()); } @Override public void updatePlayer(final EntityPlayer entityplayer) { // prevent updates to NPC "viewers" - if (entityplayer instanceof EntityHumanNPC) - return; - if (tracker instanceof NPCHolder && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity())) + if ((entityplayer instanceof EntityHumanNPC) || (tracker instanceof NPCHolder + && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity()))) return; lastUpdatedPlayer = entityplayer; super.updatePlayer(entityplayer); 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 29f95818c..acae7e0e0 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 @@ -82,6 +82,11 @@ public class BatController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 8f8bb16f8..97ec02ced 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 @@ -79,6 +79,11 @@ public class BlazeController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 29a335014..a156a332f 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 @@ -106,6 +106,11 @@ public class CatController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 1a96ae402..1096a7e71 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 @@ -96,6 +96,11 @@ public class CaveSpiderController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 d4a17b3db..926062666 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 @@ -106,6 +106,11 @@ public class ChickenController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 af469ea36..835deb8b3 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 @@ -115,6 +115,11 @@ public class CodController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 d93ce09fa..b31ce6811 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 @@ -121,6 +121,11 @@ public class CowController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 4b089c2db..710c3d166 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 @@ -57,6 +57,7 @@ public class CreeperController extends MobEntityController { public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(EntityTypes types, World world) { @@ -98,6 +99,11 @@ public class CreeperController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 1a6f72644..03f80b32f 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 @@ -58,6 +58,7 @@ public class DolphinController extends MobEntityController { public static class EntityDolphinNPC extends EntityDolphin implements NPCHolder { private boolean inProtectedTick; + private final CitizensNPC npc; public EntityDolphinNPC(EntityTypes types, World world) { @@ -109,6 +110,11 @@ public class DolphinController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 4746c1785..1224eb54a 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 @@ -96,6 +96,11 @@ public class DrownedController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 d2243c042..d5482b884 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 @@ -80,6 +80,11 @@ public class EnderDragonController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 3c493b80d..8edd3d77d 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 @@ -104,6 +104,11 @@ public class EndermanController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 c235a7a3d..6543d4aa0 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 @@ -96,6 +96,11 @@ public class EndermiteController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 b7cfb2f03..eac5d70ab 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 @@ -82,6 +82,11 @@ public class EvokerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 d0582af16..e84de5fd7 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 @@ -92,6 +92,11 @@ public class FoxController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 e682b0414..0eac9099f 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 @@ -65,6 +65,11 @@ public class GhastController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 cd6da7c96..37423a849 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 @@ -82,6 +82,11 @@ public class GiantController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 8f5bd9307..84ee7e170 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 @@ -82,6 +82,11 @@ public class GuardianController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 c4e472e73..519479af9 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 @@ -82,6 +82,11 @@ public class GuardianElderController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 542cc3a52..309227b8e 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 @@ -53,6 +53,7 @@ public class HorseController extends MobEntityController { public static class EntityHorseNPC extends EntityHorse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -109,6 +110,11 @@ public class HorseController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override public boolean ca() { if (npc != null && riding) { 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 737a69301..8a90d61d5 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 @@ -53,6 +53,7 @@ public class HorseDonkeyController extends MobEntityController { public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -108,6 +109,11 @@ public class HorseDonkeyController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override public boolean ca() { if (npc != null && riding) { 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 30c5bf201..c5ccff308 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 @@ -53,6 +53,7 @@ public class HorseMuleController extends MobEntityController { public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -108,6 +109,11 @@ public class HorseMuleController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override public boolean ca() { if (npc != null && riding) { 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 36fa7d6ef..2ea209712 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 @@ -53,6 +53,7 @@ public class HorseSkeletonController extends MobEntityController { public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -109,6 +110,11 @@ public class HorseSkeletonController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override public boolean ca() { if (npc != null && riding) { 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 2e29e0621..cd62a8ce5 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 @@ -53,6 +53,7 @@ public class HorseZombieController extends MobEntityController { public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -109,6 +110,11 @@ public class HorseZombieController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override public boolean ca() { if (npc != null && riding) { 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 a3f33c431..704b7cea8 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 @@ -82,6 +82,11 @@ public class IllusionerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 914c77e1c..8953cd7a5 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 @@ -82,6 +82,11 @@ public class IronGolemController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 70df7324c..97002e84d 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 @@ -103,6 +103,11 @@ public class LlamaController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 0dc3638b8..559500543 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 @@ -88,6 +88,11 @@ public class MagmaCubeController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 7da666baf..7dc90e9e8 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 @@ -101,6 +101,11 @@ public class MushroomCowController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 0c9eac24c..80cf06ea1 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 @@ -92,6 +92,11 @@ public class OcelotController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 3abb232fc..eded4483c 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 @@ -92,6 +92,11 @@ public class PandaController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 5cbebf318..5c3ada6ef 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 @@ -76,6 +76,11 @@ public class ParrotController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 82038d249..780e6e178 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 @@ -90,6 +90,11 @@ public class PhantomController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 b9d33f555..ed134c829 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 @@ -93,6 +93,11 @@ public class PigController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 4a9eb7a2c..e8312834f 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 @@ -82,6 +82,11 @@ public class PigZombieController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 1405fe6af..6baa76f1d 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 @@ -92,6 +92,11 @@ public class PillagerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 332973179..a9c8806b8 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 @@ -75,6 +75,11 @@ public class PolarBearController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 7da2d3b59..7a6673ab0 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 @@ -112,6 +112,11 @@ public class PufferFishController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 d855fa763..a4149aa1a 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 @@ -93,6 +93,11 @@ public class RabbitController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 202234167..9a12f1875 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 @@ -92,6 +92,11 @@ public class RavagerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 df95ba09d..1a78bf27b 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 @@ -101,6 +101,11 @@ public class SalmonController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 682989595..a968ba3ac 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 @@ -92,6 +92,11 @@ public class SheepController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 c3e0e618b..b5d33cded 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 @@ -83,6 +83,11 @@ public class ShulkerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 c24bd6aa2..bb189efa8 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 @@ -82,6 +82,11 @@ public class SilverfishController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 3592d98ab..a860b1028 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 @@ -82,6 +82,11 @@ public class SkeletonController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 d84445e5c..e320c76fa 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 @@ -82,6 +82,11 @@ public class SkeletonStrayController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 094d973e4..3df485623 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 @@ -82,6 +82,11 @@ public class SkeletonWitherController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 7d1b62d5b..741177055 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 @@ -88,6 +88,11 @@ public class SlimeController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 4f0bb1cc1..6f601b902 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 @@ -82,6 +82,11 @@ public class SnowmanController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 c32f2fb43..c2f4e59f9 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 @@ -82,6 +82,11 @@ public class SpiderController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 438e248ac..4fd10f409 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 @@ -82,6 +82,11 @@ public class SquidController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 c1ac8d8ee..5044cfb7a 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 @@ -106,6 +106,11 @@ public class TraderLlamaController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 18e4ffa0d..9484b4533 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 @@ -101,6 +101,11 @@ public class TropicalFishController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 ae767535a..f38057999 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 @@ -89,6 +89,11 @@ public class TurtleController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 ed20b5e5d..f8eed0c45 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 @@ -68,6 +68,11 @@ public class VexController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 492eec5a8..108511341 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 @@ -51,6 +51,7 @@ public class VillagerController extends MobEntityController { public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { private TreeMap behaviorMap; + private boolean blockingATrade; private final CitizensNPC npc; private BehaviorController previousBehaviorController; @@ -115,6 +116,11 @@ public class VillagerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 170638a3a..79a537f19 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 @@ -92,6 +92,11 @@ public class VindicatorController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 57d3bf277..d8598f44a 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 @@ -51,6 +51,7 @@ public class WanderingTraderController extends MobEntityController { public static class EntityWanderingTraderNPC extends EntityVillagerTrader implements NPCHolder { private TreeMap behaviorMap; + private boolean blockingATrade; private boolean blockTrades = true; private final CitizensNPC npc; @@ -115,6 +116,11 @@ public class WanderingTraderController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 d51c6e95e..b5aa04fcf 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 @@ -82,6 +82,11 @@ public class WitchController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 aa01c1774..2dbd7d455 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 @@ -65,6 +65,11 @@ public class WitherController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 1240e7305..06ede4a4c 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 @@ -94,6 +94,11 @@ public class WolfController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 c6a53b62b..d4909b1d2 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 @@ -82,6 +82,11 @@ public class ZombieController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 9b31c4372..dcdc8d66b 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 @@ -82,6 +82,11 @@ public class ZombieHuskController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 2d3b42040..e7dddbe9f 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 @@ -82,6 +82,11 @@ public class ZombieVillagerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bv() { + return NMS.getFallDistance(npc, super.bv()); + } + @Override protected void checkDespawn() { if (npc == null) { 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 68409467b..e9f26636a 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 @@ -23,7 +23,6 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.World; -import org.bukkit.block.data.BlockData; import org.bukkit.boss.BarColor; import org.bukkit.boss.BarStyle; import org.bukkit.boss.BossBar; @@ -75,6 +74,7 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.ai.NavigatorParameters; import net.citizensnpcs.api.ai.event.CancelReason; +import net.citizensnpcs.api.astar.pathfinder.DoorExaminer; import net.citizensnpcs.api.command.CommandManager; import net.citizensnpcs.api.command.exception.CommandException; import net.citizensnpcs.api.gui.ForwardingInventory; @@ -419,6 +419,7 @@ public class NMSImpl implements NMSBridge { handle.dead = false; tracker.b(p); linked.add(p); + handle.dead = true; } @Override @@ -438,7 +439,9 @@ public class NMSImpl implements NMSBridge { for (EntityPlayer link : Lists.newArrayList(linked)) { Player entity = link.getBukkitEntity(); unlink(entity); - callback.accept(entity); + if (callback != null) { + callback.accept(entity); + } } } }; @@ -683,10 +686,21 @@ public class NMSImpl implements NMSBridge { ((EntityInsentient) raw).a(PathType.WATER, oldWater + 1F); } } + navigation.q().b(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; CancelReason reason; + private List getBlocks(final org.bukkit.entity.Entity entity, + final NavigationAbstract navigation) { + List blocks = Lists.newArrayList(); + for (int i = 0; i < navigation.l().e(); i++) { + PathPoint pp = navigation.l().a(i); + blocks.add(entity.getWorld().getBlockAt(pp.a, pp.b, pp.c)); + } + return blocks; + } + @Override public CancelReason getCancelReason() { return reason; @@ -700,14 +714,8 @@ public class NMSImpl implements NMSBridge { @Override public void stop() { if (params.debug() && navigation.l() != null) { - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < navigation.l().e(); i++) { - PathPoint pp = navigation.l().a(i); - org.bukkit.block.Block block = new Vector(pp.a, pp.b, pp.c).toLocation(player.getWorld()) - .getBlock(); - player.sendBlockChange(block.getLocation(), block.getBlockData()); - } - } + List blocks = getBlocks(entity, navigation); + Util.sendBlockChanges(blocks, null); } if (oldWater >= 0) { if (raw instanceof EntityPlayer) { @@ -722,10 +730,6 @@ public class NMSImpl implements NMSBridge { @Override public boolean update() { if (params.speed() != lastSpeed) { - if (Messaging.isDebugging() && lastSpeed > 0) { - Messaging.debug( - "Repathfinding " + ((NPCHolder) entity).getNPC().getId() + " due to speed change"); - } Entity handle = getHandle(entity); EntitySize size = null; try { @@ -750,13 +754,7 @@ public class NMSImpl implements NMSBridge { lastSpeed = params.speed(); } if (params.debug() && !NMSImpl.isNavigationFinished(navigation)) { - BlockData data = Material.DANDELION.createBlockData(); - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < navigation.l().e(); i++) { - PathPoint pp = navigation.l().a(i); - player.sendBlockChange(new Vector(pp.a, pp.b, pp.c).toLocation(player.getWorld()), data); - } - } + Util.sendBlockChanges(getBlocks(entity, navigation), Material.DANDELION); } navigation.a(params.speed()); return NMSImpl.isNavigationFinished(navigation); 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 5be1949c1..19484977a 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 @@ -6,7 +6,6 @@ import java.util.Set; import com.google.common.collect.Sets; -import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.nms.v1_14_R1.entity.EntityHumanNPC; import net.minecraft.server.v1_14_R1.AxisAlignedBB; import net.minecraft.server.v1_14_R1.Block; @@ -300,7 +299,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { return var18; } var18 = this.a(var0, var1, var2); - if (var16++ >= Setting.MC_NAVIGATION_MAX_FALL_DISTANCE.asInt()) { + if (var16++ >= b.bv()) { var18.l = PathType.BLOCKED; var18.k = -1.0F; return var18; 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 0b93fb25d..0b3cd6e96 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 @@ -43,7 +43,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { public void run() { NMS.sendTabListRemove(entityplayer.getBukkitEntity(), (Player) tracker.getBukkitEntity()); } - }, Setting.TABLIST_REMOVE_PACKET_DELAY.asInt()); + }, Setting.TABLIST_REMOVE_PACKET_DELAY.asTicks()); } @Override 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 8c98fee21..4f3917d97 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 @@ -75,6 +75,11 @@ public class BatController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 b699304c3..b28ed53c8 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 @@ -72,6 +72,11 @@ public class BeeController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 256df704d..a8e9aba02 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 @@ -72,6 +72,11 @@ public class BlazeController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 0604152fd..d51fd2532 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 @@ -100,6 +100,11 @@ public class CatController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 cb979e74a..800fa7783 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 @@ -90,6 +90,11 @@ public class CaveSpiderController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 7708a31b8..946d44ca7 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 @@ -100,6 +100,11 @@ public class ChickenController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 e1601a4cd..0e9877f44 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 @@ -55,6 +55,7 @@ public class CodController extends MobEntityController { public static class EntityCodNPC extends EntityCod implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityCodNPC(EntityTypes types, World world) { @@ -112,6 +113,11 @@ public class CodController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 35670d318..49188fd8a 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 @@ -115,6 +115,11 @@ public class CowController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 558b92f01..6a0851de4 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 @@ -50,6 +50,7 @@ public class CreeperController extends MobEntityController { public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(EntityTypes types, World world) { @@ -92,6 +93,11 @@ public class CreeperController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 7f77f7216..bbf0f7242 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 @@ -52,6 +52,7 @@ public class DolphinController extends MobEntityController { public static class EntityDolphinNPC extends EntityDolphin implements NPCHolder { private boolean inProtectedTick; + private final CitizensNPC npc; private ControllerMove oldMoveController; @@ -106,6 +107,11 @@ public class DolphinController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 f45280ac6..489c30a82 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 @@ -90,6 +90,11 @@ public class DrownedController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 3f97cfc28..341abb132 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 @@ -73,6 +73,11 @@ public class EnderDragonController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 cfd31ee35..886d458ef 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 @@ -98,6 +98,11 @@ public class EndermanController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 a9effcc95..8c9cd9283 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 @@ -90,6 +90,11 @@ public class EndermiteController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 8a9f01e72..b3cb68756 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 @@ -84,6 +84,11 @@ public class EvokerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 3ff860805..a865004b6 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 @@ -94,6 +94,11 @@ public class FoxController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 ce03f21e9..0833ba1dc 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 @@ -66,6 +66,11 @@ public class GhastController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 35452e250..c5b2d2ff2 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 @@ -84,6 +84,11 @@ public class GiantController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 104b0eec5..011e1e9a0 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 @@ -84,6 +84,11 @@ public class GuardianController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 0a4ea67f3..1054b402a 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 @@ -84,6 +84,11 @@ public class GuardianElderController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 f8ef9d159..44862280f 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 @@ -54,6 +54,7 @@ public class HorseController extends MobEntityController { public static class EntityHorseNPC extends EntityHorse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -111,6 +112,11 @@ public class HorseController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 3442bf0c2..414e8603a 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 @@ -54,6 +54,7 @@ public class HorseDonkeyController extends MobEntityController { public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -110,6 +111,11 @@ public class HorseDonkeyController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 7f746a60a..658b41e98 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 @@ -54,6 +54,7 @@ public class HorseMuleController extends MobEntityController { public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -110,6 +111,11 @@ public class HorseMuleController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 2d899b9c2..521d8f338 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 @@ -54,6 +54,7 @@ public class HorseSkeletonController extends MobEntityController { public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -111,6 +112,11 @@ public class HorseSkeletonController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 274c83ebc..a644942a7 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 @@ -54,6 +54,7 @@ public class HorseZombieController extends MobEntityController { public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -111,6 +112,11 @@ public class HorseZombieController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 a58c8d03b..ec5fad73d 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 @@ -84,6 +84,11 @@ public class IllusionerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 a07053935..347cf103f 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 @@ -84,6 +84,11 @@ public class IronGolemController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 a858c9fa2..e196c6430 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 @@ -105,6 +105,11 @@ public class LlamaController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 c6bc57db0..f0707ac87 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 @@ -46,6 +46,7 @@ public class MagmaCubeController extends MobEntityController { public static class EntityMagmaCubeNPC extends EntityMagmaCube implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityMagmaCubeNPC(EntityTypes types, World world) { @@ -93,6 +94,11 @@ public class MagmaCubeController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 3be6de3aa..5840f81d0 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 @@ -103,6 +103,11 @@ public class MushroomCowController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 1a2bae31f..9b46ca40f 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 @@ -95,6 +95,11 @@ public class OcelotController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 3796396d5..a3881c7e4 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 @@ -94,6 +94,11 @@ public class PandaController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 2420f8715..f44f80e2c 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 @@ -77,6 +77,11 @@ public class ParrotController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 b70b2428e..ba8aea2ac 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 @@ -46,6 +46,7 @@ public class PhantomController extends MobEntityController { public static class EntityPhantomNPC extends EntityPhantom implements NPCHolder { private final CitizensNPC npc; + private ControllerLook oldLookController; private ControllerMove oldMoveController; @@ -96,6 +97,11 @@ public class PhantomController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 d5fe48bc6..646daf7a9 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 @@ -95,6 +95,11 @@ public class PigController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 490043a47..ceb3e0cd4 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 @@ -84,6 +84,11 @@ public class PigZombieController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 77f61efd1..e1be401c5 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 @@ -94,6 +94,11 @@ public class PillagerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 7493cc8cc..affa3b4d0 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 @@ -76,6 +76,11 @@ public class PolarBearController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 7cdfe8cf6..3a6062e18 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 @@ -52,6 +52,7 @@ public class PufferFishController extends MobEntityController { public static class EntityPufferFishNPC extends EntityPufferFish implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityPufferFishNPC(EntityTypes types, World world) { @@ -117,6 +118,11 @@ public class PufferFishController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 eb2146b4d..b02b2686b 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 @@ -95,6 +95,11 @@ public class RabbitController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 dbbfa2175..478fec1c1 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 @@ -94,6 +94,11 @@ public class RavagerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 a1606a1bd..806327bd7 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 @@ -49,6 +49,7 @@ public class SalmonController extends MobEntityController { public static class EntitySalmonNPC extends EntitySalmon implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntitySalmonNPC(EntityTypes types, World world) { @@ -106,6 +107,11 @@ public class SalmonController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 f13a8f493..4a45360a9 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 @@ -94,6 +94,11 @@ public class SheepController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 45cff1daa..862844a44 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 @@ -85,6 +85,11 @@ public class ShulkerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 f50e84dc9..337d51a1d 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 @@ -84,6 +84,11 @@ public class SilverfishController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 036e4ee53..269d66652 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 @@ -84,6 +84,11 @@ public class SkeletonController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 745dd98f8..f1cae2071 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 @@ -84,6 +84,11 @@ public class SkeletonStrayController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 a11c60590..673c57981 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 @@ -84,6 +84,11 @@ public class SkeletonWitherController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 6dd7379fe..2acd82cb3 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 @@ -46,6 +46,7 @@ public class SlimeController extends MobEntityController { public static class EntitySlimeNPC extends EntitySlime implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntitySlimeNPC(EntityTypes types, World world) { @@ -93,6 +94,11 @@ public class SlimeController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 079a9e158..a2952a58f 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 @@ -84,6 +84,11 @@ public class SnowmanController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 ff460da41..d3647fa64 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 @@ -84,6 +84,11 @@ public class SpiderController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 4cddaf119..6b91fdc27 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 @@ -84,6 +84,11 @@ public class SquidController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 92088f3fe..9f98dfdc5 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 @@ -108,6 +108,11 @@ public class TraderLlamaController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 f3518c8dd..2a54a8c01 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 @@ -49,6 +49,7 @@ public class TropicalFishController extends MobEntityController { public static class EntityTropicalFishNPC extends EntityTropicalFish implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityTropicalFishNPC(EntityTypes types, World world) { @@ -106,6 +107,11 @@ public class TropicalFishController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 b2658c96a..c64db3439 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 @@ -47,6 +47,7 @@ public class TurtleController extends MobEntityController { public static class EntityTurtleNPC extends EntityTurtle implements NPCHolder { private final CitizensNPC npc; + private ControllerJump oldJumpController; private ControllerMove oldMoveController; @@ -96,6 +97,11 @@ public class TurtleController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 5798fe569..ec3719ac5 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 @@ -69,6 +69,11 @@ public class VexController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 0ba6f8d3a..c48c5a42b 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 @@ -51,6 +51,7 @@ public class VillagerController extends MobEntityController { public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(EntityTypes types, World world) { @@ -117,6 +118,11 @@ public class VillagerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 d79e65748..990e79bbc 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 @@ -94,6 +94,11 @@ public class VindicatorController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 bd7c154eb..e27500675 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 @@ -51,6 +51,7 @@ public class WanderingTraderController extends MobEntityController { public static class EntityWanderingTraderNPC extends EntityVillagerTrader implements NPCHolder { private boolean blockingATrade; + private boolean blockTrades = true; private final CitizensNPC npc; @@ -115,6 +116,11 @@ public class WanderingTraderController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 8228c70e7..23d13efe1 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 @@ -83,6 +83,11 @@ public class WitchController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 9a3f8ea4d..eeb15f5be 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 @@ -66,6 +66,11 @@ public class WitherController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 f92a2382c..9b7654369 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 @@ -96,6 +96,11 @@ public class WolfController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 8252e8bed..d8f314973 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 @@ -84,6 +84,11 @@ public class ZombieController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 d26c66f76..17018fdc5 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 @@ -84,6 +84,11 @@ public class ZombieHuskController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 130dff8ce..3230ff1ea 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 @@ -84,6 +84,11 @@ public class ZombieVillagerController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.b(tag)); } + @Override + public int bD() { + return NMS.getFallDistance(npc, super.bD()); + } + @Override public void checkDespawn() { if (npc == null) { 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 906738c9e..5a51c78ff 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 @@ -23,7 +23,6 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.World; -import org.bukkit.block.data.BlockData; import org.bukkit.boss.BarColor; import org.bukkit.boss.BarStyle; import org.bukkit.boss.BossBar; @@ -75,6 +74,7 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.ai.NavigatorParameters; import net.citizensnpcs.api.ai.event.CancelReason; +import net.citizensnpcs.api.astar.pathfinder.DoorExaminer; import net.citizensnpcs.api.command.CommandManager; import net.citizensnpcs.api.command.exception.CommandException; import net.citizensnpcs.api.gui.ForwardingInventory; @@ -434,6 +434,7 @@ public class NMSImpl implements NMSBridge { handle.dead = false; tracker.b(p); linked.add(p); + handle.dead = true; } @Override @@ -453,7 +454,9 @@ public class NMSImpl implements NMSBridge { for (EntityPlayer link : Lists.newArrayList(linked)) { Player entity = link.getBukkitEntity(); unlink(entity); - callback.accept(entity); + if (callback != null) { + callback.accept(entity); + } } } }; @@ -698,10 +701,21 @@ public class NMSImpl implements NMSBridge { ((EntityInsentient) raw).a(PathType.WATER, oldWater + 1F); } } + navigation.q().b(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; CancelReason reason; + private List getBlocks(final org.bukkit.entity.Entity entity, + final NavigationAbstract navigation) { + List blocks = Lists.newArrayList(); + for (int i = 0; i < navigation.k().e(); i++) { + PathPoint pp = navigation.k().a(i); + blocks.add(entity.getWorld().getBlockAt(pp.a, pp.b, pp.c)); + } + return blocks; + } + @Override public CancelReason getCancelReason() { return reason; @@ -715,14 +729,8 @@ public class NMSImpl implements NMSBridge { @Override public void stop() { if (params.debug() && navigation.k() != null) { - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < navigation.k().e(); i++) { - PathPoint pp = navigation.k().a(i); - org.bukkit.block.Block block = new Vector(pp.a, pp.b, pp.c).toLocation(player.getWorld()) - .getBlock(); - player.sendBlockChange(block.getLocation(), block.getBlockData()); - } - } + List blocks = getBlocks(entity, navigation); + Util.sendBlockChanges(blocks, null); } if (oldWater >= 0) { if (raw instanceof EntityPlayer) { @@ -737,11 +745,6 @@ public class NMSImpl implements NMSBridge { @Override public boolean update() { if (params.speed() != lastSpeed) { - if (Messaging.isDebugging() && lastSpeed > 0) { - Messaging.debug( - "Repathfinding " + ((NPCHolder) entity).getNPC().getId() + " due to speed change from", - lastSpeed, "to", params.speed()); - } Entity handle = getHandle(entity); EntitySize size = null; try { @@ -766,13 +769,7 @@ public class NMSImpl implements NMSBridge { lastSpeed = params.speed(); } if (params.debug() && !NMSImpl.isNavigationFinished(navigation)) { - BlockData data = Material.DANDELION.createBlockData(); - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < navigation.k().e(); i++) { - PathPoint pp = navigation.k().a(i); - player.sendBlockChange(new Vector(pp.a, pp.b, pp.c).toLocation(player.getWorld()), data); - } - } + Util.sendBlockChanges(getBlocks(entity, navigation), Material.DANDELION); } navigation.a((double) params.speed()); return NMSImpl.isNavigationFinished(navigation); 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 bac928e2f..2ad16383e 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 @@ -6,7 +6,6 @@ import java.util.Set; import com.google.common.collect.Sets; -import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.nms.v1_15_R1.entity.EntityHumanNPC; import net.minecraft.server.v1_15_R1.AxisAlignedBB; import net.minecraft.server.v1_15_R1.Block; @@ -246,7 +245,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { return var18; } var18 = this.a(var0, var1, var2); - if (var16++ >= Setting.MC_NAVIGATION_MAX_FALL_DISTANCE.asInt()) { + if (var16++ >= this.b.bD()) { var18.l = PathType.BLOCKED; var18.k = -1.0F; return var18; 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 364b3c8d4..195707a98 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 @@ -43,7 +43,7 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { public void run() { NMS.sendTabListRemove(entityplayer.getBukkitEntity(), (Player) tracker.getBukkitEntity()); } - }, Setting.TABLIST_REMOVE_PACKET_DELAY.asInt()); + }, Setting.TABLIST_REMOVE_PACKET_DELAY.asTicks()); } @Override 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 48c1c9c04..30e4024ec 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 @@ -75,6 +75,11 @@ public class BatController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 db95278dd..3c43bdf49 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 @@ -72,6 +72,11 @@ public class BeeController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 65b00ebce..05aceea7d 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 @@ -72,6 +72,11 @@ public class BlazeController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 f055fd6bb..eec1addca 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 @@ -100,6 +100,11 @@ public class CatController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 d8aa85c17..5165963e6 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 @@ -90,6 +90,11 @@ public class CaveSpiderController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 92ad1171a..89b1663e9 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 @@ -100,6 +100,11 @@ public class ChickenController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 3a10a6df5..29a70689f 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 @@ -56,6 +56,7 @@ public class CodController extends MobEntityController { public static class EntityCodNPC extends EntityCod implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityCodNPC(EntityTypes types, World world) { @@ -113,6 +114,11 @@ public class CodController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 12f8f4197..125a09b1c 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 @@ -116,6 +116,11 @@ public class CowController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 118b479c8..755d62ea0 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 @@ -51,6 +51,7 @@ public class CreeperController extends MobEntityController { public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(EntityTypes types, World world) { @@ -93,6 +94,11 @@ public class CreeperController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 df4f4069c..a1848ac28 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 @@ -52,6 +52,7 @@ public class DolphinController extends MobEntityController { public static class EntityDolphinNPC extends EntityDolphin implements NPCHolder { private boolean inProtectedTick; + private final CitizensNPC npc; private ControllerMove oldMoveController; @@ -106,6 +107,11 @@ public class DolphinController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 d61a6ba9b..781c76d44 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 @@ -90,6 +90,11 @@ public class DrownedController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 8505efd6b..5bf6f7dca 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 @@ -73,6 +73,11 @@ public class EnderDragonController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 a2ce25bf6..e1dbcfc01 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 @@ -98,6 +98,11 @@ public class EndermanController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 68df4f26d..68691acb9 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 @@ -90,6 +90,11 @@ public class EndermiteController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 1f3eb8473..4f814cfd7 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 @@ -84,6 +84,11 @@ public class EvokerController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 f3537ee2a..89b5a4f85 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 @@ -94,6 +94,11 @@ public class FoxController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 a16b7b247..0dfa3f676 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 @@ -66,6 +66,11 @@ public class GhastController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 31966464b..e5e7925aa 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 @@ -84,6 +84,11 @@ public class GiantController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 bf99fc8cd..5a1a38f04 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 @@ -84,6 +84,11 @@ public class GuardianController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 2b25d3402..e14602f3e 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 @@ -84,6 +84,11 @@ public class GuardianElderController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 3c305d11b..14ce15af0 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 @@ -84,6 +84,11 @@ public class HoglinController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 7911cff8a..cc988115e 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 @@ -54,6 +54,7 @@ public class HorseController extends MobEntityController { public static class EntityHorseNPC extends EntityHorse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -111,6 +112,11 @@ public class HorseController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 6efa90de0..20ac56783 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 @@ -54,6 +54,7 @@ public class HorseDonkeyController extends MobEntityController { public static class EntityHorseDonkeyNPC extends EntityHorseDonkey implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -110,6 +111,11 @@ public class HorseDonkeyController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 3921c42e6..c6e611c62 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 @@ -54,6 +54,7 @@ public class HorseMuleController extends MobEntityController { public static class EntityHorseMuleNPC extends EntityHorseMule implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -110,6 +111,11 @@ public class HorseMuleController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 812e9bfb2..c7b73bf73 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 @@ -54,6 +54,7 @@ public class HorseSkeletonController extends MobEntityController { public static class EntityHorseSkeletonNPC extends EntityHorseSkeleton implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -111,6 +112,11 @@ public class HorseSkeletonController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 018e59cb2..b19f6db4f 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 @@ -54,6 +54,7 @@ public class HorseZombieController extends MobEntityController { public static class EntityHorseZombieNPC extends EntityHorseZombie implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -111,6 +112,11 @@ public class HorseZombieController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 31ece6ea6..6f525cef8 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 @@ -84,6 +84,11 @@ public class IllusionerController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 91c9a0495..6e544e6fc 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 @@ -84,6 +84,11 @@ public class IronGolemController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 fb8233c11..930dd6626 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 @@ -105,6 +105,11 @@ public class LlamaController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 df176ed76..413f44d11 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 @@ -46,6 +46,7 @@ public class MagmaCubeController extends MobEntityController { public static class EntityMagmaCubeNPC extends EntityMagmaCube implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityMagmaCubeNPC(EntityTypes types, World world) { @@ -93,6 +94,11 @@ public class MagmaCubeController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 0bd35458c..06eaa7b9d 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 @@ -104,6 +104,11 @@ public class MushroomCowController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 7aaebcac0..b9e34e0d6 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 @@ -95,6 +95,11 @@ public class OcelotController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 dc2af42a8..be15620f9 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 @@ -94,6 +94,11 @@ public class PandaController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 4e091f3f6..be9087d02 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 @@ -78,6 +78,11 @@ public class ParrotController extends MobEntityController { return EnumInteractionResult.FAIL; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 7369d9a96..dfcb7b730 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 @@ -47,6 +47,7 @@ public class PhantomController extends MobEntityController { public static class EntityPhantomNPC extends EntityPhantom implements NPCHolder { private final CitizensNPC npc; + private ControllerLook oldLookController; private ControllerMove oldMoveController; @@ -106,6 +107,11 @@ public class PhantomController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 b603f3bb7..0fc1786bd 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 @@ -96,6 +96,11 @@ public class PigController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 6083a3fb8..220d612bd 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 @@ -84,6 +84,11 @@ public class PigZombieController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 7dc511892..b1b85f991 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 @@ -84,6 +84,11 @@ public class PiglinBruteController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 bbc47cf4c..2522632b3 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 @@ -84,6 +84,11 @@ public class PiglinController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 a6e419c02..7c52fc18b 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 @@ -94,6 +94,11 @@ public class PillagerController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 e9263b28c..dc5f9584b 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 @@ -76,6 +76,11 @@ public class PolarBearController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 50c73bc8b..16bbcece8 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 @@ -53,6 +53,7 @@ public class PufferFishController extends MobEntityController { public static class EntityPufferFishNPC extends EntityPufferFish implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityPufferFishNPC(EntityTypes types, World world) { @@ -118,6 +119,11 @@ public class PufferFishController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 e5dae9d70..b20f020df 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 @@ -95,6 +95,11 @@ public class RabbitController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 d86534a19..97b43c697 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 @@ -94,6 +94,11 @@ public class RavagerController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 ab820c622..a5493615c 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 @@ -50,6 +50,7 @@ public class SalmonController extends MobEntityController { public static class EntitySalmonNPC extends EntitySalmon implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntitySalmonNPC(EntityTypes types, World world) { @@ -107,6 +108,11 @@ public class SalmonController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 cc1a7f9bb..c42bc84c5 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 @@ -94,6 +94,11 @@ public class SheepController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 2ee11f3fe..7fba7eb72 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 @@ -85,6 +85,11 @@ public class ShulkerController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 d258afb07..8a85beb77 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 @@ -84,6 +84,11 @@ public class SilverfishController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 aed6c4782..1be742e8e 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 @@ -84,6 +84,11 @@ public class SkeletonController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 40476fdf4..978e25113 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 @@ -84,6 +84,11 @@ public class SkeletonStrayController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 30254f65b..dcc58720e 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 @@ -84,6 +84,11 @@ public class SkeletonWitherController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 ab068c937..d1235e492 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 @@ -46,6 +46,7 @@ public class SlimeController extends MobEntityController { public static class EntitySlimeNPC extends EntitySlime implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntitySlimeNPC(EntityTypes types, World world) { @@ -93,6 +94,11 @@ public class SlimeController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 d82d97db0..b7472ded0 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 @@ -84,6 +84,11 @@ public class SnowmanController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 a4ee9e3d3..84057f633 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 @@ -84,6 +84,11 @@ public class SpiderController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 6305b6251..3e11432f5 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 @@ -84,6 +84,11 @@ public class SquidController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 eba287762..422403fbd 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 @@ -84,6 +84,11 @@ public class StriderController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 c9133658a..0534970b4 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 @@ -108,6 +108,11 @@ public class TraderLlamaController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 988e68c4f..fef1ec01f 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 @@ -50,6 +50,7 @@ public class TropicalFishController extends MobEntityController { public static class EntityTropicalFishNPC extends EntityTropicalFish implements NPCHolder { private final CitizensNPC npc; + private ControllerMove oldMoveController; public EntityTropicalFishNPC(EntityTypes types, World world) { @@ -107,6 +108,11 @@ public class TropicalFishController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 fc2da06f2..74f0bdfc3 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 @@ -47,6 +47,7 @@ public class TurtleController extends MobEntityController { public static class EntityTurtleNPC extends EntityTurtle implements NPCHolder { private final CitizensNPC npc; + private ControllerJump oldJumpController; private ControllerMove oldMoveController; @@ -96,6 +97,11 @@ public class TurtleController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 fcdcc4d9a..421679bb3 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 @@ -69,6 +69,11 @@ public class VexController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 84dcb13c3..b754a8f61 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 @@ -53,6 +53,7 @@ public class VillagerController extends MobEntityController { public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(EntityTypes types, World world) { @@ -119,6 +120,11 @@ public class VillagerController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 8040e4779..d9d0b850d 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 @@ -94,6 +94,11 @@ public class VindicatorController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 bc9160c0e..c06bad5b9 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 @@ -53,6 +53,7 @@ public class WanderingTraderController extends MobEntityController { public static class EntityWanderingTraderNPC extends EntityVillagerTrader implements NPCHolder { private boolean blockingATrade; + private boolean blockTrades = true; private final CitizensNPC npc; @@ -117,6 +118,11 @@ public class WanderingTraderController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 9e2e4d6ee..1db163590 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 @@ -84,6 +84,11 @@ public class WitchController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 8f76b3d05..8a5ed3201 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 @@ -66,6 +66,11 @@ public class WitherController extends MobEntityController { return NMSImpl.fluidPush(npc, this, () -> super.a(tag, d0)); } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 e06c06c85..e5faac7da 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 @@ -96,6 +96,11 @@ public class WolfController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 bed428a36..e5af9c5ce 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 @@ -84,6 +84,11 @@ public class ZoglinController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 46ef33984..e906a8a31 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 @@ -84,6 +84,11 @@ public class ZombieController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 610745c53..9d4a94b20 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 @@ -84,6 +84,11 @@ public class ZombieHuskController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == null) { 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 ee5f4fe7e..60be6f8be 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 @@ -84,6 +84,11 @@ public class ZombieVillagerController extends MobEntityController { return false; } + @Override + public int bP() { + return NMS.getFallDistance(npc, super.bP()); + } + @Override public void checkDespawn() { if (npc == 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 f4d6643ec..e71ebe82b 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 @@ -23,7 +23,6 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.World; -import org.bukkit.block.data.BlockData; import org.bukkit.boss.BarColor; import org.bukkit.boss.BarStyle; import org.bukkit.boss.BossBar; @@ -76,6 +75,7 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.ai.NavigatorParameters; import net.citizensnpcs.api.ai.event.CancelReason; +import net.citizensnpcs.api.astar.pathfinder.DoorExaminer; import net.citizensnpcs.api.command.CommandManager; import net.citizensnpcs.api.command.exception.CommandException; import net.citizensnpcs.api.gui.ForwardingInventory; @@ -443,6 +443,7 @@ public class NMSImpl implements NMSBridge { handle.dead = false; tracker.b(p); linked.add(p); + handle.dead = true; } @Override @@ -462,7 +463,9 @@ public class NMSImpl implements NMSBridge { for (EntityPlayer link : Lists.newArrayList(linked)) { Player entity = link.getBukkitEntity(); unlink(entity); - callback.accept(entity); + if (callback != null) { + callback.accept(entity); + } } } }; @@ -716,10 +719,21 @@ public class NMSImpl implements NMSBridge { ((EntityInsentient) raw).a(PathType.WATER, oldWater + 1F); } } + navigation.q().b(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; CancelReason reason; + private List getBlocks(final org.bukkit.entity.Entity entity, + final NavigationAbstract navigation) { + List blocks = Lists.newArrayList(); + for (int i = 0; i < navigation.k().e(); i++) { + PathPoint pp = navigation.k().a(i); + blocks.add(entity.getWorld().getBlockAt(pp.a, pp.b, pp.c)); + } + return blocks; + } + @Override public CancelReason getCancelReason() { return reason; @@ -733,14 +747,8 @@ public class NMSImpl implements NMSBridge { @Override public void stop() { if (params.debug() && navigation.k() != null) { - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < navigation.k().e(); i++) { - PathPoint pp = navigation.k().a(i); - org.bukkit.block.Block block = new Vector(pp.a, pp.b, pp.c).toLocation(player.getWorld()) - .getBlock(); - player.sendBlockChange(block.getLocation(), block.getBlockData()); - } - } + List blocks = getBlocks(entity, navigation); + Util.sendBlockChanges(blocks, null); } if (oldWater >= 0) { if (raw instanceof EntityPlayer) { @@ -755,11 +763,6 @@ public class NMSImpl implements NMSBridge { @Override public boolean update() { if (params.speed() != lastSpeed) { - if (Messaging.isDebugging() && lastSpeed > 0) { - Messaging.debug( - "Repathfinding " + ((NPCHolder) entity).getNPC().getId() + " due to speed change from", - lastSpeed, "to", params.speed()); - } Entity handle = getHandle(entity); EntitySize size = null; try { @@ -784,13 +787,7 @@ public class NMSImpl implements NMSBridge { lastSpeed = params.speed(); } if (params.debug() && !NMSImpl.isNavigationFinished(navigation)) { - BlockData data = Material.DANDELION.createBlockData(); - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < navigation.k().e(); i++) { - PathPoint pp = navigation.k().a(i); - player.sendBlockChange(new Vector(pp.a, pp.b, pp.c).toLocation(player.getWorld()), data); - } - } + Util.sendBlockChanges(getBlocks(entity, navigation), Material.DANDELION); } navigation.a((double) params.speed()); return NMSImpl.isNavigationFinished(navigation); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerPathfinderNormal.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerPathfinderNormal.java index 655322da3..4e3d8ebd3 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerPathfinderNormal.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/PlayerPathfinderNormal.java @@ -7,7 +7,6 @@ import org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.longs.Long2ObjectOpenHa import org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.objects.Object2BooleanMap; import org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.objects.Object2BooleanOpenHashMap; -import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.nms.v1_16_R3.entity.EntityHumanNPC; import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.Block; @@ -219,7 +218,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { var18.k = -1.0F; return var18; } - if (var16++ >= Setting.MC_NAVIGATION_MAX_FALL_DISTANCE.asInt()) { + if (var16++ >= this.b.bP()) { PathPoint var18 = a(var0, var1, var2); var18.l = PathType.BLOCKED; var18.k = -1.0F; 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 cbd9fb186..c1ff96d5b 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 @@ -45,14 +45,13 @@ public class PlayerlistTracker extends PlayerChunkMap.EntityTracker { NMSImpl.sendPacket(entityplayer.getBukkitEntity(), new PacketPlayOutAnimation(tracker, 0)); NMS.sendTabListRemove(entityplayer.getBukkitEntity(), (Player) tracker.getBukkitEntity()); } - }, Setting.TABLIST_REMOVE_PACKET_DELAY.asInt()); + }, Setting.TABLIST_REMOVE_PACKET_DELAY.asTicks()); } @Override public void updatePlayer(final EntityPlayer entityplayer) { - if (entityplayer instanceof EntityHumanNPC) // prevent updates to NPC "viewers" - return; - if (tracker instanceof NPCHolder && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity())) + if ((entityplayer instanceof EntityHumanNPC) || (tracker instanceof NPCHolder + && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity()))) return; this.lastUpdatedPlayer = entityplayer; super.updatePlayer(entityplayer); 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 6e647de32..5809c8fac 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 @@ -59,6 +59,7 @@ public class AxolotlController extends MobEntityController { public static class EntityAxolotlNPC extends Axolotl implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityAxolotlNPC(EntityType types, Level level) { @@ -134,6 +135,11 @@ public class AxolotlController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 955e6b7b1..c9fe4a2da 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 @@ -114,6 +114,11 @@ public class BatController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 8216ad384..66e26d4de 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 @@ -111,6 +111,11 @@ public class BeeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 a52ca468c..f08de5143 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 @@ -106,6 +106,11 @@ public class BlazeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 b28f67870..9fa4c5e80 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 @@ -126,6 +126,11 @@ public class CatController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 c5bf7c0e0..fcb4e0e38 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 @@ -125,6 +125,11 @@ public class CaveSpiderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 404063d91..2999cac96 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 @@ -134,6 +134,11 @@ public class ChickenController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 a2e64a985..de4203dea 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 @@ -55,6 +55,7 @@ public class CodController extends MobEntityController { public static class EntityCodNPC extends Cod implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityCodNPC(EntityType types, Level level) { @@ -160,6 +161,11 @@ public class CodController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 a98b7cd0d..c3359cbf0 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 @@ -131,6 +131,11 @@ public class CowController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 95247ed30..c92d5cac4 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 @@ -50,6 +50,7 @@ public class CreeperController extends MobEntityController { public static class EntityCreeperNPC extends Creeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(EntityType types, Level level) { @@ -128,6 +129,11 @@ public class CreeperController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 b7d70afa4..44777f003 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 @@ -51,6 +51,7 @@ public class DolphinController extends MobEntityController { public static class EntityDolphinNPC extends Dolphin implements NPCHolder { private boolean inProtectedTick; + private final CitizensNPC npc; private MoveControl oldMoveController; @@ -127,6 +128,11 @@ public class DolphinController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 b976f4743..20759e2e2 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 @@ -125,6 +125,11 @@ public class DrownedController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 39f2ee34f..2f8b3dead 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 @@ -123,6 +123,11 @@ public class EnderDragonController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 9abfd387e..74b303c59 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 @@ -132,6 +132,11 @@ public class EndermanController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 df6462b6c..42db5a509 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 @@ -125,6 +125,11 @@ public class EndermiteController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 47b9ca7ef..0515fc375 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 @@ -119,6 +119,11 @@ public class EvokerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 edd828feb..64879fb0c 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 @@ -120,6 +120,11 @@ public class FoxController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 cb13a2ef6..8076cac85 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 @@ -101,6 +101,11 @@ public class GhastController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 941dbe785..96ca7e678 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 @@ -119,6 +119,11 @@ public class GiantController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 e9918490b..e35ca3798 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 @@ -119,6 +119,11 @@ public class GlowSquidController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 cf3493ad1..a89688d81 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 @@ -120,6 +120,11 @@ public class GoatController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 ddb154c14..059fc0379 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 @@ -125,6 +125,11 @@ public class GuardianController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 13be74ae8..de42d03f2 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 @@ -125,6 +125,11 @@ public class GuardianElderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 b2062d753..7b75a9bd5 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 @@ -122,6 +122,11 @@ public class HoglinController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 5fc2e4aed..a7619dbf7 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 @@ -53,6 +53,7 @@ public class HorseController extends MobEntityController { public static class EntityHorseNPC extends Horse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -157,6 +158,11 @@ public class HorseController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 9c5f38965..cbe586768 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 @@ -53,6 +53,7 @@ public class HorseDonkeyController extends MobEntityController { public static class EntityHorseDonkeyNPC extends Donkey implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -157,6 +158,11 @@ public class HorseDonkeyController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 43f0e032e..611fe3d1b 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 @@ -53,6 +53,7 @@ public class HorseMuleController extends MobEntityController { public static class EntityHorseMuleNPC extends Mule implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -157,6 +158,11 @@ public class HorseMuleController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 4e4429480..eeea0defb 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 @@ -53,6 +53,7 @@ public class HorseSkeletonController extends MobEntityController { public static class EntityHorseSkeletonNPC extends SkeletonHorse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -157,6 +158,11 @@ public class HorseSkeletonController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 a0ba466f8..2819f08f8 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 @@ -53,6 +53,7 @@ public class HorseZombieController extends MobEntityController { public static class EntityHorseZombieNPC extends ZombieHorse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -157,6 +158,11 @@ public class HorseZombieController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 6c5b50507..5ba48e0c4 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 @@ -119,6 +119,11 @@ public class IllusionerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 827a16522..1969fa177 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 @@ -119,6 +119,11 @@ public class IronGolemController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 e8f8227c3..41d0c29f8 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 @@ -137,6 +137,11 @@ public class LlamaController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 6cedd9cf0..1de8b1d8b 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 @@ -45,6 +45,7 @@ public class MagmaCubeController extends MobEntityController { public static class EntityMagmaCubeNPC extends MagmaCube implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityMagmaCubeNPC(EntityType types, Level level) { @@ -119,6 +120,11 @@ public class MagmaCubeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 5681a7aec..0c0ffcb5e 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 @@ -123,6 +123,11 @@ public class MushroomCowController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 98ea9163a..dc7a9d84b 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 @@ -126,6 +126,11 @@ public class OcelotController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 66c22bf32..0fc579da6 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 @@ -120,6 +120,11 @@ public class PandaController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 3d2c99de0..72468331f 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 @@ -110,6 +110,11 @@ public class ParrotController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 1d4ff41f3..6f473ee75 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 @@ -46,6 +46,7 @@ public class PhantomController extends MobEntityController { public static class EntityPhantomNPC extends Phantom implements NPCHolder { private final CitizensNPC npc; + private LookControl oldLookController; private MoveControl oldMoveController; @@ -143,6 +144,11 @@ public class PhantomController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 cee177338..ca51e9daa 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 @@ -128,6 +128,11 @@ public class PigController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 258b492af..caf991c02 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 @@ -119,6 +119,11 @@ public class PigZombieController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 ddb34e4f0..fdc4d80a0 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 @@ -122,6 +122,11 @@ public class PiglinBruteController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 12900ac9d..e6134941b 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 @@ -122,6 +122,11 @@ public class PiglinController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 dc031857f..bcaf25530 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 @@ -120,6 +120,11 @@ public class PillagerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 794300364..7c98493e9 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 @@ -102,6 +102,11 @@ public class PolarBearController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 82eacf605..50cc30e74 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 @@ -52,6 +52,7 @@ public class PufferFishController extends MobEntityController { public static class EntityPufferFishNPC extends Pufferfish implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityPufferFishNPC(EntityType types, Level level) { @@ -163,6 +164,11 @@ public class PufferFishController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 8dbbbe952..46ef90d9a 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 @@ -124,6 +124,11 @@ public class RabbitController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 6b873048d..465eddd8d 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 @@ -120,6 +120,11 @@ public class RavagerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 c96d53424..045b4fd45 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 @@ -49,6 +49,7 @@ public class SalmonController extends MobEntityController { public static class EntitySalmonNPC extends Salmon implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntitySalmonNPC(EntityType types, Level level) { @@ -152,6 +153,11 @@ public class SalmonController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 39c322f5e..90c351334 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 @@ -120,6 +120,11 @@ public class SheepController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 caf2b36d8..2e2947e44 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 @@ -123,6 +123,11 @@ public class ShulkerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 e48f17292..e594b556c 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 @@ -126,6 +126,11 @@ public class SilverfishController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 4f2d4d56d..e2678ed80 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 @@ -119,6 +119,11 @@ public class SkeletonController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 bb819e06f..dcb18b6e3 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 @@ -119,6 +119,11 @@ public class SkeletonStrayController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 388ef036a..8bafb8269 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 @@ -119,6 +119,11 @@ public class SkeletonWitherController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 b67d10318..93fe787da 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 @@ -45,6 +45,7 @@ public class SlimeController extends MobEntityController { public static class EntitySlimeNPC extends Slime implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntitySlimeNPC(EntityType types, Level level) { @@ -119,6 +120,11 @@ public class SlimeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 0951c92df..5cec89024 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 @@ -119,6 +119,11 @@ public class SnowmanController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 c36f1517a..7ace02339 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 @@ -119,6 +119,11 @@ public class SpiderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 343602098..0999ccb7c 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 @@ -119,6 +119,11 @@ public class SquidController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 c0aa90ab4..e3bddeebe 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 @@ -119,6 +119,11 @@ public class StriderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 612fa4165..01dd330e1 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 @@ -138,6 +138,11 @@ public class TraderLlamaController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 29b5e5d16..39fca3cbc 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 @@ -49,6 +49,7 @@ public class TropicalFishController extends MobEntityController { public static class EntityTropicalFishNPC extends TropicalFish implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityTropicalFishNPC(EntityType types, Level level) { @@ -154,6 +155,11 @@ public class TropicalFishController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 ebab347f8..1e6dc0e7e 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 @@ -46,6 +46,7 @@ public class TurtleController extends MobEntityController { public static class EntityTurtleNPC extends Turtle implements NPCHolder { private final CitizensNPC npc; + private JumpControl oldJumpController; private MoveControl oldMoveController; @@ -139,6 +140,11 @@ public class TurtleController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 8233ebb01..2a0a0178d 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 @@ -104,6 +104,11 @@ public class VexController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 738e42559..f3d9993fa 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 @@ -50,6 +50,7 @@ public class VillagerController extends MobEntityController { public static class EntityVillagerNPC extends Villager implements NPCHolder { private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(EntityType types, Level level) { @@ -133,6 +134,11 @@ public class VillagerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 c6cdc2e33..15844d8ca 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 @@ -120,6 +120,11 @@ public class VindicatorController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 2439dcad7..9b5c9f62c 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 @@ -49,6 +49,7 @@ public class WanderingTraderController extends MobEntityController { public static class EntityWanderingTraderNPC extends WanderingTrader implements NPCHolder { private boolean blockingATrade; + private boolean blockTrades = true; private final CitizensNPC npc; @@ -131,6 +132,11 @@ public class WanderingTraderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 f6a4ec6ad..3afcb479a 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 @@ -119,6 +119,11 @@ public class WitchController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 29f3c062c..61896ae03 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 @@ -110,6 +110,11 @@ public class WitherController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 014f9146f..46664de82 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 @@ -122,6 +122,11 @@ public class WolfController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 0a0d9633b..a6fca6a15 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 @@ -121,6 +121,11 @@ public class ZoglinController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 463809a59..02a4a264d 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 @@ -119,6 +119,11 @@ public class ZombieController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 ab2a8a83f..a70915829 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 @@ -119,6 +119,11 @@ public class ZombieHuskController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 76ddf19e5..774512821 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 @@ -119,6 +119,11 @@ public class ZombieVillagerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return 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 ea97622c6..528e9eb2c 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 @@ -23,7 +23,6 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.World; -import org.bukkit.block.data.BlockData; import org.bukkit.boss.BarColor; import org.bukkit.boss.BarStyle; import org.bukkit.boss.BossBar; @@ -73,6 +72,7 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.ai.NavigatorParameters; import net.citizensnpcs.api.ai.event.CancelReason; +import net.citizensnpcs.api.astar.pathfinder.DoorExaminer; import net.citizensnpcs.api.command.CommandManager; import net.citizensnpcs.api.command.exception.CommandException; import net.citizensnpcs.api.gui.ForwardingInventory; @@ -477,7 +477,9 @@ public class NMSImpl implements NMSBridge { for (ServerPlayerConnection link : Lists.newArrayList(linked)) { Player entity = link.getPlayer().getBukkitEntity(); unlink(entity); - callback.accept(entity); + if (callback != null) { + callback.accept(entity); + } } } }; @@ -664,8 +666,7 @@ public class NMSImpl implements NMSBridge { if (handle == null) return DEFAULT_SPEED; return DEFAULT_SPEED; - // return (float) - // handle.getAttribute(Attributes.d).getValue(); + // return (float) handle.getAttribute(Attributes.d).getValue(); } @Override @@ -712,10 +713,20 @@ public class NMSImpl implements NMSBridge { ((Mob) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater + 1F); } } + navigation.getNodeEvaluator().setCanOpenDoors(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; CancelReason reason; + private List getBlocks(final org.bukkit.entity.Entity entity, Path path) { + List blocks = Lists.newArrayList(); + for (int i = 0; i < path.getNodeCount(); i++) { + Node pp = path.getNode(i); + blocks.add(entity.getWorld().getBlockAt(pp.x, pp.y, pp.z)); + } + return blocks; + } + @Override public CancelReason getCancelReason() { return reason; @@ -730,14 +741,8 @@ public class NMSImpl implements NMSBridge { public void stop() { Path path = getPathEntity(navigation); if (params.debug() && path != null) { - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < path.getNodeCount(); i++) { - Node pp = path.getNode(i); - org.bukkit.block.Block block = new Vector(pp.x, pp.y, pp.z).toLocation(player.getWorld()) - .getBlock(); - player.sendBlockChange(block.getLocation(), block.getBlockData()); - } - } + List blocks = getBlocks(entity, path); + Util.sendBlockChanges(blocks, null); } if (oldWater >= 0) { if (raw instanceof ServerPlayer) { @@ -752,11 +757,6 @@ public class NMSImpl implements NMSBridge { @Override public boolean update() { if (params.speed() != lastSpeed) { - if (Messaging.isDebugging() && lastSpeed > 0) { - Messaging.debug( - "Repathfinding " + ((NPCHolder) entity).getNPC().getId() + " due to speed change from", - lastSpeed, "to", params.speed()); - } Entity handle = getHandle(entity); EntityDimensions size = null; try { @@ -780,15 +780,9 @@ public class NMSImpl implements NMSBridge { } lastSpeed = params.speed(); } - if (params.debug() && !navigation.isDone()) { - BlockData data = Material.DANDELION.createBlockData(); - Path path = getPathEntity(navigation); - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < path.getNodeCount(); i++) { - Node pp = path.getNode(i); - player.sendBlockChange(new Vector(pp.x, pp.y, pp.z).toLocation(player.getWorld()), data); - } - } + Path path = getPathEntity(navigation); + if (params.debug() && !path.isDone()) { + Util.sendBlockChanges(getBlocks(entity, path), Material.DANDELION); } navigation.setSpeedModifier(params.speed()); return navigation.isDone(); 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 c379b9222..979783f22 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 @@ -7,7 +7,6 @@ import org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.longs.Long2ObjectOpenHa import org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.objects.Object2BooleanMap; import org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.objects.Object2BooleanOpenHashMap; -import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.nms.v1_17_R1.entity.EntityHumanNPC; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -139,8 +138,7 @@ public class PlayerNodeEvaluator extends PlayerNodeEvaluatorBase { var18.costMalus = -1.0F; return var18; } - if (var16++ >= Setting.MC_NAVIGATION_MAX_FALL_DISTANCE.asInt() - || var16++ >= this.mob.getMaxFallDistance()) { + if (var16++ >= this.mob.getMaxFallDistance()) { Node var18 = getNode(var0, var1, var2); var18.type = BlockPathTypes.BLOCKED; var18.costMalus = -1.0F; 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 96277cb93..564141ecc 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 @@ -46,14 +46,13 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { NMSImpl.sendPacket(entityplayer.getBukkitEntity(), new ClientboundAnimatePacket(tracker, 0)); NMS.sendTabListRemove(entityplayer.getBukkitEntity(), (Player) tracker.getBukkitEntity()); } - }, Setting.TABLIST_REMOVE_PACKET_DELAY.asInt()); + }, Setting.TABLIST_REMOVE_PACKET_DELAY.asTicks()); } @Override public void updatePlayer(final ServerPlayer entityplayer) { - if (entityplayer instanceof EntityHumanNPC) // prevent updates to NPC "viewers" - return; - if (tracker instanceof NPCHolder && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity())) + if ((entityplayer instanceof EntityHumanNPC) || (tracker instanceof NPCHolder + && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity()))) return; this.lastUpdatedPlayer = entityplayer; super.updatePlayer(entityplayer); 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 e4a5898ad..22fea07c8 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 @@ -59,6 +59,7 @@ public class AxolotlController extends MobEntityController { public static class EntityAxolotlNPC extends Axolotl implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityAxolotlNPC(EntityType types, Level level) { @@ -134,6 +135,11 @@ public class AxolotlController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 6a50b8880..9cfc0a6b5 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 @@ -116,6 +116,11 @@ public class BatController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 78ff93de2..11d6161d0 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 @@ -113,6 +113,11 @@ public class BeeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 92d792aee..38f54351a 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 @@ -108,6 +108,11 @@ public class BlazeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 7e2928047..cf9bf2877 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 @@ -127,6 +127,11 @@ public class CatController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 a62376a62..61d8b8d4e 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 @@ -126,6 +126,11 @@ public class CaveSpiderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 84f604b34..ed0076970 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 @@ -135,6 +135,11 @@ public class ChickenController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 b6eb46b9a..425554852 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 @@ -56,6 +56,7 @@ public class CodController extends MobEntityController { public static class EntityCodNPC extends Cod implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityCodNPC(EntityType types, Level level) { @@ -161,6 +162,11 @@ public class CodController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 7a642c23f..07e3cdd3a 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 @@ -132,6 +132,11 @@ public class CowController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 f86745b73..6edced57a 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 @@ -50,6 +50,7 @@ public class CreeperController extends MobEntityController { public static class EntityCreeperNPC extends Creeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(EntityType types, Level level) { @@ -128,6 +129,11 @@ public class CreeperController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 ec7d8449e..15329faf8 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 @@ -51,6 +51,7 @@ public class DolphinController extends MobEntityController { public static class EntityDolphinNPC extends Dolphin implements NPCHolder { private boolean inProtectedTick; + private final CitizensNPC npc; private MoveControl oldMoveController; @@ -127,6 +128,11 @@ public class DolphinController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 4aef93e2f..bf19ad463 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 @@ -126,6 +126,11 @@ public class DrownedController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 2e8123fd0..2941061b2 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 @@ -125,6 +125,11 @@ public class EnderDragonController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 9e2545be7..c4bb5ee03 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 @@ -129,6 +129,11 @@ public class EndermanController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 312505aa4..71bd73b8d 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 @@ -126,6 +126,11 @@ public class EndermiteController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 27f5026c0..69933957f 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 @@ -120,6 +120,11 @@ public class EvokerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 f59c316b7..4474d070a 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 @@ -121,6 +121,11 @@ public class FoxController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 1a5caaecf..20a7c6238 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 @@ -103,6 +103,11 @@ public class GhastController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 50406860b..9954b75d1 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 @@ -120,6 +120,11 @@ public class GiantController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 db9c56d32..3778a3150 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 @@ -120,6 +120,11 @@ public class GlowSquidController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 435081733..d16c04694 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 @@ -121,6 +121,11 @@ public class GoatController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 e874a6caa..a1a903ba1 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 @@ -126,6 +126,11 @@ public class GuardianController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 f98bb4440..2546a6de9 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 @@ -126,6 +126,11 @@ public class GuardianElderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 d032565aa..e6a3d345c 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 @@ -123,6 +123,11 @@ public class HoglinController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 12ff530c1..55cfee253 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 @@ -54,6 +54,7 @@ public class HorseController extends MobEntityController { public static class EntityHorseNPC extends Horse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -158,6 +159,11 @@ public class HorseController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 92e9e08e9..52264fa04 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 @@ -54,6 +54,7 @@ public class HorseDonkeyController extends MobEntityController { public static class EntityHorseDonkeyNPC extends Donkey implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -158,6 +159,11 @@ public class HorseDonkeyController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 c05cad6b8..8679863ee 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 @@ -54,6 +54,7 @@ public class HorseMuleController extends MobEntityController { public static class EntityHorseMuleNPC extends Mule implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -158,6 +159,11 @@ public class HorseMuleController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 070bf5fca..faafe46b9 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 @@ -54,6 +54,7 @@ public class HorseSkeletonController extends MobEntityController { public static class EntityHorseSkeletonNPC extends SkeletonHorse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -158,6 +159,11 @@ public class HorseSkeletonController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 886fcda04..6942b026a 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 @@ -54,6 +54,7 @@ public class HorseZombieController extends MobEntityController { public static class EntityHorseZombieNPC extends ZombieHorse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -158,6 +159,11 @@ public class HorseZombieController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 089c198cb..b94597b49 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 @@ -120,6 +120,11 @@ public class IllusionerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 d7bb0ff67..ec8f8ebd9 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 @@ -120,6 +120,11 @@ public class IronGolemController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 292a1912a..2d73d5391 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 @@ -138,6 +138,11 @@ public class LlamaController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 ad6fd340e..a31f91d39 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 @@ -46,6 +46,7 @@ public class MagmaCubeController extends MobEntityController { public static class EntityMagmaCubeNPC extends MagmaCube implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityMagmaCubeNPC(EntityType types, Level level) { @@ -120,6 +121,11 @@ public class MagmaCubeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 ae139dd43..9c6d8ef15 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 @@ -124,6 +124,11 @@ public class MushroomCowController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 2891176ae..a4f169398 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 @@ -127,6 +127,11 @@ public class OcelotController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 d857ce22e..0ecce2f39 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 @@ -121,6 +121,11 @@ public class PandaController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 0f9a393c9..3fae597bf 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 @@ -112,6 +112,11 @@ public class ParrotController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 2aadecd9a..639386d94 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 @@ -47,6 +47,7 @@ public class PhantomController extends MobEntityController { public static class EntityPhantomNPC extends Phantom implements NPCHolder { private final CitizensNPC npc; + private LookControl oldLookController; private MoveControl oldMoveController; @@ -144,6 +145,11 @@ public class PhantomController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 22eec64bd..89529f525 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 @@ -128,6 +128,11 @@ public class PigController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 d3407f936..4f2932726 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 @@ -120,6 +120,11 @@ public class PigZombieController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 2c2a8a70b..c57aefa56 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 @@ -123,6 +123,11 @@ public class PiglinBruteController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 29762670f..cd9a525d2 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 @@ -123,6 +123,11 @@ public class PiglinController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 a03c0f048..767bd02ae 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 @@ -121,6 +121,11 @@ public class PillagerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 3767cab94..02dae1f7d 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 @@ -104,6 +104,11 @@ public class PolarBearController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 fde3e7c81..791462296 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 @@ -53,6 +53,7 @@ public class PufferFishController extends MobEntityController { public static class EntityPufferFishNPC extends Pufferfish implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityPufferFishNPC(EntityType types, Level level) { @@ -164,6 +165,11 @@ public class PufferFishController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 19158189d..57952ab19 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 @@ -125,6 +125,11 @@ public class RabbitController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 c99bc433a..63c9d7e6c 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 @@ -126,6 +126,11 @@ public class RavagerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 da2e76083..a1ee5647f 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 @@ -50,6 +50,7 @@ public class SalmonController extends MobEntityController { public static class EntitySalmonNPC extends Salmon implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntitySalmonNPC(EntityType types, Level level) { @@ -153,6 +154,11 @@ public class SalmonController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 4956a7f5a..59ce54e10 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 @@ -121,6 +121,11 @@ public class SheepController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 0d6938421..abd9712d1 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 @@ -124,6 +124,11 @@ public class ShulkerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 4f520b190..2c5c527fd 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 @@ -127,6 +127,11 @@ public class SilverfishController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 e782b7537..0b5b5e946 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 @@ -120,6 +120,11 @@ public class SkeletonController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 8e42705c7..422db79e8 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 @@ -120,6 +120,11 @@ public class SkeletonStrayController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 9bae03919..8697e1119 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 @@ -120,6 +120,11 @@ public class SkeletonWitherController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 d749f21f6..b0eb86b33 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 @@ -46,6 +46,7 @@ public class SlimeController extends MobEntityController { public static class EntitySlimeNPC extends Slime implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntitySlimeNPC(EntityType types, Level level) { @@ -120,6 +121,11 @@ public class SlimeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 d72d16576..15c9de4d6 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 @@ -120,6 +120,11 @@ public class SnowmanController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 f686f65aa..013be773d 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 @@ -120,6 +120,11 @@ public class SpiderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 0ab07a574..a3864b13d 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 @@ -120,6 +120,11 @@ public class SquidController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 12d68260c..d925508e6 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 @@ -120,6 +120,11 @@ public class StriderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 c589ae0cb..dd9e44cf2 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 @@ -139,6 +139,11 @@ public class TraderLlamaController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 1907e2176..64140b1c2 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 @@ -50,6 +50,7 @@ public class TropicalFishController extends MobEntityController { public static class EntityTropicalFishNPC extends TropicalFish implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityTropicalFishNPC(EntityType types, Level level) { @@ -155,6 +156,11 @@ public class TropicalFishController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 5e3ebdfbb..ed9b3bc69 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 @@ -47,6 +47,7 @@ public class TurtleController extends MobEntityController { public static class EntityTurtleNPC extends Turtle implements NPCHolder { private final CitizensNPC npc; + private JumpControl oldJumpController; private MoveControl oldMoveController; @@ -140,6 +141,11 @@ public class TurtleController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 c183959b9..2a589811f 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 @@ -106,6 +106,11 @@ public class VexController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 bdda2a871..1816fab59 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 @@ -50,6 +50,7 @@ public class VillagerController extends MobEntityController { public static class EntityVillagerNPC extends Villager implements NPCHolder { private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(EntityType types, Level level) { @@ -133,6 +134,11 @@ public class VillagerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 74b697f0c..095e6315c 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 @@ -121,6 +121,11 @@ public class VindicatorController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 96fedb241..e37e2fe5a 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 @@ -49,6 +49,7 @@ public class WanderingTraderController extends MobEntityController { public static class EntityWanderingTraderNPC extends WanderingTrader implements NPCHolder { private boolean blockingATrade; + private boolean blockTrades = true; private final CitizensNPC npc; @@ -131,6 +132,11 @@ public class WanderingTraderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 7a7c05f3b..f2eda4751 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 @@ -120,6 +120,11 @@ public class WitchController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 819d07687..5174302ce 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 @@ -112,6 +112,11 @@ public class WitherController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 e094f48e3..f18663896 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 @@ -123,6 +123,11 @@ public class WolfController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 d1531c388..0dfb60aaf 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 @@ -122,6 +122,11 @@ public class ZoglinController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 d785a0368..11f4af5f6 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 @@ -120,6 +120,11 @@ public class ZombieController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 d23ad171c..03e0b9056 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 @@ -120,6 +120,11 @@ public class ZombieHuskController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 191aabc87..0427f083e 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 @@ -120,6 +120,11 @@ public class ZombieVillagerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; 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 b782cda0f..3d7621b57 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 @@ -22,7 +22,6 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.World; -import org.bukkit.block.data.BlockData; import org.bukkit.boss.BarColor; import org.bukkit.boss.BarStyle; import org.bukkit.boss.BossBar; @@ -73,6 +72,7 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.ai.NavigatorParameters; import net.citizensnpcs.api.ai.event.CancelReason; +import net.citizensnpcs.api.astar.pathfinder.DoorExaminer; import net.citizensnpcs.api.command.CommandManager; import net.citizensnpcs.api.command.exception.CommandException; import net.citizensnpcs.api.event.DespawnReason; @@ -481,7 +481,9 @@ public class NMSImpl implements NMSBridge { for (ServerPlayerConnection link : Lists.newArrayList(linked)) { Player entity = link.getPlayer().getBukkitEntity(); unlink(entity); - callback.accept(entity); + if (callback != null) { + callback.accept(entity); + } } } }; @@ -717,10 +719,20 @@ public class NMSImpl implements NMSBridge { ((Mob) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater + 1F); } } + navigation.getNodeEvaluator().setCanOpenDoors(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; CancelReason reason; + private List getBlocks(final org.bukkit.entity.Entity entity, Path path) { + List blocks = Lists.newArrayList(); + for (int i = 0; i < path.getNodeCount(); i++) { + Node pp = path.getNode(i); + blocks.add(entity.getWorld().getBlockAt(pp.x, pp.y, pp.z)); + } + return blocks; + } + @Override public CancelReason getCancelReason() { return reason; @@ -735,13 +747,8 @@ public class NMSImpl implements NMSBridge { public void stop() { Path path = getPathEntity(navigation); if (params.debug() && path != null) { - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < path.getNodeCount(); i++) { - Node pp = path.getNode(i); - org.bukkit.block.Block block = player.getWorld().getBlockAt(pp.x, pp.y, pp.z); - player.sendBlockChange(block.getLocation(), block.getBlockData()); - } - } + List blocks = getBlocks(entity, path); + Util.sendBlockChanges(blocks, null); } if (oldWater >= 0) { if (raw instanceof ServerPlayer) { @@ -756,11 +763,6 @@ public class NMSImpl implements NMSBridge { @Override public boolean update() { if (params.speed() != lastSpeed) { - if (Messaging.isDebugging() && lastSpeed > 0) { - Messaging.debug( - "Repathfinding " + ((NPCHolder) entity).getNPC().getId() + " due to speed change from", - lastSpeed, "to", params.speed()); - } Entity handle = getHandle(entity); EntityDimensions size = null; try { @@ -785,14 +787,7 @@ public class NMSImpl implements NMSBridge { lastSpeed = params.speed(); } if (params.debug() && !navigation.isDone()) { - BlockData data = Material.DANDELION.createBlockData(); - Path path = getPathEntity(navigation); - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < path.getNodeCount(); i++) { - Node pp = path.getNode(i); - player.sendBlockChange(new Vector(pp.x, pp.y, pp.z).toLocation(player.getWorld()), data); - } - } + Util.sendBlockChanges(getBlocks(entity, getPathEntity(navigation)), Material.DANDELION); } navigation.setSpeedModifier(params.speed()); return navigation.isDone(); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerNavigation.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerNavigation.java index 841236a5e..d0d7ba0f9 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerNavigation.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerNavigation.java @@ -149,7 +149,7 @@ public class PlayerNavigation extends PathNavigation { } return true; } - + private boolean canWalkOn(int var0, int var1, int var2, int var3, int var4, int var5, Vec3 var6, double var7, double var9) { int var11 = var0 - var3 / 2; diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerNodeEvaluator.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerNodeEvaluator.java index 1763b1aff..dc0d94b85 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerNodeEvaluator.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/util/PlayerNodeEvaluator.java @@ -6,7 +6,6 @@ import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2BooleanMap; import it.unimi.dsi.fastutil.objects.Object2BooleanOpenHashMap; -import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.nms.v1_18_R2.entity.EntityHumanNPC; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -138,8 +137,7 @@ public class PlayerNodeEvaluator extends PlayerNodeEvaluatorBase { var18.costMalus = -1.0F; return var18; } - if (var16++ >= Setting.MC_NAVIGATION_MAX_FALL_DISTANCE.asInt() - || var16++ >= this.mob.getMaxFallDistance()) { + if (var16++ >= this.mob.getMaxFallDistance()) { Node var18 = getNode(var0, var1, var2); var18.type = BlockPathTypes.BLOCKED; var18.costMalus = -1.0F; 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 c377a9916..3ed9bdc15 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 @@ -46,14 +46,13 @@ public class PlayerlistTracker extends ChunkMap.TrackedEntity { NMSImpl.sendPacket(entityplayer.getBukkitEntity(), new ClientboundAnimatePacket(tracker, 0)); NMS.sendTabListRemove(entityplayer.getBukkitEntity(), (Player) tracker.getBukkitEntity()); } - }, Setting.TABLIST_REMOVE_PACKET_DELAY.asInt()); + }, Setting.TABLIST_REMOVE_PACKET_DELAY.asTicks()); } @Override public void updatePlayer(final ServerPlayer entityplayer) { - if (entityplayer instanceof EntityHumanNPC) // prevent updates to NPC "viewers" - return; - if (tracker instanceof NPCHolder && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity())) + if ((entityplayer instanceof EntityHumanNPC) || (tracker instanceof NPCHolder + && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity()))) return; this.lastUpdatedPlayer = entityplayer; super.updatePlayer(entityplayer); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AllayController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AllayController.java index 2f45b958e..e9096c689 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AllayController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AllayController.java @@ -59,6 +59,7 @@ public class AllayController extends MobEntityController { public static class EntityAllayNPC extends Allay implements NPCHolder { private final CitizensNPC npc; + private int taskId = -1; public EntityAllayNPC(EntityType types, Level level) { @@ -137,6 +138,11 @@ public class AllayController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AxolotlController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AxolotlController.java index 75c13dac3..f18d6c9ad 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AxolotlController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AxolotlController.java @@ -60,6 +60,7 @@ public class AxolotlController extends MobEntityController { public static class EntityAxolotlNPC extends Axolotl implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityAxolotlNPC(EntityType types, Level level) { @@ -135,6 +136,11 @@ public class AxolotlController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BatController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BatController.java index 09b8c1ee6..39837fbf1 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BatController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BatController.java @@ -116,6 +116,11 @@ public class BatController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BeeController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BeeController.java index c59a7809a..346d7cba5 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BeeController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BeeController.java @@ -113,6 +113,11 @@ public class BeeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BlazeController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BlazeController.java index 0931c37ae..06e15023b 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BlazeController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BlazeController.java @@ -108,6 +108,11 @@ public class BlazeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CamelController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CamelController.java index 3ef5a9532..fcbca3490 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CamelController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CamelController.java @@ -145,6 +145,11 @@ public class CamelController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CatController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CatController.java index f17c45db1..8c9ebd9f8 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CatController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CatController.java @@ -128,6 +128,11 @@ public class CatController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CaveSpiderController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CaveSpiderController.java index 4721ce9d6..7317e4a72 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CaveSpiderController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CaveSpiderController.java @@ -127,6 +127,11 @@ public class CaveSpiderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ChickenController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ChickenController.java index 1a03e6146..fea59f561 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ChickenController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ChickenController.java @@ -136,6 +136,11 @@ public class ChickenController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CodController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CodController.java index c0339d67a..44cceb5d9 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CodController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CodController.java @@ -57,6 +57,7 @@ public class CodController extends MobEntityController { public static class EntityCodNPC extends Cod implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityCodNPC(EntityType types, Level level) { @@ -162,6 +163,11 @@ public class CodController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CowController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CowController.java index d47d68bdd..08167ffa7 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CowController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CowController.java @@ -133,6 +133,11 @@ public class CowController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CreeperController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CreeperController.java index 191ac63c8..a8b9dfad2 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CreeperController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CreeperController.java @@ -51,6 +51,7 @@ public class CreeperController extends MobEntityController { public static class EntityCreeperNPC extends Creeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(EntityType types, Level level) { @@ -129,6 +130,11 @@ public class CreeperController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DolphinController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DolphinController.java index e3e44c2dc..339f9e506 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DolphinController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DolphinController.java @@ -52,6 +52,7 @@ public class DolphinController extends MobEntityController { public static class EntityDolphinNPC extends Dolphin implements NPCHolder { private boolean inProtectedTick; + private final CitizensNPC npc; private MoveControl oldMoveController; @@ -128,6 +129,11 @@ public class DolphinController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DrownedController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DrownedController.java index b7d72f6e5..7159f5349 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DrownedController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DrownedController.java @@ -127,6 +127,11 @@ public class DrownedController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EnderDragonController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EnderDragonController.java index c585d7ff7..74f9a8ecf 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EnderDragonController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EnderDragonController.java @@ -125,6 +125,11 @@ public class EnderDragonController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermanController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermanController.java index faf7e8144..5017beb13 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermanController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermanController.java @@ -130,6 +130,11 @@ public class EndermanController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermiteController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermiteController.java index b09ac2d64..0bf83ad9b 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermiteController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermiteController.java @@ -127,6 +127,11 @@ public class EndermiteController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EvokerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EvokerController.java index 46122c547..132a0739f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EvokerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EvokerController.java @@ -121,6 +121,11 @@ public class EvokerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FoxController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FoxController.java index 560adf206..205c65a56 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FoxController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FoxController.java @@ -122,6 +122,11 @@ public class FoxController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FrogController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FrogController.java index f98b4ec92..68d466624 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FrogController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FrogController.java @@ -125,6 +125,11 @@ public class FrogController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GhastController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GhastController.java index 22396634e..f4cf3da10 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GhastController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GhastController.java @@ -103,6 +103,11 @@ public class GhastController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GiantController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GiantController.java index 4355beb7f..312959b46 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GiantController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GiantController.java @@ -121,6 +121,11 @@ public class GiantController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GlowSquidController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GlowSquidController.java index 975bce05e..6d81d26ef 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GlowSquidController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GlowSquidController.java @@ -121,6 +121,11 @@ public class GlowSquidController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GoatController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GoatController.java index 751d3cc54..315b1db3f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GoatController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GoatController.java @@ -122,6 +122,11 @@ public class GoatController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianController.java index 07ed199a2..9a92d6110 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianController.java @@ -127,6 +127,11 @@ public class GuardianController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianElderController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianElderController.java index f212f66de..3930ff3a5 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianElderController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianElderController.java @@ -127,6 +127,11 @@ public class GuardianElderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HoglinController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HoglinController.java index 035fef7b9..1cc6366c0 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HoglinController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HoglinController.java @@ -127,6 +127,11 @@ public class HoglinController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseController.java index f430d4e3f..4347c1d48 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseController.java @@ -55,6 +55,7 @@ public class HorseController extends MobEntityController { public static class EntityHorseNPC extends Horse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -154,6 +155,11 @@ public class HorseController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseDonkeyController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseDonkeyController.java index 39eefdfd4..598a3c346 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseDonkeyController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseDonkeyController.java @@ -55,6 +55,7 @@ public class HorseDonkeyController extends MobEntityController { public static class EntityHorseDonkeyNPC extends Donkey implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -154,6 +155,11 @@ public class HorseDonkeyController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseMuleController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseMuleController.java index a0724aa47..3d5ffa19e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseMuleController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseMuleController.java @@ -55,6 +55,7 @@ public class HorseMuleController extends MobEntityController { public static class EntityHorseMuleNPC extends Mule implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -154,6 +155,11 @@ public class HorseMuleController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseSkeletonController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseSkeletonController.java index c6318a8d7..e99d7b16a 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseSkeletonController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseSkeletonController.java @@ -55,6 +55,7 @@ public class HorseSkeletonController extends MobEntityController { public static class EntityHorseSkeletonNPC extends SkeletonHorse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -154,6 +155,11 @@ public class HorseSkeletonController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseZombieController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseZombieController.java index a53165f79..2595790a2 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseZombieController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseZombieController.java @@ -55,6 +55,7 @@ public class HorseZombieController extends MobEntityController { public static class EntityHorseZombieNPC extends ZombieHorse implements NPCHolder { private double baseMovementSpeed; + private final CitizensNPC npc; private boolean riding; @@ -154,6 +155,11 @@ public class HorseZombieController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IllusionerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IllusionerController.java index 0821eb428..ff8f0833b 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IllusionerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IllusionerController.java @@ -121,6 +121,11 @@ public class IllusionerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IronGolemController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IronGolemController.java index b6719d851..6f04e5b07 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IronGolemController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IronGolemController.java @@ -121,6 +121,11 @@ public class IronGolemController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/LlamaController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/LlamaController.java index 24f266974..6d58afe34 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/LlamaController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/LlamaController.java @@ -139,6 +139,11 @@ public class LlamaController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MagmaCubeController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MagmaCubeController.java index dacf3ea7c..85a61969e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MagmaCubeController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MagmaCubeController.java @@ -47,6 +47,7 @@ public class MagmaCubeController extends MobEntityController { public static class EntityMagmaCubeNPC extends MagmaCube implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityMagmaCubeNPC(EntityType types, Level level) { @@ -121,6 +122,11 @@ public class MagmaCubeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MushroomCowController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MushroomCowController.java index 59c1973e1..ef36d8d80 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MushroomCowController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MushroomCowController.java @@ -125,6 +125,11 @@ public class MushroomCowController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/OcelotController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/OcelotController.java index 853d6a027..6bf07730b 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/OcelotController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/OcelotController.java @@ -128,6 +128,11 @@ public class OcelotController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PandaController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PandaController.java index b91a49633..b18806c44 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PandaController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PandaController.java @@ -122,6 +122,11 @@ public class PandaController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ParrotController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ParrotController.java index d377b969c..5b136370f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ParrotController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ParrotController.java @@ -112,6 +112,11 @@ public class ParrotController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PhantomController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PhantomController.java index 639d4a48a..09e5be67c 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PhantomController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PhantomController.java @@ -48,6 +48,7 @@ public class PhantomController extends MobEntityController { public static class EntityPhantomNPC extends Phantom implements NPCHolder { private final CitizensNPC npc; + private LookControl oldLookController; private MoveControl oldMoveController; @@ -145,6 +146,11 @@ public class PhantomController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigController.java index d36218655..6cf649865 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigController.java @@ -123,6 +123,11 @@ public class PigController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigZombieController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigZombieController.java index 1a4e40184..7000d8249 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigZombieController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigZombieController.java @@ -121,6 +121,11 @@ public class PigZombieController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinBruteController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinBruteController.java index 9d9c91281..68f53538f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinBruteController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinBruteController.java @@ -124,6 +124,11 @@ public class PiglinBruteController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinController.java index 305334319..d2181e0b9 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinController.java @@ -124,6 +124,11 @@ public class PiglinController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PillagerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PillagerController.java index e3904bcd3..c1ca65f0e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PillagerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PillagerController.java @@ -122,6 +122,11 @@ public class PillagerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PolarBearController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PolarBearController.java index 30e971e4c..da27d9db4 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PolarBearController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PolarBearController.java @@ -104,6 +104,11 @@ public class PolarBearController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PufferFishController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PufferFishController.java index 6af5a1f36..2627aa8d3 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PufferFishController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PufferFishController.java @@ -54,6 +54,7 @@ public class PufferFishController extends MobEntityController { public static class EntityPufferFishNPC extends Pufferfish implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityPufferFishNPC(EntityType types, Level level) { @@ -165,6 +166,11 @@ public class PufferFishController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RabbitController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RabbitController.java index cfd3d536b..cccb389ce 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RabbitController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RabbitController.java @@ -126,6 +126,11 @@ public class RabbitController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RavagerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RavagerController.java index 07e47f1db..173378d4f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RavagerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RavagerController.java @@ -122,6 +122,11 @@ public class RavagerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SalmonController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SalmonController.java index 97690e706..0c5ebc3f9 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SalmonController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SalmonController.java @@ -51,6 +51,7 @@ public class SalmonController extends MobEntityController { public static class EntitySalmonNPC extends Salmon implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntitySalmonNPC(EntityType types, Level level) { @@ -154,6 +155,11 @@ public class SalmonController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SheepController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SheepController.java index 3957f44d0..3c2951c82 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SheepController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SheepController.java @@ -122,6 +122,11 @@ public class SheepController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ShulkerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ShulkerController.java index 5c955ba38..5ac465bc2 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ShulkerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ShulkerController.java @@ -125,6 +125,11 @@ public class ShulkerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SilverfishController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SilverfishController.java index 56fcc6bd6..49bfaddb9 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SilverfishController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SilverfishController.java @@ -128,6 +128,11 @@ public class SilverfishController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonController.java index 9d9bac5ca..08c9a07c1 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonController.java @@ -121,6 +121,11 @@ public class SkeletonController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonStrayController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonStrayController.java index aa9bc1d3a..7f615158a 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonStrayController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonStrayController.java @@ -121,6 +121,11 @@ public class SkeletonStrayController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonWitherController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonWitherController.java index 2898e88cc..b458b3325 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonWitherController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonWitherController.java @@ -121,6 +121,11 @@ public class SkeletonWitherController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SlimeController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SlimeController.java index cb1041c97..e71cc56ca 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SlimeController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SlimeController.java @@ -47,6 +47,7 @@ public class SlimeController extends MobEntityController { public static class EntitySlimeNPC extends Slime implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntitySlimeNPC(EntityType types, Level level) { @@ -121,6 +122,11 @@ public class SlimeController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SnowmanController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SnowmanController.java index 3016984ec..bf6592e0e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SnowmanController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SnowmanController.java @@ -121,6 +121,11 @@ public class SnowmanController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SpiderController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SpiderController.java index 406ec9500..0e1d7028d 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SpiderController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SpiderController.java @@ -121,6 +121,11 @@ public class SpiderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SquidController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SquidController.java index 76aafc422..dfe4d7ddb 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SquidController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SquidController.java @@ -121,6 +121,11 @@ public class SquidController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/StriderController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/StriderController.java index 44f2024f4..57af53e2e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/StriderController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/StriderController.java @@ -121,6 +121,11 @@ public class StriderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TadpoleController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TadpoleController.java index b79822e38..7c7aa447e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TadpoleController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TadpoleController.java @@ -52,6 +52,7 @@ public class TadpoleController extends MobEntityController { public static class EntityTadpoleNPC extends Tadpole implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityTadpoleNPC(EntityType types, Level level) { @@ -154,6 +155,11 @@ public class TadpoleController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TraderLlamaController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TraderLlamaController.java index e178c16a3..4f8c577f2 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TraderLlamaController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TraderLlamaController.java @@ -140,6 +140,11 @@ public class TraderLlamaController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TropicalFishController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TropicalFishController.java index 18b9354ac..a79d6f784 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TropicalFishController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TropicalFishController.java @@ -51,6 +51,7 @@ public class TropicalFishController extends MobEntityController { public static class EntityTropicalFishNPC extends TropicalFish implements NPCHolder { private final CitizensNPC npc; + private MoveControl oldMoveController; public EntityTropicalFishNPC(EntityType types, Level level) { @@ -156,6 +157,11 @@ public class TropicalFishController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TurtleController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TurtleController.java index 2a93160b2..d03ef3c42 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TurtleController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TurtleController.java @@ -48,6 +48,7 @@ public class TurtleController extends MobEntityController { public static class EntityTurtleNPC extends Turtle implements NPCHolder { private final CitizensNPC npc; + private JumpControl oldJumpController; private MoveControl oldMoveController; @@ -141,6 +142,11 @@ public class TurtleController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VexController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VexController.java index f90b74060..bc21a6828 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VexController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VexController.java @@ -106,6 +106,11 @@ public class VexController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VillagerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VillagerController.java index 4e39125f8..502e84de8 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VillagerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VillagerController.java @@ -51,6 +51,7 @@ public class VillagerController extends MobEntityController { public static class EntityVillagerNPC extends Villager implements NPCHolder { private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(EntityType types, Level level) { @@ -134,6 +135,11 @@ public class VillagerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VindicatorController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VindicatorController.java index 1f06e74c7..f24d1797a 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VindicatorController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VindicatorController.java @@ -122,6 +122,11 @@ public class VindicatorController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WanderingTraderController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WanderingTraderController.java index 836896c4b..25e2d7f70 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WanderingTraderController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WanderingTraderController.java @@ -50,6 +50,7 @@ public class WanderingTraderController extends MobEntityController { public static class EntityWanderingTraderNPC extends WanderingTrader implements NPCHolder { private boolean blockingATrade; + private boolean blockTrades = true; private final CitizensNPC npc; @@ -132,6 +133,11 @@ public class WanderingTraderController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WardenController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WardenController.java index 58a541948..a3705db83 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WardenController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WardenController.java @@ -130,6 +130,11 @@ public class WardenController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitchController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitchController.java index c5ef8cee9..6626a8405 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitchController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitchController.java @@ -121,6 +121,11 @@ public class WitchController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitherController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitherController.java index 27dd5df1a..d4280d117 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitherController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitherController.java @@ -112,6 +112,11 @@ public class WitherController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WolfController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WolfController.java index a72ae92ef..8e49deabf 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WolfController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WolfController.java @@ -124,6 +124,11 @@ public class WolfController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZoglinController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZoglinController.java index e70626290..758710e26 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZoglinController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZoglinController.java @@ -123,6 +123,11 @@ public class ZoglinController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieController.java index 9b8b23741..4050c3243 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieController.java @@ -121,6 +121,11 @@ public class ZombieController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieHuskController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieHuskController.java index 6d49a470f..e33d90b61 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieHuskController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieHuskController.java @@ -121,6 +121,11 @@ public class ZombieHuskController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieVillagerController.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieVillagerController.java index f9daa0f74..c8b206c8b 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieVillagerController.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieVillagerController.java @@ -121,6 +121,11 @@ public class ZombieVillagerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); } + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + @Override public NPC getNPC() { return npc; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/CitizensEntityTracker.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/CitizensEntityTracker.java index fecff44d9..5bbd4cb60 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/CitizensEntityTracker.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/CitizensEntityTracker.java @@ -70,14 +70,13 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity { Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> { NMS.sendTabListRemove(entityplayer.getBukkitEntity(), (Player) tracker.getBukkitEntity()); NMSImpl.sendPacket(entityplayer.getBukkitEntity(), new ClientboundAnimatePacket(tracker, 0)); - }, Setting.TABLIST_REMOVE_PACKET_DELAY.asInt()); + }, Setting.TABLIST_REMOVE_PACKET_DELAY.asTicks()); } @Override public void updatePlayer(final ServerPlayer entityplayer) { - if (entityplayer instanceof EntityHumanNPC) // prevent updates to NPC "viewers" - return; - if (tracker instanceof NPCHolder && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity())) + if ((entityplayer instanceof EntityHumanNPC) || (tracker instanceof NPCHolder + && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity()))) return; this.lastUpdatedPlayer = entityplayer; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSImpl.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSImpl.java index ca1de850a..52b6181e4 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSImpl.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSImpl.java @@ -23,7 +23,6 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.World; -import org.bukkit.block.data.BlockData; import org.bukkit.boss.BarColor; import org.bukkit.boss.BarStyle; import org.bukkit.boss.BossBar; @@ -76,6 +75,7 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.ai.NavigatorParameters; import net.citizensnpcs.api.ai.event.CancelReason; +import net.citizensnpcs.api.astar.pathfinder.DoorExaminer; import net.citizensnpcs.api.command.CommandManager; import net.citizensnpcs.api.command.exception.CommandException; import net.citizensnpcs.api.event.DespawnReason; @@ -501,7 +501,9 @@ public class NMSImpl implements NMSBridge { for (ServerPlayerConnection link : Lists.newArrayList(linked)) { Player entity = link.getPlayer().getBukkitEntity(); unlink(entity); - callback.accept(entity); + if (callback != null) { + callback.accept(entity); + } } } }; @@ -737,10 +739,20 @@ public class NMSImpl implements NMSBridge { ((Mob) raw).setPathfindingMalus(BlockPathTypes.WATER, oldWater + 1F); } } + navigation.getNodeEvaluator().setCanOpenDoors(params.hasExaminer(DoorExaminer.class)); return new MCNavigator() { float lastSpeed; CancelReason reason; + private List getBlocks(final org.bukkit.entity.Entity entity, Path path) { + List blocks = Lists.newArrayList(); + for (int i = 0; i < path.getNodeCount(); i++) { + Node pp = path.getNode(i); + blocks.add(entity.getWorld().getBlockAt(pp.x, pp.y, pp.z)); + } + return blocks; + } + @Override public CancelReason getCancelReason() { return reason; @@ -755,13 +767,8 @@ public class NMSImpl implements NMSBridge { public void stop() { Path path = getPathEntity(navigation); if (params.debug() && path != null) { - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < path.getNodeCount(); i++) { - Node pp = path.getNode(i); - org.bukkit.block.Block block = player.getWorld().getBlockAt(pp.x, pp.y, pp.z); - player.sendBlockChange(block.getLocation(), block.getBlockData()); - } - } + List blocks = getBlocks(entity, path); + Util.sendBlockChanges(blocks, null); } if (oldWater >= 0) { if (raw instanceof ServerPlayer) { @@ -776,11 +783,6 @@ public class NMSImpl implements NMSBridge { @Override public boolean update() { if (params.speed() != lastSpeed) { - if (Messaging.isDebugging() && lastSpeed > 0) { - Messaging.debug( - "Repathfinding " + ((NPCHolder) entity).getNPC().getId() + " due to speed change from", - lastSpeed, "to", params.speed()); - } Entity handle = getHandle(entity); EntityDimensions size = null; try { @@ -805,14 +807,7 @@ public class NMSImpl implements NMSBridge { lastSpeed = params.speed(); } if (params.debug() && !navigation.isDone()) { - BlockData data = Material.DANDELION.createBlockData(); - Path path = getPathEntity(navigation); - for (Player player : Bukkit.getOnlinePlayers()) { - for (int i = 0; i < path.getNodeCount(); i++) { - Node pp = path.getNode(i); - player.sendBlockChange(new Vector(pp.x, pp.y, pp.z).toLocation(player.getWorld()), data); - } - } + Util.sendBlockChanges(getBlocks(entity, getPathEntity(navigation)), Material.DANDELION); } navigation.setSpeedModifier(params.speed()); return navigation.isDone(); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNavigation.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNavigation.java index 9d509c9d2..0e61b3ea5 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNavigation.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNavigation.java @@ -149,7 +149,7 @@ public class PlayerNavigation extends PathNavigation { } return true; } - + private boolean canWalkOn(int var0, int var1, int var2, int var3, int var4, int var5, Vec3 var6, double var7, double var9) { int var11 = var0 - var3 / 2; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNodeEvaluator.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNodeEvaluator.java index d66fdbe6e..4ddda15ae 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNodeEvaluator.java +++ b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNodeEvaluator.java @@ -6,7 +6,6 @@ import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2BooleanMap; import it.unimi.dsi.fastutil.objects.Object2BooleanOpenHashMap; -import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.nms.v1_19_R2.entity.EntityHumanNPC; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -138,8 +137,7 @@ public class PlayerNodeEvaluator extends PlayerNodeEvaluatorBase { var18.costMalus = -1.0F; return var18; } - if (var16++ >= Setting.MC_NAVIGATION_MAX_FALL_DISTANCE.asInt() - || var16++ >= this.mob.getMaxFallDistance()) { + if (var16++ >= this.mob.getMaxFallDistance()) { Node var18 = getNode(var0, var1, var2); var18.type = BlockPathTypes.BLOCKED; var18.costMalus = -1.0F; 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 b1551a382..7e144940a 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftBat; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Bat; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -69,6 +70,11 @@ public class BatController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 9c4d0f313..e80f7ec11 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftBlaze; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Blaze; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -66,6 +67,11 @@ public class BlazeController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 5f52b67fc..88f897940 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftCaveSpider; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.CaveSpider; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -75,6 +76,11 @@ public class CaveSpiderController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 7dd272fea..69d4d2098 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftChicken; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Chicken; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -84,6 +85,11 @@ public class ChickenController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 eb6baf5ac..78720667e 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftCow; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Cow; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -99,6 +100,11 @@ public class CowController extends MobEntityController { return super.a(entityhuman); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 5f0f7393f..7ee92452b 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 @@ -50,6 +50,7 @@ public class CreeperController extends MobEntityController { public static class EntityCreeperNPC extends EntityCreeper implements NPCHolder { private boolean allowPowered; + private final CitizensNPC npc; public EntityCreeperNPC(World world) { @@ -84,6 +85,11 @@ public class CreeperController extends MobEntityController { return npc == null || !npc.isProtected() ? super.a(entityhuman) : false; } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 e206d5386..17e168a91 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEnderDragon; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.EnderDragon; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -66,6 +67,11 @@ public class EnderDragonController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 74aaa1ac1..73bb3f5d6 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEnderman; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Enderman; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -75,6 +76,11 @@ public class EndermanController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 25640a9bd..b20f5e7cd 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEndermite; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Endermite; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -75,6 +76,11 @@ public class EndermiteController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 90f9cae39..507259819 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 @@ -5,6 +5,7 @@ import java.net.Socket; import java.util.HashMap; import java.util.List; import java.util.Map; + import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_8_R3.CraftServer; @@ -13,7 +14,9 @@ import org.bukkit.entity.Player; import org.bukkit.metadata.MetadataValue; import org.bukkit.plugin.Plugin; import org.bukkit.util.Vector; + import com.mojang.authlib.GameProfile; + import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.event.NPCEnderTeleportEvent; 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 7d96ed5b0..d73fb11b5 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftGhast; import org.bukkit.entity.Ghast; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -52,6 +53,11 @@ public class GhastController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override public boolean bM() { return npc != null; 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 1c6a416a5..0fa023eb0 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftGiant; import org.bukkit.entity.Giant; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -61,6 +62,11 @@ public class GiantController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 055e866b6..3f88e2208 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftGuardian; import org.bukkit.entity.Guardian; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -61,6 +62,11 @@ public class GuardianController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 e5beb2372..6db8cf066 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 @@ -7,6 +7,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftHorse; import org.bukkit.entity.Horse; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -81,6 +82,11 @@ public class HorseController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 e0644532c..7e91dbdb7 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 @@ -1,12 +1,15 @@ package net.citizensnpcs.nms.v1_8_R3.entity; import java.util.UUID; + import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; + import com.mojang.authlib.GameProfile; + import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.npc.NPC; 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 f4ea80c4f..300b3e5db 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftIronGolem; import org.bukkit.entity.IronGolem; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -61,6 +62,11 @@ public class IronGolemController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 cb6458416..6c179cb08 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftMagmaCube; import org.bukkit.entity.MagmaCube; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -67,6 +68,11 @@ public class MagmaCubeController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 acc2df0b3..fbc17d684 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftMushroomCow; import org.bukkit.entity.MushroomCow; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -78,6 +79,11 @@ public class MushroomCowController extends MobEntityController { return false; } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 bd31ebc7e..9954ad912 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftOcelot; import org.bukkit.entity.Ocelot; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -70,6 +71,11 @@ public class OcelotController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 b51028f56..8e1301b02 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPig; import org.bukkit.entity.Pig; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -71,6 +72,11 @@ public class PigController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 898b352e7..53c9fa300 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPigZombie; import org.bukkit.entity.PigZombie; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -61,6 +62,11 @@ public class PigZombieController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 6f75bccb3..6ab0bbc97 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftRabbit; import org.bukkit.entity.Rabbit; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -71,6 +72,11 @@ public class RabbitController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 ed01bb0a3..bb897c31d 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSheep; import org.bukkit.entity.Sheep; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -70,6 +71,11 @@ public class SheepController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 07f3ced2a..91532bed1 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSilverfish; import org.bukkit.entity.Silverfish; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -61,6 +62,11 @@ public class SilverfishController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 07ac4da87..08018e111 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSkeleton; import org.bukkit.entity.Skeleton; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -61,6 +62,11 @@ public class SkeletonController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 d309ad50d..f8475ff8a 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSlime; import org.bukkit.entity.Slime; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -67,6 +68,11 @@ public class SlimeController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 cb5f60b78..83ca355d6 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSnowman; import org.bukkit.entity.Snowman; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -61,6 +62,11 @@ public class SnowmanController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 0a93fc146..7521465c1 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSpider; import org.bukkit.entity.Spider; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -61,6 +62,11 @@ public class SpiderController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 04517a8c8..f7ab6997c 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSquid; import org.bukkit.entity.Squid; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -61,6 +62,11 @@ public class SquidController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 132954bf9..ae17162df 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftVillager; import org.bukkit.entity.Villager; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -35,6 +36,7 @@ public class VillagerController extends MobEntityController { public static class EntityVillagerNPC extends EntityVillager implements NPCHolder { private boolean blockingATrade; + private final CitizensNPC npc; public EntityVillagerNPC(World world) { @@ -81,6 +83,11 @@ public class VillagerController extends MobEntityController { return super.a(entityhuman); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 6f3f865de..344b0348d 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftWitch; import org.bukkit.entity.Witch; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -61,6 +62,11 @@ public class WitchController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 1779bde7f..e43b4e72b 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftWither; import org.bukkit.entity.Wither; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -52,6 +53,11 @@ public class WitherController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 1219a58ec..94d768142 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 @@ -7,6 +7,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftWolf; import org.bukkit.entity.Wolf; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -72,6 +73,11 @@ public class WolfController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); 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 b0a712bff..982e7215c 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 @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftZombie; import org.bukkit.entity.Zombie; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; @@ -61,6 +62,11 @@ public class ZombieController extends MobEntityController { evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); } + @Override + public int aE() { + return NMS.getFallDistance(npc, super.aE()); + } + @Override protected String bo() { return NMSImpl.getSoundEffect(npc, super.bo(), NPC.Metadata.HURT_SOUND); diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ArmorStandController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ArmorStandController.java index f73086658..89e3cb902 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ArmorStandController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ArmorStandController.java @@ -8,6 +8,7 @@ import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 1960dee4d..a7fb4106d 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ArrowController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ArrowController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftArrow; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Arrow; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 f6ea18c93..ec0044356 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 @@ -7,6 +7,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory; import org.bukkit.entity.Boat; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 f23f32b80..ea2b90a0d 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EggController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EggController.java @@ -9,6 +9,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Egg; import org.bukkit.entity.Entity; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; 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 7296868b3..c47f04d84 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderCrystalController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderCrystalController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEnderCrystal; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.EnderCrystal; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 3f66201ca..2b21f1bc5 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderPearlController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderPearlController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEnderPearl; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.EnderPearl; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 af9d20b41..5f6cdea48 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderSignalController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/EnderSignalController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEnderSignal; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.EnderSignal; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 c3c6bb7db..1b154b54b 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ExperienceOrbController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ExperienceOrbController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftExperienceOrb; import org.bukkit.entity.ExperienceOrb; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 fe6939463..59b1e31e0 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FallingBlockController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FallingBlockController.java @@ -10,6 +10,7 @@ import org.bukkit.craftbukkit.v1_8_R3.util.CraftMagicNumbers; import org.bukkit.entity.Entity; import org.bukkit.entity.FallingBlock; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; 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 e3903d7c0..91a1c685c 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FireworkController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FireworkController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftFirework; import org.bukkit.entity.Firework; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 d6d964059..02053806b 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FishingHookController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/FishingHookController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftFish; import org.bukkit.entity.FishHook; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 c054a4f41..266a3f158 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemController.java @@ -9,6 +9,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftItem; import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack; import org.bukkit.entity.Item; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; import net.citizensnpcs.npc.AbstractEntityController; 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 aa3d2e5f3..6b212fb7d 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemFrameController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemFrameController.java @@ -8,6 +8,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftItemFrame; import org.bukkit.entity.Entity; import org.bukkit.entity.ItemFrame; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 f8bea36d5..03bd78aec 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/LargeFireballController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/LargeFireballController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftLargeFireball; import org.bukkit.entity.LargeFireball; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 7ddf7b98f..2fad0fe3c 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/LeashController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/LeashController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftLeash; import org.bukkit.entity.LeashHitch; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 7078c9fb7..5451aab31 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartChestController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartChestController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftMinecartChest; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 a39d0a725..81bdf4925 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartCommandController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartCommandController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftMinecartCommand; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 125e980ba..e0c981b65 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartFurnaceController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartFurnaceController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftMinecartFurnace; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 931f87e47..cec319a79 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartHopperController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartHopperController.java @@ -2,6 +2,7 @@ package net.citizensnpcs.nms.v1_8_R3.entity.nonliving; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 5883ceda1..06af690f2 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartRideableController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartRideableController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftMinecartRideable; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 d9b633977..d5c906186 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartSpawnerController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartSpawnerController.java @@ -2,6 +2,7 @@ package net.citizensnpcs.nms.v1_8_R3.entity.nonliving; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 53d67f62d..d844710ff 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartTNTController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/MinecartTNTController.java @@ -2,6 +2,7 @@ package net.citizensnpcs.nms.v1_8_R3.entity.nonliving; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 ef2943d62..5cb6f16f0 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/PaintingController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/PaintingController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPainting; import org.bukkit.entity.Painting; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 f18d2f57f..635e9faa9 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SmallFireballController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SmallFireballController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSmallFireball; import org.bukkit.entity.SmallFireball; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 adab92bff..02a5262d4 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SnowballController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SnowballController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftSnowball; import org.bukkit.entity.Snowball; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 17fe59b06..a969d4d50 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SplashPotionController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/SplashPotionController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftThrownPotion; import org.bukkit.entity.ThrownPotion; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 1d62331ee..32148b729 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/TNTPrimedController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/TNTPrimedController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftTNTPrimed; import org.bukkit.entity.TNTPrimed; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 d54b646d3..75e87bd75 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ThrownExpBottleController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ThrownExpBottleController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftThrownExpBottle; import org.bukkit.entity.ThrownExpBottle; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; 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 7f7325deb..005e6532e 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/WitherSkullController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/WitherSkullController.java @@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftWitherSkull; import org.bukkit.entity.WitherSkull; import org.bukkit.util.Vector; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.entity.MobEntityController; import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox; diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/network/EmptyNetworkManager.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/network/EmptyNetworkManager.java index 4dd5f348b..52ece4127 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/network/EmptyNetworkManager.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/network/EmptyNetworkManager.java @@ -1,6 +1,7 @@ package net.citizensnpcs.nms.v1_8_R3.network; import java.io.IOException; + import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.minecraft.server.v1_8_R3.EnumProtocolDirection; import net.minecraft.server.v1_8_R3.NetworkManager; 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 864eed87e..337279db3 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 @@ -1,6 +1,7 @@ package net.citizensnpcs.nms.v1_8_R3.util; import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack; + import net.citizensnpcs.util.AbstractBlockBreaker; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockPosition; diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSBoundingBox.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSBoundingBox.java index 771a6e82c..151cdab2c 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSBoundingBox.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSBoundingBox.java @@ -1,6 +1,7 @@ package net.citizensnpcs.nms.v1_8_R3.util; import java.util.function.Supplier; + import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.util.BoundingBox; import net.minecraft.server.v1_8_R3.AxisAlignedBB; 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 e26ed2f03..4f04f83d7 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 @@ -313,6 +313,7 @@ public class NMSImpl implements NMSBridge { handle.dead = false; tracker.updatePlayer(p); tracker.trackedPlayers.add(p); + handle.dead = true; } @Override @@ -332,7 +333,9 @@ public class NMSImpl implements NMSBridge { for (EntityPlayer link : Lists.newArrayList(tracker.trackedPlayers)) { Player entity = link.getBukkitEntity(); unlink(entity); - callback.accept(entity); + if (callback != null) { + callback.accept(entity); + } } } }; @@ -565,10 +568,6 @@ public class NMSImpl implements NMSBridge { @Override public boolean update() { if (params.speed() != lastSpeed) { - if (Messaging.isDebugging() && lastSpeed > 0) { - Messaging.debug( - "Repathfinding " + ((NPCHolder) entity).getNPC().getId() + " due to speed change"); - } Entity handle = getHandle(entity); float oldWidth = handle.width; if (handle instanceof EntityHorse) { 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 b6be64fa5..57a678178 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 @@ -1,8 +1,11 @@ package net.citizensnpcs.nms.v1_8_R3.util; import java.util.EnumMap; + import org.bukkit.entity.Player; + import com.google.common.collect.Maps; + import net.citizensnpcs.util.PlayerAnimation; import net.minecraft.server.v1_8_R3.EntityPlayer; import net.minecraft.server.v1_8_R3.Packet; 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 e106c8728..b4963dedb 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 @@ -1,6 +1,7 @@ package net.citizensnpcs.nms.v1_8_R3.util; import java.util.Random; + import net.citizensnpcs.nms.v1_8_R3.entity.EntityHumanNPC; import net.citizensnpcs.util.NMS; import net.minecraft.server.v1_8_R3.AttributeInstance; 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 09cf785d5..1968402f6 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 @@ -1,6 +1,7 @@ package net.citizensnpcs.nms.v1_8_R3.util; import java.util.List; + import net.citizensnpcs.nms.v1_8_R3.entity.EntityHumanNPC; import net.minecraft.server.v1_8_R3.AttributeInstance; import net.minecraft.server.v1_8_R3.AxisAlignedBB; 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 d4a7994f2..07da55506 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 @@ -1,6 +1,7 @@ package net.citizensnpcs.nms.v1_8_R3.util; import java.lang.reflect.Field; + import net.citizensnpcs.util.NMS; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Entity; 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 f0325032c..9dc4ce1a0 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 @@ -1,6 +1,5 @@ package net.citizensnpcs.nms.v1_8_R3.util; -import net.citizensnpcs.Settings.Setting; import net.minecraft.server.v1_8_R3.Block; import net.minecraft.server.v1_8_R3.BlockCobbleWall; import net.minecraft.server.v1_8_R3.BlockDoor; @@ -85,7 +84,7 @@ public class PlayerPathfinderNormal extends PlayerPathfinderAbstract { return null; } if (n == 1) { - if (m++ >= Setting.MC_NAVIGATION_MAX_FALL_DISTANCE.asInt()) { + if (m++ >= paramEntity.aE()) { return null; } paramInt2--; 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 8f09d8bea..ef567f09d 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 @@ -33,9 +33,7 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { } public void updateLastPlayer() { - if (lastUpdatedPlayer == null) - return; - if (tracker.dead || tracker.getBukkitEntity().getType() != EntityType.PLAYER) + if ((lastUpdatedPlayer == null) || tracker.dead || tracker.getBukkitEntity().getType() != EntityType.PLAYER) return; final EntityPlayer entityplayer = lastUpdatedPlayer; NMS.sendTabListAdd(entityplayer.getBukkitEntity(), (Player) tracker.getBukkitEntity()); @@ -48,15 +46,14 @@ public class PlayerlistTrackerEntry extends EntityTrackerEntry { NMSImpl.sendPacket(entityplayer.getBukkitEntity(), new PacketPlayOutAnimation(tracker, 0)); NMS.sendTabListRemove(entityplayer.getBukkitEntity(), (Player) tracker.getBukkitEntity()); } - }, Setting.TABLIST_REMOVE_PACKET_DELAY.asInt()); + }, Setting.TABLIST_REMOVE_PACKET_DELAY.asTicks()); } @Override public void updatePlayer(final EntityPlayer entityplayer) { // prevent updates to NPC "viewers" - if (entityplayer instanceof EntityHumanNPC) - return; - if (tracker instanceof NPCHolder && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity())) + if ((entityplayer instanceof EntityHumanNPC) || (tracker instanceof NPCHolder + && ((NPCHolder) tracker).getNPC().isHiddenFrom(entityplayer.getBukkitEntity()))) return; lastUpdatedPlayer = entityplayer; super.updatePlayer(entityplayer);